def initVars(): SCLib.PersistVar("StartingMap", Field.GetID()) SCLib.PersistVar("UsingKami", Terminal.GetCheckBox("Kami Vac")) SCLib.PersistVar("UsingSI", Terminal.GetCheckBox("Skill Injection")) SCLib.PersistVar("UsingFMA", Terminal.GetCheckBox("Full Map Attack")) SCLib.PersistVar("UsingGFMA", Terminal.GetCheckBox("General FMA")) SCLib.PersistVar("UsingWhitelist", Terminal.GetPushButton("Whitelist")) SCLib.PersistVar("UsingAutoBuff", Terminal.GetCheckBox("Auto Buff")) SCLib.PersistVar("CurDaily", "VJ") SCLib.PersistVar("CurQuest", None) SCLib.PersistVar("SymbolCount", 0) SCLib.PersistVar("CurSSRuns", 0) SCLib.PersistVar("CurStep", "StartingVJ") SCLib.PersistVar("RetryCount", 0) SCLib.StartVars()
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)
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)
#Legendary: 100013 ###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)
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 dungeonSelector(): charLvl = Character.GetLevel() if charLvl in range(115, 125):