def RushCheck(ID): if (ID == 450007210 or ID == 450007230) and Field.GetID() < 450007200: Terminal.Rush(450007030) while Terminal.IsRushing(): time.sleep(1) Terminal.Rush(450007040) while Terminal.IsRushing(): time.sleep(1) while Field.GetID() != 450007200: Character.TalkToNpc(3003533) time.sleep(3) if Field.GetID() != ID: Terminal.Rush(ID) while Terminal.IsRushing(): time.sleep(1)
def Rush(mapid): if not Field.GetID() == mapid: Terminal.Rush(mapid) time.sleep(2) while Terminal.IsRushing(): time.sleep(1) continue
def rush(mapid): if not Terminal.IsRushing(): print("Rushing to map ID: {0}".format(mapid)) Terminal.Rush(mapid) time.sleep(1) else: time.sleep(1)
def SemiNDSi(siSkill, dummySkill, delay, on, attackSpeed): Terminal.SetCheckBox("Auto Attack", False) Terminal.SetRadioButton("SIRadioMelee", True) Terminal.SetCheckBox("MonkeySpiritsNDcheck", False) count = 0 if siSkill != 32120055: delay = 30 * math.ceil(delay * 1000 * (10 + attackSpeed) / 480) / 1000 print("The delay for skill {} is {}, starting si".format(siSkill, delay)) if siSkill not in [25101000, 25121000]: sleepTime = 0.231 else: sleepTime = 0.101 while Field.GetCharacterCount() <= 1 and Field.GetEliteState( ) != 2 and len(Field.GetMobs()) > 0 and not Terminal.IsRushing( ) and GameState.IsInGame( ) and not Terminal.GetRadioButton("SIRadioDragon") and on: Terminal.SetCheckBox("Skill Injection", True) Terminal.SetLineEdit("SISkillID", str(siSkill)) Terminal.SetCheckBox("Melee No Delay", True) Terminal.SetSpinBox("SkillInjection", 17) time.sleep(sleepTime) #Terminal.SetCheckBox("Melee No Delay",False) Terminal.SetLineEdit("SISkillID", str(dummySkill)) time.sleep(0.043) Terminal.SetCheckBox("Skill Injection", False) time.sleep(delay + 0.05) #if Terminal.IsRushing(): # break if count >= 30: break if siSkill == 27111303 and not (Character.HasBuff(2, 20040220) or Character.HasBuff(2, 20040219)): break count += 1 print("Si ended due to break options")
def RushAndComplete(completemap, questid, npcid): if Field.GetID() != completemap: Terminal.Rush(completemap) while Terminal.IsRushing(): time.sleep(1) else: if Character.GetPos().x < -800 or Character.GetPos().x > 675: Character.Teleport(-800, 153) time.sleep(2) Quest.CompleteQuest(questid, npcid) time.sleep(1)
def WaitForFollow(user, startTime): timer = 0 time.sleep(3) while (Field.GetID() != user.mapid or GameState.GetChannel() != user.channel) \ and time.time() - startTime < timeout: time.sleep(1) timer += 1 if Terminal.IsRushing(): #print(Field.GetID(), user.mapid, GameState.GetChannel(), user.channel) if Field.GetID() != user.mapid or GameState.GetChannel( ) != user.channel: print("Failed in chasing {0} at {1} Ch{2}".format( user.charname, user.mapid, user.channel), flush=True) Terminal.StopRush()
def Main(): if GameState.IsInGame( ) and not Terminal.IsRushing() and not Terminal.IsSolvingRune(): hieizanLastQuest = 58913 ayame = 9130103 princess = ayame + 1 kannaring = 1113155 hayatoshoulder = 1152171 ayametreasure = 1132275 _map = Field.GetID() if not QuestCompleted(hieizanLastQuest - 2) and QuestInProgress( hieizanLastQuest, ayame): Hieizan(_map) else: if onlyKanna: if Inventory.GetItemCount(kannaring) == 0: KannaRing(_map, "kanna") else: print('we are done') else: if Inventory.GetItemCount( kannaring) > 0 and Inventory.GetItemCount( hayatoshoulder) == 0: KannaRing(_map, "hayato") elif Inventory.GetItemCount( kannaring) > 0 and Inventory.GetItemCount( hayatoshoulder) > 0 and Inventory.GetItemCount( ayametreasure) == 0: KannaRing(_map, "ayameHero") elif Inventory.GetItemCount(kannaring) == 0: KannaRing(_map, "kanna") else: # pno quest line if Inventory.GetItemCount(4034142) > 0: if not QuestCompleted(hieizanLastQuest): CompletingQuest(hieizanLastQuest, ayame, _map) else: if not QuestCompleted(58950): CompletingQuest(58950, princess, _map) print("we're done here")
def doMaze(targetMap): if Field.GetID() in mazeMaps: triedRoutes = [] mapRoute = [] returnRoute = [] while Field.GetID() != targetMap: if Terminal.IsRushing(): continue if GameState.IsInGame(): fgm(True) checkMap = Field.GetID() charPos = Character.GetPos() foundNext = False routeChecked = False for portal in mazePortals: # Don't go the return route if len(returnRoute) > 0: if portal == returnRoute[len(returnRoute) - 1]: print("Skipping return portal:", portal) continue nextPortal = Field.FindPortal(portal) if nextPortal.valid: # Check routes testRoute = mapRoute.copy() testRoute.append(portal) for route in triedRoutes: if testRoute == route: print("Skipping already tried portal:", portal) routeChecked = True break if routeChecked: continue if (nextPortal.x >= (charPos.x - 20) and nextPortal.x <= charPos.x + 20) and ( nextPortal.y >= (charPos.y - 20) and nextPortal.y <= charPos.y + 20): continue print("Going to portal:", portal) Character.Teleport(nextPortal.x, nextPortal.y - 10) time.sleep(enterWait) for i in range(5): Character.EnterPortal() time.sleep(0.05) time.sleep(checkWait) if Field.GetID() != checkMap: mapRoute.append(portal) print(mapRoute) foundNext = True newPos = Character.GetPos() for portal2 in mazePortals: returnPortal = Field.FindPortal(portal2) if returnPortal.valid: if (returnPortal.x >= (newPos.x - 20) and returnPortal.x <= newPos.x + 20) and ( returnPortal.y >= (newPos.y - 20) and returnPortal.y <= newPos.y + 20): returnRoute.append(portal2) break break elif Field.GetID() == 863000017: print("Disconnected from game! Exiting script...") break else: print("Disconnected from game! Exiting script...") break if not foundNext and Field.GetID() != targetMap: if len(returnRoute) > 0: if mapRoute not in triedRoutes: triedRoutes.append(mapRoute) print(triedRoutes) portal3 = returnRoute.pop() backPortal = Field.FindPortal(portal3) if backPortal.valid: print("Going back to", portal3) Character.Teleport(backPortal.x, backPortal.y - 10) time.sleep(enterWait) Character.EnterPortal() time.sleep(checkWait) mapRoute.pop() else: print("Already starting on a portal - pls don't do this") Character.EnterPortal() time.sleep(checkWait)
import GameState import Npc import Quest import Terminal import time Terminal.SetRushByLevel(False) while True: time.sleep(1) level = Character.GetLevel() if not GameState.IsInGame(): continue if Terminal.IsRushing(): continue if level < 140: continue fieldID = Field.GetID() # Gets statuses on quests required for solo voyages quest1 = Quest.GetQuestState(17600) quest2 = Quest.GetQuestState(17601) quest3 = Quest.GetQuestState(17602) quest4 = Quest.GetQuestState(17603) quest5 = Quest.GetQuestState(17608) quest6 = Quest.GetQuestState(17610) quest7 = Quest.GetQuestState(17611)
def doSS(): if dailySS: if SCLib.GetVar("CurStep") == "InitSS": initSS() elif SCLib.GetVar("CurStep") == "StartingSS": startSS() elif SCLib.GetVar("CurStep") == "RunSS": runSS() elif SCLib.GetVar("CurStep") == "FinishingSS": finishSS() else: SCLib.UpdateVar("CurDaily", "Return") SCLib.UpdateVar("RetryCount", 0) if not Terminal.IsRushing(): if SCLib.CheckVersion(22): initVars() curDaily = SCLib.GetVar("CurDaily") if GameState.IsInGame(): if curDaily == "VJ": doVJ() elif curDaily == "ChuChu": doChuChu() elif curDaily == "DD": doDD() elif curDaily == "SS": doSS() elif curDaily == "Return": SCLib.UpdateVar("CurDaily", None) SCLib.UpdateVar("CurStep", "StartingVJ")
else: print("Changing channel to {0}".format(NewChannel)) time.sleep(0.5) Terminal.ChangeChannel(NewChannel) time.sleep(3) def ResetTeleportAttempt(): SCLib.UpdateVar("TeleportAttempt", 0) def ResetHarvestAttempt(): SCLib.UpdateVar("HarvestAttempt", 0) if GameState.IsInGame() and not Terminal.IsRushing(): time.sleep(1) for harvest in collectID: herbore = Field.FindReactor(harvest) if herbore.valid: print("Found herb/Ore with ID {0}".format(herbore.id)) SCLib.UpdateVar("noReactorInMap", False) break else: print("Did not find any herb/Ore with ID {0}".format(harvest)) SCLib.UpdateVar("noReactorInMap", True) if herbore.valid: if Field.GetCharacterCount() != 0: ChangeChannels() else:
def Rush(mapid): if Terminal.IsRushing(): time.sleep(1) elif Field.GetID() != mapid: time.sleep(1) Terminal.Rush(mapid)
def InitAll(): Terminal.SetCheckBox("bot/si_no_wait", False) Terminal.SetCheckBox("Kami Vac", False) Terminal.SetCheckBox("General FMA", False) Terminal.SetCheckBox("Full Map Attack", False) Terminal.SetCheckBox("bot/kanna_kami", False) Terminal.SetCheckBox("Pet Item Teleport", False) retryCount = 0 maxRetry = 3 tryAgain = True if Field.GetID() == startingMap: print('Starting...') if Terminal.IsRushing(): Terminal.StopRush() Terminal.SetCheckBox("Auto NPC", True) SunCat.HookChuChu() InitRecipes() if usingParty: if leader: # invite members in list ''' while len(partyMembers) > len(Party.GetPartyMembers()): print(partyMembers, Party.GetPartyMembers()) for member in partyMembers: if member != Character.GetName(): print("inviting", member) Party.InviteToParty(member) time.sleep(1) ''' changeChannel() while usingParty and not PartyReady() and tryAgain: print("waiting for members") time.sleep(2) ''' for member in Party.GetPartyMembers(): if member.mapid == 450002000: print("Done") Party.KickMember(member.id) tryAgain = False ''' else: if Party.IsInParty(): if not PartyReady(): print("Chasing leader") FollowLead() time.sleep(2) else: Party.SetInviteCallback(partyInviteCallback) else: changeChannel() while tryAgain and Party.GetPartyBossID() == Character.GetID(): if Field.GetID() == startingMap: if not Party.IsInParty(): Party.CreateParty() retryCount += 1 time.sleep(1) if retryCount > maxRetry: print( "Failed to enter ChuChu, have you already done it 3 times? Move to next daily" ) SCLib.UpdateVar("ChuchuDone" + CharName, True) break Npc.ClearSelection() Npc.RegisterSelection("Enter <Hungry Muto>") if isHardMode: Npc.RegisterSelection("Hard") else: Npc.RegisterSelection("Normal") Character.TalkToNpc(3003166) time.sleep(5) elif Field.GetID() in hungryMutoMaps: print("Starting ChuChuPQ!") tryAgain = False DoChuChu() else: tryAgain = False print("Not in ChuChuPQ!") SunCat.UnhookChuChu() elif Field.GetID() == exitMap: RestoreSetting() SunCat.StopTP() Npc.ClearSelection() Npc.RegisterSelection("Claim") Character.TalkToNpc(3003166) time.sleep(1) else: print("Not in ChuChu Entry Map!")
def Main(): if GameState.IsInGame(): if not Quest.GetQuestState(33284) == 2: if Terminal.IsRushing(): Terminal.StopRush() CoreEnterance = 350060000 Core = 350060160 Lotus1 = 350060220 Lotus2 = 350060240 Lotus3 = 350060260 BHCorrider = 350062000 BHCorrider1 = 350062110 BHCorrider2 = 350062120 BHCorrider3 = 350062130 BHCorrider4 = 350062150 Quater = 350062400 Gelimer = 350062410 Gelimer2 = 350062500 Escape1 = 350063000 Escape2 = 350063001 Escape3 = 350063002 Escape4 = 350063003 Escape5 = 350063004 currentMap = Field.GetID() if not 350060000 <= Field.GetID() <= 350063500: Terminal.Rush(350061000) time.sleep(5) if currentMap == CoreEnterance: SetAttack(False) ToPortal("bossIn00") if currentMap in range(Core, Core + 10): SetAttack(True) if MapRange(Lotus1) or MapRange(Lotus2) or MapRange(Lotus3): SetAttack() if currentMap == 350061000: ToPortal("pt_350061000") elif currentMap == BHCorrider: SetAttack(False) ToPortal("In00") elif currentMap in range(BHCorrider1, BHCorrider1 + 10): if len(Field.GetMobs()) > 0: SetAttack(True) else: SetAttack(False) ToPortal("east00") elif currentMap in range(BHCorrider3, BHCorrider3 + 10): if len(Field.GetMobs()) > 0: SetAttack(True) else: SetAttack(False) ToPortal("east00") elif currentMap in range(BHCorrider4, BHCorrider4 + 10): if len(Field.GetMobs()) > 0: SetAttack(True) else: SetAttack(False) ToPortal("east00") if currentMap == Quater: SetAttack(False) ToPortal("pt00") elif currentMap == Gelimer: Npc.ClearSelection() Npc.RegisterSelection("Please") time.sleep(2) SpamSpace() elif currentMap == Gelimer2: Character.MoveX(Field.FindPortal("pt00").x, 8000) # ToPortal("pt00") SpamSpace() elif currentMap == 350062900: ToPortal("out00") elif currentMap == Escape1: Character.MoveX(0, 5000) elif currentMap == Escape2: ToPortal("wet00") elif currentMap == Escape3: ToPortal("west00") elif currentMap == Escape4: time.sleep(2) ToPortal("pt00") elif currentMap == Escape5: SetAttack(False, False) Character.MoveX(200, 15000) # ToPortal("pt00") SpamKey("alt") elif currentMap == 350063200: quests = { 33281: 1540744, 33282: 1540745, 33283: 1540746, 33284: 1540729 } for qid, npc in quests.items(): if DoQuest(qid): StartQuest(qid, npc) time.sleep(5)
fameCharacter = "Mikkushu" #"ElfBenKi"#"NikuBenKi"#'FibreOptics' fameMap = 807000000 farmMap = 807020100 accountPIC = '000111' channel = 14 if GameState.IsInGame(): if Quest.GetQuestState(57402) != 2: Terminal.SetRushByLevel(False) if Field.GetID() == 807040000 or Field.GetID() == 807040100: quest1 = Quest.GetQuestState(57400) quest2 = Quest.GetQuestState(57401) quest3 = Quest.GetQuestState(57402) Terminal.SetCheckBox("Kami Vac", False) if Terminal.IsRushing(): print("Stopping terminal rush") Terminal.StopRush() if quest1 != 2: if quest1 == 0: Quest.StartQuest(57400, 0) time.sleep(0.2) elif quest2 != 2: if quest2 == 0: Quest.StartQuest(57401, 9130082) time.sleep(0.2) else: Quest.CompleteQuest(57401, 9130082) time.sleep(0.2) elif quest3 != 2: if quest3 == 0: