Esempio n. 1
0
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)
Esempio n. 2
0
def Rush(mapid):
    if not Field.GetID() == mapid:
        Terminal.Rush(mapid)
        time.sleep(2)
    while Terminal.IsRushing():
        time.sleep(1)
        continue
Esempio n. 3
0
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)
Esempio n. 4
0
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")
Esempio n. 5
0
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)
Esempio n. 6
0
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()
Esempio n. 7
0
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")
Esempio n. 8
0
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)
Esempio n. 9
0
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")
Esempio n. 11
0
    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:
Esempio n. 12
0
def Rush(mapid):
    if Terminal.IsRushing():
        time.sleep(1)
    elif Field.GetID() != mapid:
        time.sleep(1)
        Terminal.Rush(mapid)
Esempio n. 13
0
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!")
Esempio n. 14
0
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)
Esempio n. 15
0
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: