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
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)
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
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!")
# 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)