def unloadItem(item): print '--> unload item ' + item result = findAtInventory('ship', 0.5) if not result: return False mouse.leftClickAtP(result) time.sleep(2) result = findAtInventory(item) while not result: mouse.moveToP(panel.center(panel.Inventory)) mouse.wheel(-12) mouse.moveTo(100, 100) result = findAtInventory(item) mouse.leftDownAtP(result) result = findAtInventory('item_hangar', 0.5) if not result: mouse.leftUp() return False mouse.moveToP(result) mouse.leftUp() time.sleep(1) print '<-- unload item ' + item + '\n' return True
def declineMission(): print '--> decline mission' result = None while not result: time.sleep(0.2) result = findAtMissionRight('decline') mouse.leftClickAtP(result) begin = time.time() result = None while not result and time.time() - begin < 5: time.sleep(0.5) result = findAtFull('yes') if result: mouse.leftClickAtP(result) print 'wait until decline' while not findAtMission('request_mission'): time.sleep(0.5) mouse.moveToP(panel.center(panel.MissionLeft)) result = None while not result: time.sleep(0.5) result = findAtFull('x') mouse.leftClickAtP(result) time.sleep(1) print '<-- decline mission\n' return True
def enterStarMap(): print '--> enter star map' key.pressEx(sc.Map) begin = time.time() while findAtProgressBar('initializing_map') or time.time() - begin < 3: time.sleep(0.5) mouse.moveToP(panel.center(panel.Full)) mouse.wheel(100) print '<-- enter star map\n'
def openInventory(): print '--> open inventory' key.pressEx(sc.Inventory) mouse.moveToP(panel.center(panel.Inventory)) while not findAtInventory('x'): time.sleep(0.2) print '<-- open inventory\n' return True
def completeMission(): print '--> complete mission\n' result = None while not result: time.sleep(0.2) result = findAtMissionRight('complete_mission') mouse.leftClickAtP(result) mouse.moveTo(result[0], result[1] - 100) print 'wait until complete mission' result = None flag = False while not result: result = findAtMissionRight('request_mission') if result: flag = True break result = findAtMissionRight('can_not_complete_mission') if result: flag = False break if not flag: print 'can not complete' result = None while not result: time.sleep(0.2) result = findAtFull('ok') mouse.leftClickAtP(result) result = None while not result: time.sleep(0.2) result = findAtMissionRight('quit_mission') mouse.leftClickAtP(result) result = None while not result: time.sleep(0.2) result = findAtFull('yes') mouse.leftClickAtP(result) mouse.moveToP(panel.center(panel.MissionLeft)) result = None while not result: time.sleep(0.2) result = findAtMission('x') mouse.leftClickAtP(result) print '<-- complete mission\n' return True
def run(): print '--> mission The Spy Stash' if not ship.enableDefense(): return False if not overview.activateAccelerationGate(): return False # pocket 1 direct access ship.enableAfterburn() if not overview.activateAccelerationGate(): return False # pocket 2 if not drones.launchSmall(): return False ship.enableAfterburn() overview.seekAndDestory() if not drones.back(): return False result = findAtOverview('officers') if not result: return False mouse.doubleClickAtP(result) print 'wait until cargo open' result = None while not result: time.sleep(0.5) result = findAtFull('report') mouse.leftDownAtP(result) result = findAtFull('ship', 0.5) if not result: mouse.leftUp() return False mouse.moveToP(result) mouse.leftUp() time.sleep(2) result = findAtFull('x') if not result: return False mouse.leftClickAtP(result) print '<-- mission The Spy Stash\n' return True
def handleDangerousAction(): result = findAtFull('dangerous') if result: mouse.moveToP(result) result = None while not result: result = findAtFull('x') mouse.leftClickAtP(result) key.pressEx(sc.Unlock) return True else: return False
def repair(): print '--> repair' result = findAtStationServices('repair_shop') if not result: return mouse.leftClickAtP(result) print 'wait until open repair facilities' result = None while not result: result = findAtFull('repair_facilities') time.sleep(0.5) time.sleep(0.5) mouse.leftClickAt(result[0], result[1] + 70) key.pressEx('ctrl+a') result = None while not result: result = findAtFull('repair_item') time.sleep(0.2) mouse.leftClickAtP(result) print 'wait...' while not findAtFull('pick_new_item'): time.sleep(0.2) result = findAtFull('repair_all') if result: mouse.leftClickAtP(result) print 'repairing...' result = None while not result: time.sleep(0.2) result = findAtFull('ok') if not result: result = findAtFull('yes') mouse.leftClickAtP(result) result = findAtFull('repair_facilities') mouse.moveToP(result) else: print 'nothing to repair' result = None while not result: time.sleep(0.2) result = findAtFull('x') mouse.leftClickAtP(result) print '<-- repair\n' return True
def warpToMissionLocation(): print '--> warp to mission location' enterStarMap() mouse.moveToP(panel.center(panel.Full)) mouse.leftDown() mouse.move(500, 200) mouse.leftUp() openMissionMenu() result = findAtInfo('warp_to_location') while not result: result = findAtInfo('warp_to_location') time.sleep(1) mouse.leftClickAtP(result) time.sleep(1) print 'wait to activate gate' while not findAtDashboard('warp_drive_active'): result = findAtFull('close') if not result: result = findAtFull('ok') if result: mouse.leftClickAtP(result) mouse.moveTo(result[0], result[1] - 200) time.sleep(1) print 'wait until reach location' while findAtDashboard('warp_drive_active'): time.sleep(0.5) result = findAtFull('close') if not result: result = findAtFull('ok') if result: mouse.leftClickAtP(result) mouse.moveTo(result[0], result[1] - 200) time.sleep(1) while findAtDashboard('warp_drive_active'): time.sleep(0.5) exitStarMap() print '<-- warp to mission location\n' return True
def missionObjectiveComplete(): print '--> judge if mission complete' print 'wait until mission complete' while not findAtMissionDetails('v'): time.sleep(1) mouse.moveToP(panel.center(panel.MissionDetails)) result = None while not result: time.sleep(0.5) result = findAtMissionDetails('x') mouse.leftClickAtP(result) print '<-- judge if mission complete\n' return True
def back(): print '--> drones return' key.pressEx(sc.DronesReturn) mouse.moveToP(panel.center(panel.Drones)) mouse.wheel(-100) mouse.moveToP(panel.center(panel.Full)) print 'wait until drones return' while findAtDrones('returning') or findAtDrones('fighting') or findAtDrones('idle'): key.pressEx(sc.DronesReturn) time.sleep(0.2) print '<-- drones return\n' return True
def _launch(group): result = None while not result: mouse.moveToP(panel.center(panel.Drones)) mouse.wheel(100) mouse.moveToP(panel.center(panel.Full)) result = findAtDrones('bay') if group == None: mouse.rightClickAtP(result) else: if not findAtDrones(group): mouse.leftClickAtP(result) result = findAtDrones(group) while not result: time.sleep(0.5) result = findAtDrones(group) mouse.rightClickAtP(result) result = findAtDrones('launch_drones') while not result: time.sleep(0.5) result = findAtDrones('launch_drones') mouse.leftClickAtP(result) print 'wait until drones launching..' mouse.moveToP(panel.center(panel.Full)) # time.sleep(5) while not findAtDrones('idle') and not findAtDrones('fighting') and not findAtDrones('returning'): mouse.moveToP(panel.center(panel.Drones)) mouse.wheel(-100) mouse.moveToP(panel.center(panel.Full)) if not findAtDrones('idle') and not findAtDrones('fighting') and not findAtDrones('returning'): result = findAtDrones('local_space') if result: mouse.leftClickAtP(result) mouse.wheel(-100) mouse.leftClickAt(result[0], result[1] + 20) return True
def run(): print '--> mission Pick Your Position' if not overview.activateAccelerationGate(): return False if not overview.switchTo('battle'): return False # pocket 1 result = None while not result: time.sleep(0.5) result = findAtFull('close') mouse.leftClickAtP(result) if not overview.pickTarget('minmatar_emissary_1'): return False result = None while not result: time.sleep(0.5) result = findAtFull('close') mouse.leftClickAtP(result) if not overview.activateAccelerationGate(): return False if not overview.switchTo('battle'): return False # back to pocket 0 # double click will not open it! result = overview.findTarget('cargo') if not result: return False mouse.leftClickAtP(result) ship.approach() result = findAtSelectedItem('cargo_small') if not result: result = findAtSelectedItem('cargo_big') if not result: return False mouse.leftClickAtP(result) print 'wait until cargo open' while not findAtFull('loot_all'): time.sleep(0.2) mouse.leftClickAtP(result) result = findAtFull('ship') while not result: result = findAtFull('ship') mouse.leftClickAtP(result) result = findAtFull('minmatar_emissary') while not result: result = findAtFull('minmatar_emissary') mouse.leftDownAtP(result) result = findAtFull('ship_hl') while not result: result = findAtFull('ship_hl') mouse.moveTo(result[0] + 40, result[1] + 60) mouse.leftUp() result = findAtFull('close') while not result: result = findAtFull('close') mouse.leftClickAtP(result) time.sleep(1) result = findAtFull('ship_hl') if not result: result = findAtFull('ship') if result: mouse.moveToP(result) result = findAtFull('x') if result: mouse.leftClickAtP(result) print '<-- mission Pick Your Position\n' return True
def run(): print '--> mission Intercept The Sabateurs' if not ship.enableDefense(): return False if not drones.launchSmall(): return False overview.seekAndDestory() if not drones.back(): return False ship.enableAfterburn() if not overview.activateAccelerationGate(): return False # pocket 1 # main enemies are 90km away # approach for 85 secs # mean while clean up nearby enemy drones.launchSmall() if not overview.switchTo('battle'): return False if not overview.lockEnemy(20): return False ship.fireOnce() if not overview.lockTarget('transport', 1): return False ship.enableAfterburn() ship.approachFor(85) # wait for stop begin = time.time() while time.time() - begin < 20: ship.stop() key.pressEx(sc.Unlock) mouse.moveToP(panel.center(panel.Drones)) mouse.wheel(-100) while findAtDrones('fighting'): time.sleep(10) drones.back() # use sentry to destory all the smalls for i in range(6): overview.lockTarget('s', 1) drones.launchSentry() begin = time.time() while overview.lockTarget('s', 1) and time.time() - begin < 130: ship.fireOnce() drones.engage() drones.back() # do the rest ship.fireOnce() drones.launchSmall() overview.seekAndDestory() while not overview.pickCargo(): pass drones.back() print '<-- mission Intercept The Sabateurs\n' return True
def autopilot(): print '--> autopilot' overview.switchTo('pilot') while True: print 'try to find target stargate or station' finded = '' result = None for retry in range(3): print 'try: ' + str(retry + 1) result = findAtOverview('target_station', 0.2) if result: print 'station finded' finded = 'station' break result = findAtOverview('target_star_gate', 0.2) if result: print 'stargate finded' finded = 'gate' break x, y = panel.center(panel.Overview) y += random.random() * 200 - 100 mouse.leftClickAt(x, y) mouse.wheel(-12) mouse.moveToP(panel.center(panel.Full)) if finded == '': print "can't find any waypoint" print '<-- autopilot\n' return False if finded == 'station': print 'docking...' mouse.leftClickAtP(result) key.pressEx(sc.Activate) print 'wait until entering station' begin = time.time() result = findAtProgressBar('entering_station', 0.1) while not result and time.time() - begin < 80: result = findAtProgressBar('entering_station', 0.1) time.sleep(0.1) if result: print 'entering station' time.sleep(4) print '<-- autopilot\n' return True if finded == 'gate': print 'jump...' mouse.leftClickAtP(result) key.pressEx(sc.Activate) print 'wait until entering space' begin = time.time() result = findAtProgressBar('entering_space', 0.1) while not result and time.time() - begin < 80: result = findAtProgressBar('entering_space', 0.1) time.sleep(0.1) if result: print 'entering space' time.sleep(3)