def doVJ(): if dailyVJ: initVJ() counter = -1 if SCLib.GetVar("CurStep") == "StartingVJ": print("Starting Vanishing Journey") acceptVJ() elif SCLib.GetVar("CurStep") == "DoingVJ": counter = 0 for q in vjQuests: if q.IsActive(): counter += 1 if SCLib.GetVar("CurQuest") == None or SCLib.GetVar( "CurQuest") == q.quest: q.DoQuest() if counter == 0: SCLib.UpdateVar("CurStep", "FinishedVJ") elif SCLib.GetVar("CurStep") == "FinishedVJ": print("Finishing VJ") if not Quest.CheckCompleteDemand(34129, vjNPC): Quest.CompleteQuest(34129, vjNPC) vjSymbol = Inventory.FindItemByID(1712001) if not useSymbol(vjSymbol): print("Finished VJ") SCLib.UpdateVar("CurDaily", "ChuChu") SCLib.UpdateVar("CurStep", "InitChuChu") else: print("Skipping VJ") SCLib.UpdateVar("CurDaily", "ChuChu") SCLib.UpdateVar("CurStep", "InitChuChu")
def doDD(): if dailyDD: if SCLib.GetVar("CurStep") == "InitDD": initDD() elif SCLib.GetVar("CurStep") == "StartingDD": startDD() else: SCLib.UpdateVar("CurDaily", "SS") SCLib.UpdateVar("CurStep", "InitSS")
def checkSScoin(): if Inventory.GetItemCount(4310235) == (SCLib.GetVar("SpiritCoin"+CharName)+30)\ or Inventory.GetItemCount(4310235) == (SCLib.GetVar("SpiritCoin"+CharName)+60): print("You earned daily cap for spirit coin") print("Finished Spirit Savior Daily") RestoreSetting() SCLib.UpdateVar("SpiritDone" + CharName, True) return True else: return False
def useSymbol(symbol): if symbol.valid and SCLib.GetVar("SymbolCount") < symbolMaxTries: oPacket = Packet.COutPacket(SCLib.PacketHeader["Symbols"]) oPacket.Encode4(0x00000000) oPacket.Encode4(symbol.pos) #inv slot oPacket.Encode4(0xFFFFF9BB) #??? Packet.SendPacket(oPacket) SCLib.UpdateVar("SymbolCount", SCLib.GetVar("SymbolCount") + 1) return True else: SCLib.UpdateVar("SymbolCount", 0) return False
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)
def startSS(): if inSS(): SCLib.UpdateVar("CurStep", "RunSS") else: if SCLib.GetVar("RetryCount") < 3 and SCLib.GetVar( "CurSSRuns") < totalRuns: print("Failed to enter SS... Retrying") SCLib.UpdateVar("RetryCount", SCLib.GetVar("RetryCount") + 1) SCLib.UpdateVar("CurStep", "InitSS") else: print("Finished SS") SCLib.UpdateVar("CurDaily", "Return") SCLib.UpdateVar("RetryCount", 0)
def doChuChu(): if dailyChuChu: InitRecipes() if SCLib.GetVar("CurStep") == "InitChuChu": initChuChu() elif SCLib.GetVar("CurStep") == "StartingChuChu": startChuChu() elif SCLib.GetVar("CurStep") == "DoingChuChu": doingChuChu() elif SCLib.GetVar("CurStep") == "FinishedChuChu": finishChuChu() else: SCLib.UpdateVar("CurDaily", "DD") SCLib.UpdateVar("CurStep", "InitDD")
def finishChuChu(): chuchuSymbol = Inventory.FindItemByID(1712002) if not useSymbol(chuchuSymbol): if SCLib.GetVar("UsingWhitelist"): Terminal.SetPushButton("Whitelist", True) SCLib.UpdateVar("CurDaily", "DD") SCLib.UpdateVar("CurStep", "StartingDD")
def GetCoin(npc): print("Receiving coins from", npc) retry=0 while SCLib.GetVar("DDCoin") == Inventory.GetItemCount(4310227) and retry<3: Character.TalkToNpc(npc) time.sleep(3) retry+=1
def startChuChu(): if Field.GetID() != ccStartingMap: SCLib.UpdateVar("CurStep", "InitChuChu") else: retryCount = SCLib.GetVar("RetryCount") if retryCount > 3: SCLib.UpdateVar("RetryCount", 0) print("Finished ChuChu") SCLib.UpdateVar("CurStep", "FinishedChuChu") SunCat.UnhookChuChu() else: Npc.ClearSelection() Npc.RegisterSelection("Enter <Hungry Muto>") if chuChuHardMode: Npc.RegisterSelection("Hard") else: Npc.RegisterSelection("Normal") Character.TalkToNpc(ccNpc) time.sleep(5) if Field.GetID() == ccStartingMap: print("Failed to enter ChuChu, creating a new party...") leaveParty() createParty() SCLib.UpdateVar("RetryCount", retryCount + 1) time.sleep(1) elif Field.GetID() in hungryMutoMaps: print("Starting ChuChuPQ!") SCLib.UpdateVar("CurStep", "DoingChuChu")
def acceptVJ(): curMap = Field.GetID() if curMap != vjMap: Terminal.Rush(vjMap) return if Terminal.GetCheckBox("Kami Vac"): Terminal.SetCheckBox("Kami Vac", False) Terminal.SetCheckBox("Auto NPC", True) SunCat.Teleport(-1941, 60) time.sleep(0.1) if Quest.GetQuestState(34128) != 2: Quest.StartQuest(34128, vjNPC) time.sleep(1.5) Quest.CompleteQuest(34128, vjNPC) #Quest.StartQuest(34128, vjNPC) Npc.ClearSelection() #Npc.RegisterSelection("[Daily Quest] Vanishing Journey") Npc.RegisterSelection("Those are all") time.sleep(3) Quest.StartQuest(34129, vjNPC) time.sleep(3) #Character.TalkToNpc(vjNPC) #time.sleep(1) if SCLib.GetVar("UsingKami"): Terminal.SetCheckBox("Kami Vac", True) SCLib.UpdateVar("CurStep", "DoingVJ")
def ChangeChannels(): if CurrentChannel == 20: if fieldID == LastMapID: print("Changing Channel to 1") time.sleep(0.5) Terminal.ChangeChannel(1) time.sleep(3) print("Resetting back to first map") SCLib.UpdateVar("MapNumber", 0) time.sleep(3) else: print("Changing channel to 1") time.sleep(0.5) Terminal.ChangeChannel(1) time.sleep(3) SCLib.UpdateVar("MapNumber", SCLib.GetVar("MapNumber") + 1) print("Changing map to {0}".format(SCLib.GetVar("MapNumber"))) else: print("Changing channel to {0}".format(NewChannel)) time.sleep(0.5) Terminal.ChangeChannel(NewChannel) time.sleep(3)
def startDD(): if Field.GetID() >= ddMap and Field.GetID() <= ddMapEnd: curStage = SunCat.GetDDStage() if curStage >= ddExitLevel: SunCat.StopTP() retreatDD() time.sleep(4) else: boxFound = False for box in ddPurpleBoxes: curBox = Field.FindMob(box) if curBox.valid: boxFound = True if SCLib.GetVar("UsingSI"): Terminal.SetCheckBox("Skill Injection", True) SunCat.KamiTP(curBox.x + kamiOffsetX, curBox.y + kamiOffsetY) break if boxFound == False: Terminal.SetCheckBox("Skill Injection", False) SunCat.KamiTP(ddRestX, ddRestY) elif Field.GetID() == ddExitMap: SunCat.StopTP() #SunCat.UnfilterMobs() Character.TalkToNpc(ddNpc) else: if SCLib.GetVar("RetryCount") < 3: print("Failed to enter DD... Retrying") SCLib.UpdateVar("RetryCount", SCLib.GetVar("RetryCount") + 1) SCLib.UpdateVar("CurStep", "InitDD") else: print("Finished DD") SunCat.UnhookDD() SCLib.UpdateVar("CurStep", "InitSS") SCLib.UpdateVar("CurDaily", "SS") SCLib.UpdateVar("RetryCount", 0)
def DoQuest(self): if Quest.GetQuestState(self.quest) == 1: curMap = Field.GetID() SCLib.UpdateVar("CurQuest", self.quest) if Quest.CheckCompleteDemand(self.quest, self.npc): if curMap != self.killmap: Terminal.Rush(self.killmap) else: if curMap != self.completemap: Terminal.Rush(self.completemap) else: if Terminal.GetCheckBox("Kami Vac"): Terminal.SetCheckBox("Kami Vac", False) SunCat.Teleport(self.npcx, self.npcy) time.sleep(1) Quest.CompleteQuest(self.quest, self.npc) time.sleep(2) if SCLib.GetVar("UsingKami"): Terminal.SetCheckBox("Kami Vac", True) SCLib.UpdateVar("CurQuest", None)
def runSS(): for i in range(roundsPerRun): killCount = 0 mobsKilled = [] while killCount < 5: if not GameState.IsInGame() or not inSS(): print("Not in SS!") break curMob = None for mobID in ssMobArray: mob = Field.FindMob(mobID) if mob.valid and mob not in mobsKilled: curMob = mob mobsKilled.append(mob) break if curMob is not None: SunCat.KamiTP(curMob.x, curMob.y) time.sleep(killTime) Key.Press(npcChatKey) time.sleep(0.2) Key.Press(npcChatKey) time.sleep(waitTime) killCount += 1 else: print("No mobs left!") time.sleep( 3) #Wait for mobs to respawn - this should never be hit SunCat.KamiTP(ssBaseX, ssBaseY) time.sleep(roundWaitTime) SCLib.UpdateVar("CurSSRuns", SCLib.GetVar("CurSSRuns") + 1) SCLib.UpdateVar("CurStep", "FinishingSS")
print("Starting Arcane River AiO script") import os, sys, Character, GameState, Field, DataType, time, Npc, Packet, Terminal, Context, Inventory, Key, Quest, Party if not any("SunCat" in s for s in sys.path): sys.path.append(os.getcwd() + "\SunCat") try: import SunCat, SCLib, SCHotkey except: print("Couldn't find SunCat module") ########################## # Initial setup ########################## SCLib.StartVars() if SCLib.GetVar("ChuchuDone") is None: SCLib.PersistVar("ChuchuDone", False) if SCLib.GetVar("DreamDone") is None: SCLib.PersistVar("DreamDone", False) if SCLib.GetVar("SpiritDone") is None: SCLib.PersistVar("SpiritDone", False) if SCLib.GetVar("DDCoinDone") is None: SCLib.PersistVar("DDCoinDone", False) if SCLib.GetVar("DDCoin") is None: SCLib.PersistVar("DDCoin", Inventory.GetItemCount(4310227)) if SCLib.GetVar("SpiritCoin") is None: SCLib.PersistVar("SpiritCoin", Inventory.GetItemCount(4310235)) if SCLib.GetVar("defaultEva") is None: SCLib.PersistVar("defaultEva", Terminal.GetComboBox("HackingOpt")) options = ['General FMA', 'Full Map Attack', 'Grenade Kami', 'Mob Falldown', 'Kami Vac', 'bot/kanna_kami', 'bot/si_no_wait', 'Skill Injection', 'Auto Attack']
def RestoreSetting(): print("restore terminal setting") for option in options: Terminal.SetCheckBox(option, SCLib.GetVar(option))
###Expand the list for easier changes :) ######################################################################################################################################### # # # Do not change anything below this line! # # # ######################################################################################################################################### SCLib.PersistVar("noReactorInMap", False) SCLib.PersistVar("MapNumber", 0) SCLib.PersistVar("TeleportAttempt", 0) SCLib.PersistVar("HarvestAttempt", 0) SCLib.PersistVar("TeleportCount", 0) SCLib.StartVars(20) HasLooted = SCLib.GetVar("noReactorInMap") TeleportAttempt = SCLib.GetVar("TeleportAttempt") HarvestAttempt = SCLib.GetVar("HarvestAttempt") fieldID = Field.GetID() pos = Character.GetPos() CurrentChannel = GameState.GetChannel() NewChannel = CurrentChannel + 1 def ChangeChannels(): if CurrentChannel == 20: if fieldID == LastMapID: print("Changing Channel to 1") time.sleep(0.5) Terminal.ChangeChannel(1) time.sleep(3)
except: print("Couldn't find SunCat module") # Initial setup leader = False if usingParty and Party.IsInParty(): if Party.GetPartyBossID() == Character.GetID(): leader = True if usingParty and len(Party.GetPartyMembers()) <= 1: usingParty = False # Suncat Variables SCLib.StartVars() CharName = Character.GetName() if SCLib.GetVar("DailyDate" + CharName) is None: print("Initialize variables for {0}".format(CharName)) SCLib.PersistVar("DailyDate" + CharName, time.gmtime().tm_mday) SCLib.PersistVar("VJDone" + CharName, False) SCLib.PersistVar("ChuchuDone" + CharName, False) SCLib.PersistVar("DreamDone" + CharName, False) SCLib.PersistVar("SpiritDone" + CharName, False) SCLib.PersistVar("DDCoinDone" + CharName, False) SCLib.PersistVar("MorassDone" + CharName, False) SCLib.PersistVar("ChuchuRun" + CharName, 0) SCLib.PersistVar("DreamRun" + CharName, 0) SCLib.PersistVar("SpiritRun" + CharName, 0) SCLib.PersistVar("ChuchuSymbol" + CharName, 0) SCLib.PersistVar("DDCoin" + CharName, Inventory.GetItemCount(4310227)) SCLib.PersistVar("SpiritCoin" + CharName, Inventory.GetItemCount(4310235)) SCLib.PersistVar("defaultEva" + CharName,
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") print("Done! Back to botting...") if SCLib.GetVar("UsingKami"): Terminal.SetCheckBox("Kami Vac", True)
import Quest import time import GameState import Terminal if not any("SunCat" in s for s in sys.path): sys.path.append(os.getcwd() + "/SunCat") try: import SunCat, SCLib, SCHotkey except: print("Couldn't find SunCat module") SCLib.StartVars() ###persist variables if SCLib.GetVar("QuestDone") is None: SCLib.PersistVar("QuestDone", False) preq = Quest.GetQuestState(55610) quest = Quest.GetQuestState(52743) #CompleteQuest(55612, 9330600) #CompleteQuest(52743, 9201269) #CompleteQuest(52743, 9330277) quest_number = 52743 quest_npc = 9201269 quest_npc2 = 9330277 grove_of_the_spirit_tree = 450005000 #print(SCLib.GetVar("QuestDone")) if GameState.IsInGame() and SCLib.GetVar("QuestDone") == False: if SCLib.GetVar("QuestDone") == False: Quest.StartQuest(quest_number, quest_npc)
mossy_tree_forest = "Mossy Tree Forest (Lv.115-124)" sky_forest = "Sky Forest Training Center (Lv.120-129)" secret_pirate = "Secret Pirate Hideout (Lv.125-134)" other_world = "Otherworld Battleground (Lv.135-144)" dangerous_forest = "Dangerously Isolated Forest (Lv.140-149)" forbidden_time = "Forbidden Time (Lv.145-154)" clandestine_ruins = "Clandestine Ruins (Lv.150-159)" ruined_city = "Ruined City" leopard_portal = (493, 92) tiger_portal = (661, 92) buy_ticket_header = 0x0508 recv = 0x0684 collide_header = 0x00FE KannaJobs = [4200, 4210, 4211, 4212] if SCLib.GetVar("MPDone") is None: SCLib.PersistVar("MPDone", False) if SCLib.GetVar("DoingMP") is None: SCLib.PersistVar("DoingMP", False) if SCLib.GetVar("retry_count") is None: SCLib.PersistVar("retry_count", 0) SCLib.StartVars(100) def KillPersistVarThred(): print("Stopping vars") SCLib.StopVars() time.sleep(1) SCHotkey.RegisterKeyEvent(HotKey, KillPersistVarThred) #F9
def ToggleOn(self): CheckBox("Skill Injection", SCLib.GetVar("Skill Injection" + CharName)) CheckBox("Auto Attack", SCLib.GetVar("Auto Attack" + CharName))
def RestoreEvasion(): Terminal.SetComboBox("HackingOpt", SCLib.GetVar("defaultEva"))
def KillHorntail(bossDifficulty): SCLib.PersistVar("HasSpawned", False) SCLib.PersistVar("NowLockedVar", False) HasSpawned = SCLib.GetVar("HasSpawned") NowLockedVar = SCLib.GetVar("NowLockedVar") SCLib.StartVars() if bossDifficulty == 0: HorntailEasy = True HorntailNormal = False HorntailChaos = False elif bossDifficulty == 1: HorntailEasy = False HorntailNormal = True HorntailChaos = False else: HorntailEasy = False HorntailNormal = False HorntailChaos = True HorntailPreQuest = Quest.GetQuestState(7313) if HorntailPreQuest == 0: print( "Horntail Prequest not started or done, Starting quest before entery" ) if Field.GetID() != CaveOfLifeEntrance1: Terminal.Rush(CaveOfLifeEntrance1) else: Quest.StartQuest(7313, 2081006) print("Horntail Prequest started") else: #ToggleKami(False) print("Doing Horntail") if HorntailEasy: print("Easy") if Field.GetID() != HorntailsCaveEasy: if Field.GetID() != TheCaveOfTrialEasy2: if Field.GetID() != TheCaveOfTrialEasy1: if Field.GetID() != EntranceToHorntailsCave: GotoHorntail() else: if not NowLockedVar: Npc.ClearSelection() Npc.RegisterSelection( "Easy Mode (Level 130 or above)") time.sleep(1) Character.TalkToNpc(2083004) time.sleep(1) else: print( "Seems like you diddnt finish your last attempt and are locked. Continueing other bosses" ) SCLib.UpdateVar("KillHorntail", False) ResetNowLockedFunction() else: NowLockedFunction() boss = Field.FindMob(HorntailsLeftHeadEasy) if boss.valid: ToggleKami(False) if Character.GetPos().x != 522: Character.Teleport(522, -40) print("Horntails left head still alive standby") else: ToggleFaceLeft(True) ToggleKami(False) if Character.GetPos().x != 840: Character.Teleport(840, -165) else: Character.EnterPortal() else: boss = Field.FindMob(HorntailsRightHeadEasy) if boss.valid: ToggleKami(False) ToggleAttack(True) if Character.GetPos().x != 9: Character.Teleport(9, -40) print("Horntails right head still alive standby") else: ToggleFaceLeft(False) ToggleKami(False) if Character.GetPos().x != -307: Character.Teleport(-307, -165) else: Character.EnterPortal() else: boss = Field.FindMob(EasyHorntail) if boss.valid: ToggleAttack(True) DidSpawn() ToggleKami(True) print("Horntail still alive Standby") else: if HasSpawned: ToggleKami(False) ToggleLoot(True) print( "Horntail Easy Is dead waiting 10 sec before continueing" ) time.sleep(10) Character.TalkToNpc(2083002) time.sleep(1) SCLib.UpdateVar("KillHorntail", False) ToggleLoot(False) ResetSpawn() ResetNowLockedFunction() else: ToggleKami(False) ToggleAttack(False) crystal = Field.FindReactor(2401300) if crystal.valid: if Character.GetPos().x != 540: Character.Teleport(540, 15) else: Character.BasicAttack() time.sleep(2) elif HorntailNormal: print("Normal") if Field.GetID() not in HorntailsCaveNormal: if Field.GetID() not in TheCaveOfTrialNormal2: if Field.GetID() not in TheCaveOfTrialNormal1: if Field.GetID() != EntranceToHorntailsCave: GotoHorntail() else: if not NowLockedVar: Npc.ClearSelection() Npc.RegisterSelection( "Normal Mode (Level 130 or above)") time.sleep(1) Character.TalkToNpc(2083004) time.sleep(1) else: print( "Seems like you diddnt finish your last attempt and are locked. Continueing other bosses" ) SCLib.UpdateVar("KillHorntail", False) ResetNowLockedFunction() else: NowLockedFunction() boss = Field.FindMob(HorntailsLeftHeadNormal) if boss.valid: ToggleKami(False) ToggleAttack(True) if Character.GetPos().x != 522: Character.Teleport(522, -40) print("Horntails left head still alive standby") else: ToggleFaceLeft(True) ToggleKami(False) if Character.GetPos().x != 840: Character.Teleport(840, -165) else: Character.EnterPortal() else: boss = Field.FindMob(HorntailsRightHeadNormal) if boss.valid: ToggleKami(False) if Character.GetPos().x != 9: Character.Teleport(9, -40) print("Horntails right head still alive standby") else: ToggleFaceLeft(False) ToggleKami(False) if Character.GetPos().x != -307: Character.Teleport(-307, -165) else: Character.EnterPortal() else: boss = Field.FindMob(NormalHorntail) if boss.valid: ToggleAttack(True) ToggleKami(True) DidSpawn() print("Horntail Normal still alive Standby") else: if HasSpawned: ToggleKami(False) ToggleLoot(True) print( "Horntail Normal Is dead waiting 10 sec before continueing" ) time.sleep(10) Character.TalkToNpc(2083002) time.sleep(1) ToggleLoot(False) SCLib.UpdateVar("KillHorntail", False) ResetSpawn() ResetNowLockedFunction() else: ToggleAttack(False) ToggleKami(False) crystal = Field.FindReactor(2401000) if crystal.valid: if Character.GetPos().x != 540: Character.Teleport(540, 15) else: Character.BasicAttack() time.sleep(2) elif HorntailChaos: print("Chaos") if Field.GetID() not in ChaosHorntailsCave: if Field.GetID() not in TheCaveOfTrialChaos2: if Field.GetID() not in TheCaveOfTrialChaos1: if Field.GetID() != EntranceToHorntailsCave: GotoHorntail() else: if not NowLockedVar: Npc.ClearSelection() Npc.RegisterSelection( "Chaos Mode (Level 135 or above)") time.sleep(1) Character.TalkToNpc(2083004) time.sleep(1) else: print( "Seems like you diddnt finish your last attempt and are locked. Continueing other bosses" ) SCLib.UpdateVar("KillHorntail", False) ResetNowLockedFunction() else: NowLockedFunction() boss = Field.FindMob(ChaosHorntailsLeftHead) if boss.valid: ToggleKami(False) ToggleAttack(True) while Character.GetPos().x not in range(500, 570): Character.AMoveX(522) print("Horntails left head still alive standby") else: ToggleFaceLeft(True) ToggleKami(False) if Character.GetPos().x != 840: Character.Teleport(840, -165) else: Character.EnterPortal() else: boss = Field.FindMob(ChaosHorntailsRightHead) if boss.valid: ToggleKami(False) ToggleAttack(True) while Character.GetPos().x not in range(-40, 40): Character.AMoveX(9) print("Horntails right head still alive standby") else: ToggleFaceLeft(False) ToggleKami(False) if Character.GetPos().x != -307: Character.Teleport(-307, -165) else: Character.EnterPortal() else: boss = Field.FindMob(ChaosHorntail) boss1 = Field.FindMob(ChaosHorntail1) boss2 = Field.FindMob(ChaosHorntail2) boss3 = Field.FindMob(ChaosHorntail3) boss4 = Field.FindMob(ChaosHorntail4) if boss.valid or boss1.valid or boss2.valid or boss3.valid or boss4.valid: ToggleAttack(True) #ToggleKami(True) DidSpawn() while Character.GetPos().x not in range(140, 220): Character.AMoveX(183) print("Horntail still alive, Standby") else: if HasSpawned: ToggleKami(False) ToggleLoot(False) #print("Horntail Is dead waiting 10 sec before continueing") print("Looting") Terminal.SetCheckBox("Auto Loot", True) MoveToXLocation(Field.GetRect().left) time.sleep(1.5) MoveToXLocation(Field.GetRect().right) time.sleep(1.5) MoveToXLocation(Field.GetRect().left) time.sleep(1.5) MoveToXLocation(Field.GetRect().right) time.sleep(1.5) MoveToXLocation(Field.GetRect().left) time.sleep(1.5) #time.sleep(10) Character.TalkToNpc(2083002) time.sleep(1) SCLib.UpdateVar("KillHorntail", False) ToggleLoot(False) ResetSpawn() ResetNowLockedFunction() else: ToggleAttack(False) ToggleKami(False) crystal = Field.FindReactor(2401100) if crystal.valid: if Character.GetPos().x != 540: Character.Teleport(540, 15) else: Character.BasicAttack() time.sleep(2)
quest22 = Quest.GetQuestState(58967) quest23 = Quest.GetQuestState(58968) herb_header = 0x03E3 #Key to restart pers. variables HotKey = 0x7A def TP_EnterPortal(x, y): Character.Teleport(x, y) time.sleep(1) Character.EnterPortal() SCLib.StartVars() if SCLib.GetVar("HuntDone") is None: SCLib.PersistVar("HuntDone", False) SCHotkey.StartHotkeys(100) def KillPersistVarThred(): SCLib.StopVars() time.sleep(1) SCHotkey.RegisterKeyEvent(HotKey, KillPersistVarThred) #F11 #SunCat.StopTP() print("Starting kanna ring script") Terminal.SetCheckBox("Kami Loot", False) Terminal.SetCheckBox("Auto Loot", False)