コード例 #1
0
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")
コード例 #2
0
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")
コード例 #3
0
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")
コード例 #4
0
def initSS():
    CheckBox("General FMA", False)
    CheckBox("Full Map Attack", False)
    CheckBox("Kami Vac", False)
    for mob in enemyMobs:
        SunCat.FilterMob(mob)

    if Field.GetID() not in list(range(ssMapStart,
                                       ssMapEnd + 1)) + [ssMapTown, ssExitMap]:
        print("Rush to Arcana town")
        Rush(ssMapTown)

    elif Field.GetID() == ssMapTown:
        if checkSScoin():
            SCLib.UpdateVar("SpiritDone" + CharName, True)
            return

        retryCount = 0
        while retryCount < 3 and Field.GetID() == ssMapTown:
            print("Attempting to join Spirit Savior")
            Party.LeaveParty()
            Npc.ClearSelection()
            Npc.RegisterSelection("Attempt <Spirit Savior>")
            Character.TalkToNpc(3003381)
            time.sleep(3)
            retryCount += 1

        if retryCount == 3:
            SCLib.UpdateVar("SpiritDone" + CharName, True)
            return
コード例 #5
0
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")
コード例 #6
0
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
コード例 #7
0
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
コード例 #8
0
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
コード例 #9
0
def initDD():
    if Field.GetID() != ddStartingMap:
        Terminal.Rush(ddStartingMap)
    else:
        leaveParty()

        SunCat.HookDD()

        Terminal.SetCheckBox("Auto NPC", True)
        Terminal.SetCheckBox("Kami Vac", False)
        Terminal.SetCheckBox("Full Map Attack", False)
        Terminal.SetCheckBox("General FMA", False)

        #for mob in ddFilterMobs:
        #SunCat.FilterMob(mob)

        #SunCat.FilterMob(ddYellowBox)

        Npc.ClearSelection()
        Npc.RegisterSelection("Attempt")
        Npc.RegisterSelection(str(ddLevelSelect))
        time.sleep(2)
        Character.TalkToNpc(ddNpc)
        time.sleep(3)

        SCLib.UpdateVar("CurStep", "StartingDD")
コード例 #10
0
def finishSS():
    if Field.GetID() == ssExitMap:
        Character.TalkToNpc(ssNpc)

        SunCat.StopTP()
        SunCat.UnfilterMobs()
        SCLib.UpdateVar("CurStep", "InitSS")
        time.sleep(5)
コード例 #11
0
def InitAll():
    Terminal.SetCheckBox("bot/si_no_wait", True)
    Terminal.SetCheckBox("Kami Vac", False)
    Terminal.SetCheckBox("General FMA", False)
    Terminal.SetCheckBox("Full Map Attack", False)
    Terminal.SetCheckBox("bot/kanna_kami", False)
    if Field.GetID() not in ([startingMap, exitMap]+hungryMutoMaps):
        Terminal.Rush(startingMap)
        if usingParty:
            time.sleep(5)

    if Field.GetID() == startingMap:
        print('Starting...')
        SunCat.HookChuChu()
        InitRecipes()
        
        Terminal.SetCheckBox("Auto NPC", True)
        
        changeChannel()
        
        
        retryCount = 0
        tryAgain = True
        
        while tryAgain:
            if retryCount > 3:
                print("Failed to enter ChuChu, have you already done it 3 times? Move to next daily")
                SCLib.UpdateVar("ChuchuDone", True)
                break
            Npc.ClearSelection()
            Npc.RegisterSelection("Enter <Hungry Muto>")
            if isHardMode:
                Npc.RegisterSelection("Hard")
            else:
                Npc.RegisterSelection("Normal")
            Character.TalkToNpc(3003166)
            time.sleep(5)
            
            if Field.GetID() == startingMap:
                print("Creating a new party...")
                if not usingParty:
                    Party.LeaveParty()
                    Party.CreateParty()
                retryCount += 1
                time.sleep(2)
            elif Field.GetID() in hungryMutoMaps:
                print("Starting ChuChuPQ!")
                tryAgain = False
                DoChuChu()
            else:
                tryAgain = False
                print("Not in ChuChuPQ!")
                SunCat.UnhookChuChu()
    else:
        print("Not in ChuChu Entry Map!")
コード例 #12
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)
コード例 #13
0
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")
コード例 #14
0
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)
コード例 #15
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)
コード例 #16
0
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")
コード例 #17
0
def initChuChu():
    if Field.GetID() != ccStartingMap:
        Terminal.Rush(ccStartingMap)
    else:
        SunCat.HookChuChu()

        Terminal.SetCheckBox("Auto NPC", True)
        Terminal.SetCheckBox("Kami Vac", False)
        Terminal.SetCheckBox("Full Map Attack", False)
        Terminal.SetCheckBox("General FMA", False)
        Terminal.SetPushButton("Whitelist", False)

        changeChannel()

        SCLib.UpdateVar("CurStep", "StartingChuChu")
コード例 #18
0
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)
コード例 #19
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")
コード例 #20
0
def doingChuChu():
    if Field.GetID() != ccExitMap:
        currentRecipe = allRecipes[SunCat.GetRecipe()]
        for i in range(len(currentRecipe.ingredients)):
            print("Getting " + str(currentRecipe.amounts[i]) + "x " +
                  currentRecipe.ingredients[i].name)
            currentRecipe.ingredients[i].GetIngredient(
                currentRecipe.amounts[i])

    else:
        time.sleep(0.5)
        SunCat.KamiTP(528, 138)
        time.sleep(0.5)
        SunCat.StopTP()
        SunCat.UnhookChuChu()
        Npc.ClearSelection()
        Npc.RegisterSelection("Claim")
        Character.TalkToNpc(3003166)
        time.sleep(1)
        print("Done! Sleeping for a few seconds to check for another run...")
        SCLib.UpdateVar("CurStep", "InitChuChu")
        time.sleep(5)
コード例 #21
0
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)
コード例 #22
0
def initSS():
    if Field.GetID() != ssStartingMap:
        Terminal.Rush(ssStartingMap)
    else:
        SunCat.Teleport(0, 139)

        leaveParty()

        Terminal.SetCheckBox("Auto NPC", True)
        Terminal.SetCheckBox("Kami Vac", False)
        Terminal.SetCheckBox("Full Map Attack", False)
        Terminal.SetCheckBox("General FMA", False)
        Terminal.SetCheckBox("Auto Buff", False)

        for mob in enemyMobs:
            SunCat.FilterMob(mob)

        Npc.ClearSelection()
        Npc.RegisterSelection("Attempt")
        Character.TalkToNpc(ssNpc)
        time.sleep(3)

        SCLib.UpdateVar("CurStep", "StartingSS")
コード例 #23
0
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)
コード例 #24
0
def ResetSpawn():
    SCLib.UpdateVar("HasSpawned", False)
コード例 #25
0
def DidSpawn():
    SCLib.UpdateVar("HasSpawned", True)
コード例 #26
0
def NowLockedFunction():
    SCLib.UpdateVar("NowLockedVar", True)
コード例 #27
0
def ResetNowLockedFunction():
    SCLib.UpdateVar("NowLockedVar", False)
コード例 #28
0
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)
コード例 #29
0
def KillPersistVarThred():
    print("Restarting SCLib variables")
    SCLib.StopVars()
    time.sleep(1)
コード例 #30
0
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()