def moveSea(proc): ''' 出航 ''' userid = dolScript.getPCID(proc) paraSize = 24 cpara = (c_ubyte * paraSize)() ip = cast(cpara, POINTER(c_int)) ip[0] = userid ip[1] = 0x41d34c #=========================================================================== # ip[2] = random.randrange(0xA40000, 0x0141FFFF) # ip[3] = random.randrange(0x01410000, 0x01FFFFFF) # ip[4] = random.randrange(0xA40000, 0x0141FFFF) # ip[5] = random.randrange(0x01410000, 0x01FFFFFF) #=========================================================================== paraBuf = writePara(proc, cpara) cmdBuf = writeCmd(proc, area.moveToSeaCmd) dowhile(isNormal, [proc]) execCmd(proc, cmdBuf, paraBuf) time.sleep(changeDelay)
def makeBuy(self, tarhwnd, myhwnd): tarprocGuard = helper.ProcGuard(tarhwnd) myprocGuard = helper.ProcGuard(myhwnd) proc = myprocGuard.proc tarproc = tarprocGuard.proc myid = dolScript.getPCID(proc) myname = dolScript.getRoleName(proc) tarname = dolScript.getRoleName(tarproc) print tarname lock = MutexGuard(mutex) dolCall.openDialog(tarproc, myid, 0x32) dountil(dolScript.isDialogOpen, [tarproc]) l = MutexGuard(msgBoxMutex) win32gui.ShowWindow(tarhwnd, win32con.SW_RESTORE) win32gui.SetActiveWindow(tarhwnd) win32gui.SetForegroundWindow(tarhwnd) msgBox(tarname, '請購買 [' + myname + '] 的露天……') win32gui.ShowWindow(tarhwnd, win32con.SW_MINIMIZE) dowhile(dolScript.isDialogOpen, [proc]) print 'makeBuy end'
def move(proc, moveto): ''' 从码头进入城市,或者从城市进入码头 ''' userid = dolScript.getPCID(proc) moveto = int(moveto) paraSize = 24 cpara = (c_ubyte * paraSize)() ip = cast(cpara, POINTER(c_int)) ip[0] = userid ip[1] = moveto ip[2] = random.randrange(0xA40000, 0x0141FFFF) ip[3] = random.randrange(0x01410000, 0x01FFFFFF) ip[4] = random.randrange(0xA40000, 0x0141FFFF) ip[5] = random.randrange(0x01410000, 0x01FFFFFF) paraBuf = writePara(proc, cpara) cmdBuf = writeCmd(proc, area.moveCmd) dowhile(isNormal, [proc]) execCmd(proc, cmdBuf, paraBuf) time.sleep(changeDelay)
def move(proc, moveto): ''' 从码头进入城市,或者从城市进入码头 ''' print 'move' #=========================================================================== # if(moveto == dolCallEnum.MoveTo.Dock): # print 'disabled for some reasons' # return #=========================================================================== userid = dolScript.getPCID(proc) moveto = int(moveto) cpara = (c_ubyte * PARASIZE)() ip = cast(cpara, POINTER(c_int)) ip[0] = userid ip[1] = moveto dountil(isNormal, [proc]) execCmd(proc, area.moveCmd, cpara) time.sleep(changeDelay) dountil(isNormal, [proc])
def toSecDock(self): proc = self.proc cityID = self.citySec.cityID self.makeAllDo(dolCall.moveSea) while(dolScript.getLocationType(proc) == dolCallEnum.LocType.Dock): dolCall.moveSea(proc) time.sleep(0.5) myid = dolScript.getPCID(proc) self.makeAllDo(dolCall.follow, [myid]) gotoCity(proc, cityID, self.cityRead.cityRouteDict[cityID]) self.nextDoFunc = self.toReadDock self.nextDoPara = []
def dock2Lib(self): self.makeAllDo(dolCall.move, [self.cityRead.downShip]) proc = self.proc while(dolScript.getLocationType(proc) != dolCallEnum.LocType.City): dolCall.move(proc, self.cityRead.downShip) time.sleep(1.5) myid = dolScript.getPCID(proc) self.makeAllDo(dolCall.follow, [myid]) x, y = self.cityRead.libEnterPos dolCall.walk(proc, x, y) time.sleep(1) dolCall.enterDoor(proc, self.cityRead.libEnterID) self.nextDoFunc = self.read self.nextDoPara = [self.hwnd, self.proc]
def moveSea(proc): ''' 出航 ''' userid = dolScript.getPCID(proc) cpara = (c_ubyte * PARASIZE)() ip = cast(cpara, POINTER(c_int)) ip[0] = userid ip[1] = 0x41d34c dountil(isNormal, [proc]) execCmd(proc, area.moveToSeaCmd, cpara) time.sleep(changeDelay) dountil(isNormal, [proc])
def __whenRead(): log('讀到圖') bossid = dolScript.getPCID(proc) dolCall.openDialog(proc, bossid, 0x20) myname = dolScript.getRoleName(proc) dountil(dolScript.isDialogOpen, [proc]) l = MutexGuard(msgBoxMutex) msgBox(myname, '读到图。准备弹出窗口……') win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) win32gui.SetActiveWindow(hwnd) win32gui.SetForegroundWindow(hwnd) msgBox(myname, '请在摆好露天后点击确定。(将会有购买窗口弹出……)') dowhile(dolScript.isDialogOpen, [proc]) win32gui.ShowWindow(hwnd, win32con.SW_MINIMIZE) tarhwnd = self.serHwnd self.makeBuy(tarhwnd, hwnd) print 'one read loop end'