示例#1
0
def SortMembers():
    for member in Party.GetPartyMembers():
        #kick random
        if not Terminal.IsLocalUser(
                member.id) and member.id != Character.GetID():
            Party.KickMember(member.id)
        #kick offline
        if member.channel <= 0:
            Party.KickMember(member.id)

        partyMembers.append(member.name)

    members = []
    for member in Party.GetPartyMembers():
        if member.id != Character.GetID():
            members.append(member.id)
    members.sort()
    return members
示例#2
0
def FollowLead():
    if Party.IsInParty() and Party.GetPartyBossID() != Character.GetID():
        if FindClientID(Party.GetPartyBossID()) is not None:
            LeaderClient = Terminal.GetLocalUser(
                FindClientID(Party.GetPartyBossID()))
            if Field.GetID() == LeaderClient.mapid and GameState.GetChannel(
            ) != LeaderClient.channel:
                print("Switch to leader channel")
                Terminal.ChangeChannel(LeaderClient.channel)
示例#3
0
    def __Items(self):
        IGN = Character.GetName()
        Channel = GameState.GetChannel()
        World = GameState.GetWorldID()
        Level = Character.GetLevel()
        CharID = Character.GetID()
        PercentageExp = self.__GetPercentage()
        VJSymbol = Inventory.GetItemCount(1712001)
        ChuSymbol = Inventory.GetItemCount(1712002)
        LachSymbol = Inventory.GetItemCount(1712003)
        ArcanaSymbol = Inventory.GetItemCount(1712004)
        MorrasSymbol = Inventory.GetItemCount(1712005)
        EsferaSymbol = Inventory.GetItemCount(1712006)
        StigmaAmount = Inventory.GetItemCount(4001868)
        CoreAmount = Inventory.GetItemCount(4001842)
        TradNodes = Inventory.GetItemCount(2435719)
        UntradNodes = Inventory.GetItemCount(2436324)
        MesoCount = Character.GetMeso()
        DropletCount = Inventory.GetItemCount(4001878)
        EsferaDropletCount = Inventory.GetItemCount(4001879)
        ProtAmount = Inventory.GetItemCount(2531000) + Inventory.GetItemCount(2531001) + \
            Inventory.GetItemCount(2531004) + Inventory.GetItemCount(2531005)
        CssAmount = Inventory.GetItemCount(2049004) + Inventory.GetItemCount(2049009) + Inventory.GetItemCount(2049011) + \
            Inventory.GetItemCount(2049018) + Inventory.GetItemCount(2049022)
        PotentialScrolls = Inventory.GetItemCount(2049401)

        items = {
            'IGN': IGN,
            'World': World,
            'CharID': CharID,
            'Channel': Channel,
            'Level': Level,
            'EXP': PercentageExp,
            'VJSymbols': VJSymbol,
            'ChuChuSymbols': ChuSymbol,
            'LacheleinSymbols': LachSymbol,
            'ArcanaSymbols': ArcanaSymbol,
            'MorrasSymbol': MorrasSymbol,
            'EsferaSymbols': EsferaSymbol,
            'StigmaCores': StigmaAmount,
            'ACores': CoreAmount,
            'TradableNodes': TradNodes,
            'UntradableNodes': UntradNodes,
            'Meso': MesoCount,
            'Droplets': DropletCount,
            'EsferaDroplets': EsferaDropletCount,
            'mapID': Field.GetID(),
            'ProtectionScrolls': ProtAmount,
            'CleanSlate': CssAmount,
            'PotentialScrolls': PotentialScrolls
        }

        try:
            self.__toFile('TMRemote/temp/logs', 'ab', items)
            return True
        except:
            try:
                with open('TMRemote/temp/logs', 'wb+') as temp:
                    pass
                self.__toFile('TMRemote/temp/logs', 'ab', items)
                return True
            except:
                return False
示例#4
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!")
示例#5
0
# DO NOT TOUCH BELOW
##########################################################################
import os, sys, Character, GameState, Field, DataType, time, Npc, Packet, Terminal, Context, Inventory, Key, Quest, functools, Party
print = functools.partial(print, flush=True)

if not any("SunCat" in s for s in sys.path):
    sys.path.append(os.getcwd() + "\SunCat")
try:
    import SunCat, SCLib
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)