def __init__(self, MOUSE_OPTION, ScriptName, LootButton, TimeToStand, Walk, Loot, ForRefresh, MapPosition, BattlePosition, SQMs): self.MOUSE_OPTION = MOUSE_OPTION self.SendToClient = Hotkey(self.MOUSE_OPTION) self.ScriptName = ScriptName self.LootButton = LootButton self.TimeToStand = TimeToStand self.EnabledWalk = Walk self.EnabledLooting = Loot self.WalkForRefresh = ForRefresh self.MapPosition = MapPosition self.BattlePosition = BattlePosition self.SQMs = SQMs self.Target = [] # Remember Set For Get From Cavebot (for me) self.FollowMode = True
def AttackTarget(monster, BattlePosition, SQMs, TargetNumber, MOUSE_OPTION, HOOK_OPTION): SendToClient = Hotkey(MOUSE_OPTION) Target[0], Target[1] = ScanTarget(BattlePosition, monster, HOOK_OPTION) TargetNumber = NumberOfTargets(BattlePosition, monster, HOOK_OPTION) print("Number of " + monster + ": ", TargetNumber) if Target[0] != 0 and Target[1] != 0: attacking = IsAttacking(BattlePosition, HOOK_OPTION, monster) TargetNumber = int( NumberOfTargets(BattlePosition, monster, HOOK_OPTION)) if not attacking: print("Attacking a Target") if MOUSE_OPTION == 1: past_mouse_position = SendToClient.Position() else: past_mouse_position = [0, 0] SendToClient.LeftClick(Target[0], Target[1]) if MOUSE_OPTION == 1: SendToClient.MoveTo(past_mouse_position[0], past_mouse_position[1]) if TargetNumber is not None: return TargetNumber else: return 0 else: print("You are attacking") TargetNumber = NumberOfTargets(BattlePosition, monster, HOOK_OPTION) if TargetNumber != 0: return TargetNumber else: return 0 else: return 0
class GetLoot: def __init__(self, button, MOUSE_OPTION): self.MOUSE_OPTION = MOUSE_OPTION self.SendToClient = Hotkey(MOUSE_OPTION) self.button = button def TakeLoot(self, SQMs): if self.button == 'right': if self.MOUSE_OPTION == 1: pass_mouse_position = self.SendToClient.Position() else: pass_mouse_position = [0, 0] start_loot_time = time.time() for i, j in zip(range(0, 18, +2), range(1, 19, +2)): self.SendToClient.RightClick(SQMs[i], SQMs[j]) end_loot_time = time.time() - start_loot_time if self.MOUSE_OPTION == 1: self.SendToClient.MoveTo(pass_mouse_position[0], pass_mouse_position[1]) print("Looted In: ", end_loot_time) elif self.button == 'left': if self.MOUSE_OPTION == 1: pass_mouse_position = self.SendToClient.Position() else: pass_mouse_position = [0, 0] start_loot_time = time.time() for i, j in zip(range(0, 18, +2), range(1, 19, +2)): self.SendToClient.LeftClick(SQMs[i], SQMs[j]) end_loot_time = time.time() - start_loot_time if self.MOUSE_OPTION == 1: self.SendToClient.MoveTo(pass_mouse_position[0], pass_mouse_position[1]) print("Looted In: ", end_loot_time)
def __init__(self, StatsPositions, MOUSE_OPTION): self.AutoHur = GUI('AutoHur', 'Module: Auto Hur') self.AutoHur.DefaultWindow('AutoHur', [224, 258], [1.2, 2.29]) self.Setter = GUISetter("HurLoader") self.SendToClient = Hotkey(MOUSE_OPTION) self.ThreadManager = ThreadManager("ThreadAutoHur") def SetAutoHur(): global EnabledAutoHur if not EnabledAutoHur: EnabledAutoHur = True ButtonEnabled.configure(text='AutoHur: ON', relief=SUNKEN, bg=rgb((158, 46, 34))) print("AutoHur: ON") CheckingButtons() if not ThreadStarted: self.ThreadManager.NewThread(ScanAutoHur) else: self.ThreadManager.UnPauseThread() else: EnabledAutoHur = False CheckingButtons() print("AutoHur: OFF") ButtonEnabled.configure(text='AutoHur: OFF', relief=RAISED, bg=rgb((127, 17, 8))) self.ThreadManager.PauseThread() def ScanAutoHur(): while EnabledAutoHur: try: NeedHur = ScanHur(StatsPositions) except Exception: NeedHur = False pass if NeedHur: self.SendToClient.Press(VarHotkeyHur.get()) print("Hur Pressed ", VarHotkeyHur.get()) time.sleep(.3) time.sleep(.3) def Recapture(): print("recapture") VarCheckPrint, InitiatedCheckPrint = self.Setter.Variables.Bool( 'CheckPrint') VarCheckBuff, InitiatedCheckBuff = self.Setter.Variables.Bool( 'CheckBuff') VarHotkeyHur, InitiatedHotkeyHur = self.Setter.Variables.Str( 'HotkeyHur') CheckLowMana, InitiatedCheckLowMana = self.Setter.Variables.Bool( 'CheckLowMana') def CheckingGUI(Init, Get, Name): if Get != Init: GUIChanges.append((Name, Get)) def Destroy(): CheckingGUI(InitiatedCheckPrint, VarCheckPrint.get(), 'CheckPrint') CheckingGUI(InitiatedCheckBuff, VarCheckBuff.get(), 'CheckBuff') CheckingGUI(InitiatedHotkeyHur, VarHotkeyHur.get(), 'HotkeyHur') CheckingGUI(InitiatedCheckLowMana, CheckLowMana.get(), 'CheckLowMana') if len(GUIChanges) != 0: for EachChange in range(len(GUIChanges)): self.Setter.SetVariables.SetVar(GUIChanges[EachChange][0], GUIChanges[EachChange][1]) self.AutoHur.destroyWindow() self.AutoHur.addButton('Ok', Destroy, [73, 21], [75, 225]) global EnabledAutoHur if not EnabledAutoHur: ButtonEnabled = self.AutoHur.addButton('AutoHur: OFF', SetAutoHur, [203, 23], [11, 195]) else: ButtonEnabled = self.AutoHur.addButton('AutoHur: ON', SetAutoHur, [203, 23], [11, 195]) ButtonEnabled.configure(relief=SUNKEN, bg=rgb((158, 46, 34))) CheckPrint = self.AutoHur.addCheck(VarCheckPrint, [11, 150], InitiatedCheckPrint, "Print on Tibia's screen") CheckPrint.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) CheckBuff = self.AutoHur.addCheck(VarCheckBuff, [11, 170], InitiatedCheckBuff, "Don't Buff") CheckBuff.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) ImgHur = 'images/PlayerStats/Hur.png' ImageID = self.AutoHur.openImage(ImgHur, [64, 64]) ImgLabel = self.AutoHur.addLabel('Image To Search', [16, 14]) LabelImage = self.AutoHur.addImage(ImageID, [28, 33]) LabelHotkey = self.AutoHur.addLabel('Hotkey', [135, 48]) HotkeyHur = self.AutoHur.addOption(VarHotkeyHur, self.SendToClient.Hotkeys, [113, 72], 8) ButtonRecapture = self.AutoHur.addButton('Recapture', Recapture, [85, 24], [20, 111]) CheckBoxLowMana = self.AutoHur.addCheck(CheckLowMana, [118, 103], InitiatedCheckLowMana, 'Stop With\nLowMana') def CheckingButtons(): if EnabledAutoHur: Disable(CheckPrint) Disable(CheckBuff) Disable(LabelImage) Disable(ImgLabel) Disable(ButtonRecapture) Disable(CheckBoxLowMana) Disable(LabelHotkey) Disable(HotkeyHur) else: Enable(CheckPrint) Enable(CheckBuff) Enable(LabelImage) Enable(ImgLabel) Enable(ButtonRecapture) Enable(CheckBoxLowMana) Enable(LabelHotkey) Enable(HotkeyHur) ExecGUITrigger() CheckingButtons() self.AutoHur.Protocol(Destroy) self.AutoHur.loop()
def __init__(self, root, AmuletPositions, HealthLocation, MOUSE_OPTION, ItemsPath): self.AutoSSA = GUI('AutoSSA', 'Module: Auto SSA') self.AutoSSA.DefaultWindow('AutoAmulet', [306, 397], [1.2, 2.29]) self.Setter = GUISetter("AmuletLoader") self.SendToClient = Hotkey(MOUSE_OPTION) self.ThreadManager = ThreadManager("ThreadAutoAmulet") def SetAutoAmulet(): global EnabledAutoSSA if not EnabledAutoSSA: EnabledAutoSSA = True ButtonEnabled.configure(text='AutoSSA: ON', relief=SUNKEN, bg=rgb((158, 46, 34))) print("AutoSSA: ON") global Amulet Amulet = NameAmulet.get() Checking() CheckingButtons() time.sleep(0.03) if not ThreadStarted: self.ThreadManager.NewThread(ScanAutoAmulet) else: self.ThreadManager.UnPauseThread() else: EnabledAutoSSA = False ButtonEnabled.configure(text='AutoSSA: OFF', relief=RAISED, bg=rgb((127, 17, 8))) print("AutoSSA: OFF") Checking() CheckingButtons() self.ThreadManager.PauseThread() def ScanAutoAmulet(): global Amulet Amulet = NameAmulet.get() if CheckLifeBellowThan.get(): BellowThan = LifeBellowThan.get() from Modules.AutoHeal import EnabledAutoHeal if EnabledAutoHeal: while EnabledAutoSSA and EnabledAutoHeal: NoHasAmulet = ScanAmulet(AmuletPositions, Amulet, Amulets[Amulet]["Precision"]) from Modules.AutoHeal import Life if NoHasAmulet and Life <= BellowThan: Execute() else: from Engine.ScanStages import ScanStages while EnabledAutoSSA: Life = ScanStages('Life From AutoAmulet').ScanStages( HealthLocation, LifeColor, LifeColorFull) if Life is None: Life = 0 NoHasAmulet = ScanAmulet(AmuletPositions, Amulet, Amulets[Amulet]["Precision"]) if NoHasAmulet and Life < BellowThan: Execute() elif not CheckLifeBellowThan.get(): while EnabledAutoSSA: NoHasAmulet = ScanAmulet(AmuletPositions, Amulet, Amulets[Amulet]["Precision"]) if NoHasAmulet: Execute() def Execute(): if RadioButton.get() == 0: self.SendToClient.Press(HotkeyAmulet.get()) print("Pressed ", HotkeyAmulet.get(), " To Reallocated Your Amulet") time.sleep(1) elif RadioButton.get() == 1: try: X = int(TextEntryX.get()) Y = int(TextEntryY.get()) except: X = None Y = None print("Error To Get Type Of Position") time.sleep(1) if X and Y is not None: if X < WidthScreen and Y < HeightScreen: if MOUSE_OPTION == 1: MousePosition = self.SendToClient.Position() else: MousePosition = [0, 0] self.SendToClient.DragTo( [X, Y], [AmuletPositions[0] + 16, AmuletPositions[1] + 16]) if MOUSE_OPTION == 1: self.SendToClient.MoveTo(MousePosition[0], MousePosition[1]) print("Amulet Reallocated On: X =", AmuletPositions[0] + 16, "Y =", AmuletPositions[1] + 16, "From: X =", X, "Y =", Y) time.sleep(0.3) else: print("Lower Resolution Than Entered") time.sleep(1) def Recapture(): global WaitingForClick, Amulet WaitingForClick = True Amulet = NameAmulet.get() AutoSSAWindow = pygetwindow.getWindowsWithTitle( "Module: Auto SSA")[0] TibiaAuto = pygetwindow.getWindowsWithTitle("TibiaAuto V12")[0] AutoSSAWindowX = self.AutoSSA.PositionOfWindow('X') AutoSSAWindowY = self.AutoSSA.PositionOfWindow('Y') time.sleep(0.1) TibiaAuto.minimize() AutoSSAWindow.minimize() Invisible = GUI('InvisibleWindow', 'InvisibleWindow') Invisible.InvisibleWindow('Recapture') while WaitingForClick: X, Y = GetPosition() if keyboard.is_pressed("c"): sX, sY = GetPosition() time.sleep(0.03) from Core.HookWindow import SaveImage SaveImage(ItemsPath + 'Amulets/' + Amulet + '.png', Region=(sX - 6, sY - 28, sX + 6, sY - 16)) WaitingForClick = False Invisible.destroyWindow() TibiaAuto.maximize() time.sleep(0.04) AutoSSAWindow.maximize() AutoSSAWindow.moveTo(AutoSSAWindowX, AutoSSAWindowY) break Invisible.UpdateWindow(X, Y) def AddNewAmulet(): print('Option In Development...') def CheckClick(): Checking() def ReturnGetPosition(): global WaitingForClick WaitingForClick = True AutoSSAWindow = pygetwindow.getWindowsWithTitle( "Module: Auto SSA")[0] TibiaAuto = pygetwindow.getWindowsWithTitle("TibiaAuto V12")[0] AutoSSAWindowX = self.AutoSSA.PositionOfWindow('X') AutoSSAWindowY = self.AutoSSA.PositionOfWindow('Y') time.sleep(0.1) TibiaAuto.minimize() AutoSSAWindow.minimize() Invisible = GUI('InvisibleWindow', 'InvisibleWindow') Invisible.InvisibleWindow('GetPosition') while WaitingForClick: X, Y = GetPosition() if keyboard.is_pressed("c"): X, Y = GetPosition() WaitingForClick = False print(f"Your Click Is Located In: [X: {X}, Y: {Y}]") TextEntryX.set(X) TextEntryY.set(Y) Invisible.destroyWindow() TibiaAuto.maximize() time.sleep(0.08) AutoSSAWindow.maximize() AutoSSAWindow.moveTo(AutoSSAWindowX, AutoSSAWindowY) break Invisible.UpdateWindow(X, Y) def ValidateEntryX(*args): s = TextEntryX.get() if len(s) > MaxLen: if not s[-1].isdigit(): TextEntryX.set(s[:-1]) else: TextEntryX.set(s[:MaxLen]) def ValidateEntryY(*args): s = TextEntryY.get() if len(s) > MaxLen: if not s[-1].isdigit(): TextEntryY.set(s[:-1]) else: TextEntryY.set(s[:MaxLen]) WidthScreen, HeightScreen = pyautogui.size() VarCheckPrint, InitiatedCheckPrint = self.Setter.Variables.Bool( 'CheckPrint') VarCheckBuff, InitiatedCheckBuff = self.Setter.Variables.Bool( 'CheckBuff') RadioButton, InitiatedRadioButton = self.Setter.Variables.Int( 'RadioButton') NameAmulet, InitiatedNameAmulet = self.Setter.Variables.Str( 'NameAmulet') HotkeyAmulet, InitiatedHotkeyAmulet = self.Setter.Variables.Str( 'HotkeyAmulet') TextEntryX, InitiatedTextEntryX = self.Setter.Variables.Str( 'TextEntryX') TextEntryY, InitiatedTextEntryY = self.Setter.Variables.Str( 'TextEntryY') CheckLifeBellowThan, InitiatedLifeBellowThan = self.Setter.Variables.Bool( 'LifeBellowThan') LifeBellowThan, InitiatedBellowThan = self.Setter.Variables.Int( 'BellowThan') def CheckingGUI(Init, Get, Name): if Get != Init: GUIChanges.append((Name, Get)) def Destroy(): CheckingGUI(InitiatedCheckPrint, VarCheckPrint.get(), 'CheckPrint') CheckingGUI(InitiatedCheckBuff, VarCheckBuff.get(), 'CheckBuff') CheckingGUI(InitiatedRadioButton, RadioButton.get(), 'RadioButton') CheckingGUI(InitiatedNameAmulet, NameAmulet.get(), 'NameAmulet') CheckingGUI(InitiatedHotkeyAmulet, HotkeyAmulet.get(), 'HotkeyAmulet') CheckingGUI(InitiatedTextEntryX, TextEntryX.get(), 'TextEntryX') CheckingGUI(InitiatedTextEntryY, TextEntryY.get(), 'TextEntryY') CheckingGUI(InitiatedLifeBellowThan, CheckLifeBellowThan.get(), 'LifeBellowThan') CheckingGUI(InitiatedBellowThan, LifeBellowThan.get(), 'BellowThan') if len(GUIChanges) != 0: for EachChange in range(len(GUIChanges)): self.Setter.SetVariables.SetVar(GUIChanges[EachChange][0], GUIChanges[EachChange][1]) self.AutoSSA.destroyWindow() self.AutoSSA.addButton('Ok', Destroy, [73, 21], [115, 365]) global EnabledAutoSSA if not EnabledAutoSSA: ButtonEnabled = self.AutoSSA.addButton('AutoSSA: OFF', SetAutoAmulet, [287, 23], [11, 336]) else: ButtonEnabled = self.AutoSSA.addButton('AutoSSA: ON', SetAutoAmulet, [287, 23], [11, 336]) ButtonEnabled.configure(relief=SUNKEN, bg=rgb((158, 46, 34))) CheckPrint = self.AutoSSA.addCheck(VarCheckPrint, [11, 285], InitiatedCheckPrint, "Print on Tibia's screen") CheckPrint.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) CheckBuff = self.AutoSSA.addCheck(VarCheckBuff, [11, 305], InitiatedCheckBuff, "Don't Buff") CheckBuff.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) BackImage = 'images/Fundo.png' Back = self.AutoSSA.openImage(BackImage, [150, 45]) AmuletImages = [] AmuletName = [] for NameOfCurrentAmulet in Amulets: CurrentAmuletName = ItemsPath + 'Amulets/' + NameOfCurrentAmulet + '.png' CurrentAmuletImage = self.AutoSSA.openImage( CurrentAmuletName, [64, 64]) AmuletImages.append(CurrentAmuletImage) AmuletName.append(NameOfCurrentAmulet) ImgLabel = self.AutoSSA.addLabel('Image To Search', [16, 22]) def UpdateImg(): for XAmulet in Amulets: if NameAmulet.get() == XAmulet: self.AutoSSA.addImage( AmuletImages[AmuletName.index(XAmulet)], [28, 43]) global Amulet Amulet = NameAmulet.get() UpdateImg() WidthScreen, HeightScreen = self.SendToClient.MainWindowSize() AmuletLabel = self.AutoSSA.addLabel('Select Name Of Amulet', [135, 55]) OptionNameAmulet = self.AutoSSA.addOption(NameAmulet, Amulets, [120, 80], width=21) ButtonAddNewAmulet = self.AutoSSA.addButton('Add New Amulet', AddNewAmulet, [167, 24], [120, 115]) ButtonRecapture = self.AutoSSA.addButton('Recapture', Recapture, [88, 24], [22, 115]) DescLabel = self.AutoSSA.addLabel('', [150, 140]) RButton1 = self.AutoSSA.addRadio('Hotkey', RadioButton, 0, [22, 155], CheckClick) RButton2 = self.AutoSSA.addRadio('Position', RadioButton, 1, [22, 175], CheckClick) CheckBoxLifeBellowThan = self.AutoSSA.addCheck( CheckLifeBellowThan, [60, 210], InitiatedLifeBellowThan, 'Use Only If Life Is Bellow Than') LabelLifeBellowThan = self.AutoSSA.addLabel('Life <= ', [90, 245]) PercentageLifeBellowThan = self.AutoSSA.addOption( LifeBellowThan, Percentage, [140, 240]) def Checking(): global FoundedImg, Amulet if RadioButton.get() == 0: DescLabel.configure(text='Hotkey To Press') self.AutoSSA.addImage(Back, [130, 165]) FoundedImg = False HotkeyOption = self.AutoSSA.addOption( HotkeyAmulet, self.SendToClient.Hotkeys, [145, 170], 10) if EnabledAutoSSA: HotkeyOption.configure(state='disabled') else: HotkeyOption.configure(state='normal') elif RadioButton.get() == 1: DescLabel.configure(text='Position To Search') self.AutoSSA.addImage(Back, [120, 165]) FoundedImg = False ButtonGetPosition = self.AutoSSA.addButton( 'GetPosition', ReturnGetPosition, [80, 29], [195, 173]) LabelX = self.AutoSSA.addLabel('X:', [135, 165]) EntryX = self.AutoSSA.addEntry([150, 165], TextEntryX, width=4) TextEntryX.trace("w", ValidateEntryX) LabelY = self.AutoSSA.addLabel('Y:', [135, 185]) EntryY = self.AutoSSA.addEntry([150, 185], TextEntryY, width=4) TextEntryY.trace("w", ValidateEntryY) if EnabledAutoSSA: ButtonGetPosition.configure(state='disabled') LabelX.configure(state='disabled') EntryX.configure(state='disabled') LabelY.configure(state='disabled') EntryY.configure(state='disabled') else: ButtonGetPosition.configure(state='normal') LabelX.configure(state='normal') EntryX.configure(state='normal') LabelY.configure(state='normal') EntryY.configure(state='normal') if not CheckLifeBellowThan.get(): LabelLifeBellowThan.configure(state='disabled') PercentageLifeBellowThan.configure(state='disabled') elif CheckLifeBellowThan.get(): LabelLifeBellowThan.configure(state='normal') PercentageLifeBellowThan.configure(state='normal') def CheckingButtons(): if EnabledAutoSSA: Disable(CheckPrint) Disable(CheckBuff) Disable(DescLabel) Disable(ImgLabel) Disable(ButtonRecapture) Disable(ButtonAddNewAmulet) Disable(RButton1) Disable(RButton2) Disable(AmuletLabel) Disable(OptionNameAmulet) Disable(CheckBoxLifeBellowThan) Disable(LabelLifeBellowThan) Disable(PercentageLifeBellowThan) else: Enable(CheckPrint) Enable(CheckBuff) Enable(DescLabel) Enable(ImgLabel) Enable(ButtonRecapture) Enable(ButtonAddNewAmulet) Enable(RButton1) Enable(RButton2) Enable(AmuletLabel) Enable(OptionNameAmulet) Enable(CheckBoxLifeBellowThan) if not CheckLifeBellowThan.get(): Disable(LabelLifeBellowThan) Disable(PercentageLifeBellowThan) elif CheckLifeBellowThan.get(): Enable(LabelLifeBellowThan) Enable(PercentageLifeBellowThan) ExecGUITrigger() def ConstantVerify(): if not EnabledAutoSSA: if not CheckLifeBellowThan.get(): Disable(LabelLifeBellowThan) Disable(PercentageLifeBellowThan) elif CheckLifeBellowThan.get(): Enable(LabelLifeBellowThan) Enable(PercentageLifeBellowThan) if NameAmulet.get() != Amulet: UpdateImg() ExecGUITrigger() self.AutoSSA.After(200, ConstantVerify) Checking() CheckingButtons() ConstantVerify() self.AutoSSA.Protocol(Destroy) self.AutoSSA.loop()
def GetPlayerPosition(): LeftGameWindow = LocateImage("images/PlayerSettings/LeftOption1.png", Precision=0.75) if LeftGameWindow[0] == 0 and LeftGameWindow[1] == 0: LeftGameWindow = LocateImage("images/PlayerSettings/LeftOption2.png", Precision=0.75) if LeftGameWindow[0] == 0 and LeftGameWindow[1] == 0: LeftGameWindow = LocateImage("images/PlayerSettings/LeftOption3.png", Precision=0.75) try: GameWindow[0] = int(LeftGameWindow[0]) GameWindow[1] = int(LeftGameWindow[1]) except Exception as errno: print("?Error On ", errno) RightGameWindow = LocateImage("images/PlayerSettings/RightOption1.png", Precision=0.75) if RightGameWindow[0] == 0 and RightGameWindow[1] == 0: RightGameWindow = LocateImage("images/PlayerSettings/RightOption2.png", Precision=0.75) if RightGameWindow[0] == 0 and RightGameWindow[1] == 0: RightGameWindow = LocateImage("images/PlayerSettings/RightOption3.png", Precision=0.75) if RightGameWindow[0] == 0 and RightGameWindow[1] == 0: RightGameWindow = LocateImage("images/PlayerSettings/RightOption4.png", Precision=0.75) try: GameWindow[2] = int(RightGameWindow[0]) except Exception as errno: print("?Error On ", errno) ButtomGameWindow = LocateImage("images/PlayerSettings/EndLocation.png", Precision=0.7) if ButtomGameWindow[0] == 0 and ButtomGameWindow[1] == 0: print("BUTTON GAME WINDOWS IS NONE") else: GameWindow[3] = int(ButtomGameWindow[1]) if GameWindow[0] != 0 and GameWindow[2] != 0: Player[0] = int(((GameWindow[2] - GameWindow[0]) / 2) + GameWindow[0]) else: try: raise Exception('ex') except Exception as Ex: print('X Game Window Error... Please Press "c" With Your Mouse On Player Position') import keyboard from Conf.Hotkeys import Hotkey MoveMouse = Hotkey(1) Waiting = True while Waiting: if keyboard.is_pressed("c"): x, y = MoveMouse.Position() Player[0] = x Player[1] = y if GameWindow[0] == 0: GameWindow[0] = 1 if GameWindow[1] == 0: GameWindow[1] = 1 if GameWindow[2] == 0: GameWindow[2] = 1 if GameWindow[3] == 0: GameWindow[3] = 1 return x, y, GameWindow[0], GameWindow[1], GameWindow[2], GameWindow[3] if GameWindow[1] != 0 and GameWindow[3] != 0: Player[1] = int(((GameWindow[3] - GameWindow[1]) / 2) + GameWindow[1]) else: try: raise Exception('Y Game Window Error') except Exception as Ex: print(Ex) pass if Player[1] != 0: return Player[0], Player[1], GameWindow[0], GameWindow[1], GameWindow[2], GameWindow[3] else: print("Error To Get Player Position !!!") return 0, 0, 0, 0, 0, 0
def __init__(self, button, MOUSE_OPTION): self.MOUSE_OPTION = MOUSE_OPTION self.SendToClient = Hotkey(MOUSE_OPTION) self.button = button
def __init__(self, root, HealthLocation, MOUSE_OPTION, HOOK_OPTION): self.AutoHeal = GUI('AutoHeal', 'Module: Auto Heal') self.AutoHeal.DefaultWindow('AutoHeal2', [306, 372], [1.2, 2.29]) self.SendToClient = Hotkey(MOUSE_OPTION) self.Scan = ScanStages('Life', HOOK_OPTION) def SetAutoHeal(): global EnabledAutoHeal if not EnabledAutoHeal: EnabledAutoHeal = True ButtonEnabled.configure(text='AutoHealing: ON', relief=SUNKEN, bg=rgb((158, 46, 34))) print("AutoHealing: ON") CheckingButtons() try: ThreadCaveBot = threading.Thread(target=scanning_auto_life) ThreadCaveBot.start() except: print("Error: Unable To Start ThreadCaveBot!") else: EnabledAutoHeal = False print("AutoHealing: OFF") CheckingButtons() ButtonEnabled.configure(text='AutoHealing: OFF', relief=RAISED, bg=rgb((114, 0, 0))) def scanning_auto_life(): while EnabledAutoHeal: global life try: life = self.Scan.ScanStages(HealthLocation, lifeColor, lifeColorFull) except Exception: life = 100 pass if life is None: life = 0 if VarCheckStageThree.get(): stage_three = VarPercentageStageThree.get() if stage_three > life or stage_three == life: self.SendToClient.Press(VarHotkeyStageThree.get()) print("Pressed ", VarHotkeyStageThree.get()) time.sleep(.15) elif VarCheckStageTwo.get(): stage_two = VarPercentageStageTwo.get() if stage_two > life or stage_two == life: self.SendToClient.Press(VarHotkeyStageTwo.get()) print("Pressed ", VarHotkeyStageTwo.get()) time.sleep(.15) elif VarCheckStageOne.get(): stage_one = VarPercentageStageOne.get() if stage_one > life or stage_one == life: self.SendToClient.Press(VarHotkeyStageOne.get()) print("Pressed ", VarHotkeyStageOne.get()) time.sleep(.15) elif VarCheckStageOne.get(): stage_one = VarPercentageStageOne.get() if stage_one > life or stage_one == life: self.SendToClient.Press(VarHotkeyStageOne.get()) print("Pressed ", VarHotkeyStageOne.get()) time.sleep(.15) elif VarCheckStageTwo.get(): stage_two = VarPercentageStageTwo.get() if stage_two > life or stage_two == life: self.SendToClient.Press(VarHotkeyStageTwo.get()) print("Pressed ", VarHotkeyStageTwo.get()) time.sleep(.15) elif VarCheckStageThree.get(): stage_three = VarPercentageStageThree.get() if stage_three > life or stage_three == life: self.SendToClient.Press(VarHotkeyStageThree.get()) print("Pressed ", VarHotkeyStageThree.get()) time.sleep(.15) elif VarCheckStageOne.get(): stage_one = VarPercentageStageOne.get() if stage_one > life or stage_one == life: self.SendToClient.Press(VarHotkeyStageOne.get()) print("Pressed ", VarHotkeyStageOne.get()) time.sleep(.15) elif VarCheckStageOne.get(): stage_one = VarPercentageStageOne.get() if stage_one > life or stage_one == life: self.SendToClient.Press(VarHotkeyStageOne.get()) print("Pressed ", VarHotkeyStageOne.get()) time.sleep(.15) elif VarCheckStageOne.get(): stage_one = VarPercentageStageOne.get() if stage_one > life or stage_one == life: self.SendToClient.Press(VarHotkeyStageOne.get()) print("Pressed ", VarHotkeyStageOne.get()) time.sleep(.15) elif VarCheckStageTwo.get(): stage_two = VarPercentageStageTwo.get() if stage_two > life or stage_two == life: self.SendToClient.Press(VarHotkeyStageTwo.get()) print("Pressed ", VarHotkeyStageTwo.get()) time.sleep(.15) elif VarCheckStageThree.get(): stage_three = VarPercentageStageThree.get() if stage_three > life or stage_three == life: self.SendToClient.Press(VarHotkeyStageThree.get()) print("Pressed ", VarHotkeyStageThree.get()) time.sleep(.15) elif VarCheckStageThree.get(): stage_three = VarPercentageStageThree.get() if stage_three > life or stage_three == life: self.SendToClient.Press(VarHotkeyStageThree.get()) print("Pressed ", VarHotkeyStageThree.get()) time.sleep(.15) else: print("Module Not Configured") time.sleep(1) VarCheckPrint = tk.BooleanVar() VarCheckBuff = tk.BooleanVar() VarCheckStageOne = tk.BooleanVar() VarCheckStageTwo = tk.BooleanVar() VarCheckStageThree = tk.BooleanVar() VarCheckCureStats = tk.BooleanVar() VarCheckParalyze = tk.BooleanVar() VarCheckPoison = tk.BooleanVar() VarCheckFire = tk.BooleanVar() VarCheckElectrify = tk.BooleanVar() VarCheckMort = tk.BooleanVar() VarCheckBlood = tk.BooleanVar() VarPercentageStageOne = tk.IntVar() VarPercentageStageOne.set(90) VarHotkeyStageOne = tk.StringVar() VarHotkeyStageOne.set("F1") VarPercentageStageTwo = tk.IntVar() VarPercentageStageTwo.set(75) VarHotkeyStageTwo = tk.StringVar() VarHotkeyStageTwo.set("F2") VarPercentageStageThree = tk.IntVar() VarPercentageStageThree.set(35) VarHotkeyStageThree = tk.StringVar() VarHotkeyStageThree.set("F12") ParalyzeImage = ImageTk.PhotoImage(Image.open('images/Stats/paralyze.webp')) PoisonImage = ImageTk.PhotoImage(Image.open('images/Stats/poison.webp')) FireImage = ImageTk.PhotoImage(Image.open('images/Stats/fire.webp')) ElectrifyImage = ImageTk.PhotoImage(Image.open('images/Stats/electrify.webp')) MortImage = ImageTk.PhotoImage(Image.open('images/Stats/mort.webp')) BloodImage = ImageTk.PhotoImage(Image.open('images/Stats/blood.webp')) self.AutoHeal.addButton('Ok', self.AutoHeal.destroyWindow, [73, 21], [115, 340]) ''' button enable healing ''' global EnabledAutoHeal if not EnabledAutoHeal: ButtonEnabled = self.AutoHeal.addButton('AutoHealing: OFF', SetAutoHeal, [287, 23], [11, 311]) else: ButtonEnabled = self.AutoHeal.addButton('AutoHealing: ON', SetAutoHeal, [287, 23], [11, 311]) ButtonEnabled.configure(relief=SUNKEN, bg=rgb((158, 46, 34))) CheckPrint = self.AutoHeal.addCheck(VarCheckPrint, [11, 260], 0, "Print on Tibia's screen") CheckPrint.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) CheckBuff = self.AutoHeal.addCheck(VarCheckBuff, [11, 280], 0, "Don't Buff") CheckBuff.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) LabelPercentage = self.AutoHeal.addLabel('% Percentage', [145, 24]) LabelHotkey = self.AutoHeal.addLabel('HotKey', [230, 24]) StageOne = self.AutoHeal.addCheck(VarCheckStageOne, [17, 55], 0, "Enable Stage One") StageTwo = self.AutoHeal.addCheck(VarCheckStageTwo, [17, 105], 0, "Enable Stage Two") StageThree = self.AutoHeal.addCheck(VarCheckStageThree, [17, 155], 0, "Enable Stage Three") CheckStats = self.AutoHeal.addCheck(VarCheckCureStats, [95, 192], 0, "Enable Cure Stats") Paralyze = self.AutoHeal.addCheck(VarCheckParalyze, [40, 226], 0, '', ParalyzeImage) Poison = self.AutoHeal.addCheck(VarCheckPoison, [80, 226], 0, '', PoisonImage) Fire = self.AutoHeal.addCheck(VarCheckFire, [120, 226], 0, '', FireImage) Electrify = self.AutoHeal.addCheck(VarCheckElectrify, [160, 226], 0, '', ElectrifyImage) Mort = self.AutoHeal.addCheck(VarCheckMort, [200, 226], 0, '', MortImage) Blood = self.AutoHeal.addCheck(VarCheckBlood, [240, 226], 0, '', BloodImage) PercentageStageOne = self.AutoHeal.addOption(VarPercentageStageOne, percentage, [148, 54]) HotkeyStageOne = self.AutoHeal.addOption(VarHotkeyStageOne, self.SendToClient.Hotkeys, [223, 54]) PercentageStageTwo = self.AutoHeal.addOption(VarPercentageStageTwo, percentage, [148, 104]) HotkeyStageTwo = self.AutoHeal.addOption(VarHotkeyStageTwo, self.SendToClient.Hotkeys, [223, 104]) PercentageStageThree = self.AutoHeal.addOption(VarPercentageStageThree, percentage, [148, 154]) HotkeyStageThree = self.AutoHeal.addOption(VarHotkeyStageThree, self.SendToClient.Hotkeys, [223, 154]) def CheckingButtons(): if EnabledAutoHeal: CheckStats.configure(state='disabled') StageThree.configure(state='disabled') StageTwo.configure(state='disabled') StageOne.configure(state='disabled') LabelHotkey.configure(state='disabled') LabelPercentage.configure(state='disabled') PercentageStageOne.configure(state='disabled') HotkeyStageOne.configure(state='disabled') PercentageStageTwo.configure(state='disabled') HotkeyStageTwo.configure(state='disabled') PercentageStageThree.configure(state='disabled') HotkeyStageThree.configure(state='disabled') Paralyze.configure(state='disabled') Poison.configure(state='disabled') Fire.configure(state='disabled') Electrify.configure(state='disabled') Mort.configure(state='disabled') Blood.configure(state='disabled') CheckPrint.configure(state='disabled') CheckBuff.configure(state='disabled') else: CheckStats.configure(state='normal') StageThree.configure(state='normal') StageTwo.configure(state='normal') StageOne.configure(state='normal') LabelHotkey.configure(state='normal') LabelPercentage.configure(state='normal') PercentageStageOne.configure(state='normal') HotkeyStageOne.configure(state='normal') PercentageStageTwo.configure(state='normal') HotkeyStageTwo.configure(state='normal') PercentageStageThree.configure(state='normal') HotkeyStageThree.configure(state='normal') CheckPrint.configure(state='normal') CheckBuff.configure(state='normal') if not VarCheckCureStats.get(): Paralyze.configure(state='disabled') Poison.configure(state='disabled') Fire.configure(state='disabled') Electrify.configure(state='disabled') Mort.configure(state='disabled') Blood.configure(state='disabled') elif VarCheckCureStats.get(): Paralyze.configure(state='normal') Poison.configure(state='normal') Fire.configure(state='normal') Electrify.configure(state='normal') Mort.configure(state='normal') Blood.configure(state='normal') def ConstantVerify(): if not EnabledAutoHeal: if not VarCheckCureStats.get(): Paralyze.configure(state='disabled') Poison.configure(state='disabled') Fire.configure(state='disabled') Electrify.configure(state='disabled') Mort.configure(state='disabled') Blood.configure(state='disabled') elif VarCheckCureStats.get(): Paralyze.configure(state='normal') Poison.configure(state='normal') Fire.configure(state='normal') Electrify.configure(state='normal') Mort.configure(state='normal') Blood.configure(state='normal') self.AutoHeal.After(1, ConstantVerify) CheckingButtons() ConstantVerify() self.AutoHeal.loop()
class CaveBotController: def __init__(self, MOUSE_OPTION, ScriptName, LootButton, TimeToStand, Walk, Loot, ForRefresh, MapPosition, BattlePosition, SQMs): self.MOUSE_OPTION = MOUSE_OPTION self.SendToClient = Hotkey(self.MOUSE_OPTION) self.ScriptName = ScriptName self.LootButton = LootButton self.TimeToStand = TimeToStand self.EnabledWalk = Walk self.EnabledLooting = Loot self.WalkForRefresh = ForRefresh self.MapPosition = MapPosition self.BattlePosition = BattlePosition self.SQMs = SQMs self.Target = [] # Remember Set For Get From Cavebot (for me) self.FollowMode = True ''' StartCaveBot Take The Data From Module CaveBot And Search For Mark With Status TRUE, When He Finds, He Starts The Engine Of CaveBot. ''' def StartCaveBot(self, data, MonstersToAttack): while IsEnable(): for i in range(len(data)): if not IsEnable(): return else: if data[i]['status']: self.HandleCaveBot(data, i, MonstersToAttack) ''' The Handler ''' def HandleCaveBot(self, data, i, Monsters): global TargetNumber MarkLocation = [0, 0] sleep(self.TimeToStand) if not IsEnable(): return ''' Disconsider This Block If You Don't Mark The Walk Option... ''' # region Walk if self.EnabledWalk: while MarkLocation[0] == 0 and MarkLocation[1] == 0: MarkLocation[0], MarkLocation[1] = LocateCenterImage('images/MapSettings/' + data[i]["mark"] + '.png', Region=( self.MapPosition[0], self.MapPosition[1], self.MapPosition[2], self.MapPosition[3]), Precision=0.8) if MarkLocation[0] == 0 and MarkLocation[1] == 0: print("Mark: { ", data[i]["mark"], " } Not Located, Try Again") if self.WalkForRefresh: sleep(.3) self.SendToClient.Press('up_arrow') sleep(.1) self.SendToClient.Press('left_arrow') sleep(.7) self.SendToClient.Press('down_arrow') sleep(.1) self.SendToClient.Press('right_arrow') sleep(.1) else: print("successfully Located The Mark: { ", data[i]["mark"], " } Clicking On Your Position") MarkLocation[0] = self.MapPosition[0] + MarkLocation[0] MarkLocation[1] = self.MapPosition[1] + MarkLocation[1] # Clicking In Mark Position if self.MOUSE_OPTION == 1: PastPosition = self.SendToClient.Position() else: PastPosition = [0, 0] self.SendToClient.LeftClick(MarkLocation[0], MarkLocation[1]) if self.MOUSE_OPTION == 1: self.SendToClient.MoveTo(PastPosition[0], PastPosition[1]) # endregion ''' The Attack, Is Every Time Enabled. ''' # region Attack for Monster in Monsters: FirstMonstersNumber = 0 SecondMonstersNumber = 0 Number = NumberOfTargets(self.BattlePosition, Monster) # NumberOfMonster.append(Number) while Number > 0: if not IsEnable(): return self.Target = ScanTarget(self.BattlePosition, Monster) if self.Target[0] != 0 and self.Target[1] != 0: # Verify If You Are Already Attacking ! if not IsAttacking(self.BattlePosition): print("Attacking The Target") if self.MOUSE_OPTION == 1: PastPosition = self.SendToClient.Position() else: PastPosition = [0, 0] self.SendToClient.LeftClick(self.Target[0], self.Target[1]) if self.MOUSE_OPTION == 1: self.SendToClient.MoveTo(PastPosition[0], PastPosition[1]) FirstMonstersNumber = NumberOfTargets(self.BattlePosition, Monster) else: print("You are attacking") FirstMonstersNumber = NumberOfTargets(self.BattlePosition, Monster) # Control Follow Mode In Attack (Follow Or Idle) if self.FollowMode: IsNeedFollow = NeedFollow() if IsNeedFollow: print("Clicking In Follow") if self.MOUSE_OPTION == 1: PastPosition = self.SendToClient.Position() else: PastPosition = [0, 0] FollowPosition = LocateCenterImage('images/TibiaSettings/NotFollow.png', Precision=0.7) self.SendToClient.LeftClick(FollowPosition[0], FollowPosition[1]) if self.MOUSE_OPTION == 1: self.SendToClient.MoveTo(PastPosition[0], PastPosition[1]) sleep(.2) self.Target = ScanTarget(self.BattlePosition, Monster) if self.Target[0] != 0 and self.Target[1] != 0: # Verify If You Are Already Attacking ! if IsAttacking(self.BattlePosition): # For Debugging # print("Attacking The Target") if self.MOUSE_OPTION == 1: PastPosition = self.SendToClient.Position() else: PastPosition = [0, 0] self.SendToClient.LeftClick(self.Target[0], self.Target[1]) if self.MOUSE_OPTION == 1: self.SendToClient.MoveTo(PastPosition[0], PastPosition[1]) SecondMonstersNumber = NumberOfTargets(self.BattlePosition, Monster) else: # For Debugging # print("You are attacking") SecondMonstersNumber = NumberOfTargets(self.BattlePosition, Monster) if SecondMonstersNumber < FirstMonstersNumber: self.TakeLoot() self.Target = [] sleep(0.2) Number = NumberOfTargets(self.BattlePosition, Monster) if Number == 0: break if self.EnabledWalk: if CheckWaypoint(data[i]["mark"], self.MapPosition): data[i]['status'] = False if i + 1 == len(data): data[i - i]['status'] = True with open('Scripts/' + self.ScriptName + '.json', 'w') as wJson: json.dump(data, wJson, indent=4) else: data[i + 1]['status'] = True with open('Scripts/' + self.ScriptName + '.json', 'w') as wJson: json.dump(data, wJson, indent=4) else: self.HandleCaveBot(data, i, Monsters) # endregion def TakeLoot(self): if self.MOUSE_OPTION == 1: PastPosition = self.SendToClient.Position() else: PastPosition = [0, 0] # For Debugging # StartLootTime = time() for i, j in zip(range(0, 18, + 2), range(1, 19, + 2)): if self.LootButton == 'right': self.SendToClient.RightClick(self.SQMs[i], self.SQMs[j]) elif self.LootButton == 'left': self.SendToClient.LeftClick(self.SQMs[i], self.SQMs[j]) # For Debugging # EndLootTime = time() - StartLootTime if self.MOUSE_OPTION == 1: self.SendToClient.MoveTo(PastPosition[0], PastPosition[1])
def __init__(self, root, RingPositions, HealthLocation, MOUSE_OPTION): self.AutoRing = GUI('AutoRing', 'Module: Auto Ring') self.AutoRing.DefaultWindow('AutoRing', [306, 397], [1.2, 2.29]) self.Setter = GUISetter("RingLoader") self.SendToClient = Hotkey(MOUSE_OPTION) self.ThreadManager = ThreadManager("ThreadAutoRing") def SetAutoRing(): global EnabledAutoRing if not EnabledAutoRing: EnabledAutoRing = True ButtonEnabled.configure(text='AutoRing: ON', relief=SUNKEN, bg=rgb((158, 46, 34))) print("AutoRing: ON") global Ring Ring = NameRing.get() Checking() CheckingButtons() time.sleep(0.03) if not ThreadStarted: self.ThreadManager.NewThread(ScanAutoRing) else: self.ThreadManager.UnPauseThread() else: EnabledAutoRing = False print('AutoRing: OFF') ButtonEnabled.configure(text='AutoRing: OFF', relief=RAISED, bg=rgb((127, 17, 8))) Checking() CheckingButtons() self.ThreadManager.PauseThread() def ScanAutoRing(): if CheckLifeBellowThan.get(): BellowThan = LifeBellowThan.get() from Modules.AutoHeal import EnabledAutoHeal if EnabledAutoHeal: while EnabledAutoRing and EnabledAutoHeal: try: NoHasRing = ScanRing(RingPositions) except Exception: NoHasRing = False pass from Modules.AutoHeal import Life if NoHasRing and Life <= BellowThan: Execute() else: from Engine.ScanStages import ScanStages while EnabledAutoRing: try: Life = ScanStages('Life From AutoRing').ScanStages( HealthLocation, LifeColor, LifeColorFull) except Exception: Life = 100 pass if Life is None: Life = 0 try: NoHasRing = ScanRing(RingPositions) except Exception: NoHasRing = False pass if NoHasRing and Life < BellowThan: Execute() else: while EnabledAutoRing: try: NoHasRing = ScanRing(RingPositions) except Exception: NoHasRing = False pass if NoHasRing: Execute() def Execute(): if RadioButton.get() == 0: self.SendToClient.Press(HotkeyRing.get()) print("Pressed ", HotkeyRing.get(), " To Reallocated Your Ring") time.sleep(1) elif RadioButton.get() == 1: try: X = int(TextEntryX.get()) Y = int(TextEntryY.get()) except: X = None Y = None print("Error To Get Type Of Position") time.sleep(1) if X and Y is not None: if X < WidthScreen and Y < HeightScreen: MousePosition = pyautogui.position() pyautogui.moveTo(X, Y) pyautogui.mouseDown(button='left') pyautogui.moveTo(RingPositions[0] + 16, RingPositions[1] + 16) pyautogui.mouseUp(button='left') pyautogui.moveTo(MousePosition) print("Ring Reallocated On: X =", RingPositions[0] + 16, "Y =", RingPositions[1] + 16, "From: X =", X, "Y =", Y) time.sleep(0.3) else: print("Lower Resolution Than Entered") time.sleep(1) def Recapture(): global WaitingForClick, Ring WaitingForClick = True Ring = NameRing.get() AutoRingWindow = pygetwindow.getWindowsWithTitle( "Module: Auto Ring")[0] TibiaAuto = pygetwindow.getWindowsWithTitle("TibiaAuto V12")[0] RootWindowX = root.winfo_x() RootWindowY = root.winfo_y() AutoRingWindowX = self.AutoRing.PositionOfWindow('X') AutoRingWindowY = self.AutoRing.PositionOfWindow('Y') time.sleep(0.1) TibiaAuto.minimize() AutoRingWindow.minimize() Invisible = GUI('InvisibleWindow', 'InvisibleWindow') Invisible.InvisibleWindow('Recapture') while WaitingForClick: X, Y = GetPosition() if keyboard.is_pressed("c"): sX, sY = GetPosition() time.sleep(0.03) pyautogui.screenshot('images/Rings/' + Ring + '.png', region=(sX - 5, sY - 5, 12, 12)) WaitingForClick = False Invisible.destroyWindow() TibiaAuto.maximize() TibiaAuto.moveTo(RootWindowX, RootWindowY) time.sleep(0.04) AutoRingWindow.maximize() AutoRingWindow.moveTo(AutoRingWindowX, AutoRingWindowY) break Invisible.UpdateWindow(X, Y) def AddNewAmulet(): print('....') def CheckClick(): Checking() def ReturnGetPosition(): global WaitingForClick WaitingForClick = True AutoRingWindow = pygetwindow.getWindowsWithTitle( "Module: Auto Ring")[0] TibiaAuto = pygetwindow.getWindowsWithTitle("TibiaAuto V12")[0] RootWindowX = root.winfo_x() RootWindowY = root.winfo_y() AutoRingWindowX = self.AutoRing.PositionOfWindow('X') AutoRingWindowY = self.AutoRing.PositionOfWindow('Y') time.sleep(0.1) TibiaAuto.minimize() AutoRingWindow.minimize() Invisible = GUI('InvisibleWindow', 'InvisibleWindow') Invisible.InvisibleWindow('GetPosition') while WaitingForClick: X, Y = GetPosition() if keyboard.is_pressed("c"): X, Y = GetPosition() WaitingForClick = False print(f"Your Click Is Located In: [X: {X}, Y: {Y}]") TextEntryX.set(X) TextEntryY.set(Y) Invisible.destroyWindow() TibiaAuto.maximize() TibiaAuto.moveTo(RootWindowX, RootWindowY) time.sleep(0.08) AutoRingWindow.maximize() AutoRingWindow.moveTo(AutoRingWindowX, AutoRingWindowY) break Invisible.UpdateWindow(X, Y) def ValidateEntryX(*args): s = TextEntryX.get() if len(s) > MaxLen: if not s[-1].isdigit(): TextEntryX.set(s[:-1]) else: TextEntryX.set(s[:MaxLen]) def ValidateEntryY(*args): s = TextEntryY.get() if len(s) > MaxLen: if not s[-1].isdigit(): TextEntryY.set(s[:-1]) else: TextEntryY.set(s[:MaxLen]) WidthScreen, HeightScreen = pyautogui.size() VarCheckPrint, InitiatedCheckPrint = self.Setter.Variables.Bool( 'CheckPrint') VarCheckBuff, InitiatedCheckBuff = self.Setter.Variables.Bool( 'CheckBuff') RadioButton, InitiatedRadioButton = self.Setter.Variables.Int( 'RadioButton') NameRing, InitiatedNameRing = self.Setter.Variables.Str('NameRing') HotkeyRing, InitiatedHotkeyRing = self.Setter.Variables.Str( 'HotkeyRing') TextEntryX, InitiatedTextEntryX = self.Setter.Variables.Str( 'TextEntryX') TextEntryY, InitiatedTextEntryY = self.Setter.Variables.Str( 'TextEntryY') CheckLifeBellowThan, InitiatedLifeBellowThan = self.Setter.Variables.Bool( 'LifeBellowThan') LifeBellowThan, InitiatedBellowThan = self.Setter.Variables.Int( 'BellowThan') def CheckingGUI(Init, Get, Name): if Get != Init: GUIChanges.append((Name, Get)) def Destroy(): CheckingGUI(InitiatedCheckPrint, VarCheckPrint.get(), 'CheckPrint') CheckingGUI(InitiatedCheckBuff, VarCheckBuff.get(), 'CheckBuff') CheckingGUI(InitiatedRadioButton, RadioButton.get(), 'RadioButton') CheckingGUI(InitiatedNameRing, NameRing.get(), 'NameRing') CheckingGUI(InitiatedHotkeyRing, HotkeyRing.get(), 'HotkeyRing') CheckingGUI(InitiatedTextEntryX, TextEntryX.get(), 'TextEntryX') CheckingGUI(InitiatedTextEntryY, TextEntryY.get(), 'TextEntryY') CheckingGUI(InitiatedLifeBellowThan, CheckLifeBellowThan.get(), 'LifeBellowThan') CheckingGUI(InitiatedBellowThan, LifeBellowThan.get(), 'BellowThan') if len(GUIChanges) != 0: for EachChange in range(len(GUIChanges)): self.Setter.SetVariables.SetVar(GUIChanges[EachChange][0], GUIChanges[EachChange][1]) self.AutoRing.destroyWindow() self.AutoRing.addButton('Ok', Destroy, [73, 21], [115, 365]) global EnabledAutoRing if not EnabledAutoRing: ButtonEnabled = self.AutoRing.addButton('AutoRing: OFF', SetAutoRing, [287, 23], [11, 336]) else: ButtonEnabled = self.AutoRing.addButton('AutoRing: ON', SetAutoRing, [287, 23], [11, 336]) ButtonEnabled.configure(relief=SUNKEN, bg=rgb((158, 46, 34))) CheckPrint = self.AutoRing.addCheck(VarCheckPrint, [11, 285], InitiatedCheckPrint, "Print on Tibia's screen") CheckPrint.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) CheckBuff = self.AutoRing.addCheck(VarCheckBuff, [11, 305], InitiatedCheckBuff, "Don't Buff") CheckBuff.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) BackImage = 'images/Fundo.png' Back = self.AutoRing.openImage(BackImage, [150, 45]) RingImg = 'images/Rings/MightRing.png' ImageID = self.AutoRing.openImage(RingImg, [64, 64]) ImgLabel = self.AutoRing.addLabel('Image To Search', [16, 22]) self.AutoRing.addImage(ImageID, [28, 43]) RingLabel = self.AutoRing.addLabel('Select Name Of Ring', [135, 55]) OptionNameRing = self.AutoRing.addOption(NameRing, Rings, [120, 80], width=21) ButtonAddNewRing = self.AutoRing.addButton('Add New Ring', AddNewAmulet, [167, 24], [120, 115]) ButtonRecapture = self.AutoRing.addButton('Recapture', Recapture, [88, 24], [22, 115]) DescLabel = self.AutoRing.addLabel('', [150, 140]) RButton1 = self.AutoRing.addRadio('Hotkey', RadioButton, 0, [22, 155], CheckClick) RButton2 = self.AutoRing.addRadio('Position', RadioButton, 1, [22, 175], CheckClick) CheckBoxLifeBellowThan = self.AutoRing.addCheck( CheckLifeBellowThan, [60, 210], InitiatedLifeBellowThan, 'Use Only If Life Is Bellow Than') LabelLifeBellowThan = self.AutoRing.addLabel('Life <= ', [90, 245]) PercentageLifeBellowThan = self.AutoRing.addOption( LifeBellowThan, Percentage, [140, 240]) def Checking(): global FoundedImg, Ring if RadioButton.get() == 0: DescLabel.configure(text='Hotkey To Press') self.AutoRing.addImage(Back, [130, 165]) FoundedImg = False HotkeyOption = self.AutoRing.addOption( HotkeyRing, self.SendToClient.Hotkeys, [145, 170], 10) if EnabledAutoRing: Disable(HotkeyOption) else: Enable(HotkeyOption) elif RadioButton.get() == 1: DescLabel.configure(text='Position To Search') self.AutoRing.addImage(Back, [120, 165]) FoundedImg = False ButtonGetPosition = self.AutoRing.addButton( 'GetPosition', ReturnGetPosition, [80, 29], [195, 173]) LabelX = self.AutoRing.addLabel('X:', [135, 165]) EntryX = self.AutoRing.addEntry([150, 165], TextEntryX, width=4) TextEntryX.trace("w", ValidateEntryX) LabelY = self.AutoRing.addLabel('Y:', [135, 185]) EntryY = self.AutoRing.addEntry([150, 185], TextEntryY, width=4) TextEntryY.trace("w", ValidateEntryY) if EnabledAutoRing: Disable(ButtonGetPosition) Disable(LabelX) Disable(EntryX) Disable(LabelY) Disable(EntryY) else: Enable(ButtonGetPosition) Enable(LabelX) Enable(EntryX) Enable(LabelY) Enable(EntryY) if not CheckLifeBellowThan.get(): Disable(LabelLifeBellowThan) Disable(PercentageLifeBellowThan) elif CheckLifeBellowThan.get(): Enable(LabelLifeBellowThan) Enable(PercentageLifeBellowThan) ExecGUITrigger() def CheckingButtons(): if EnabledAutoRing: Disable(CheckPrint) Disable(CheckBuff) Disable(DescLabel) Disable(ImgLabel) Disable(ButtonRecapture) Disable(ButtonAddNewRing) Disable(RButton1) Disable(RButton2) Disable(RingLabel) Disable(OptionNameRing) Disable(CheckBoxLifeBellowThan) Disable(LabelLifeBellowThan) Disable(PercentageLifeBellowThan) else: Enable(CheckPrint) Enable(CheckBuff) Enable(DescLabel) Enable(ImgLabel) Enable(ButtonRecapture) Enable(ButtonAddNewRing) Enable(RButton1) Enable(RButton2) Enable(RingLabel) Enable(OptionNameRing) Enable(CheckBoxLifeBellowThan) if not CheckLifeBellowThan.get(): Disable(LabelLifeBellowThan) Disable(PercentageLifeBellowThan) elif CheckLifeBellowThan.get(): Enable(LabelLifeBellowThan) Enable(PercentageLifeBellowThan) ExecGUITrigger() def ConstantVerify(): if not EnabledAutoRing: if not CheckLifeBellowThan.get(): Disable(LabelLifeBellowThan) Disable(PercentageLifeBellowThan) elif CheckLifeBellowThan.get(): Enable(LabelLifeBellowThan) Enable(PercentageLifeBellowThan) ExecGUITrigger() self.AutoRing.After(1, ConstantVerify) Checking() CheckingButtons() ConstantVerify() self.AutoRing.Protocol(Destroy) self.AutoRing.loop()
def __init__(self, HealthLocation, MOUSE_OPTION): self.AutoHeal = GUI('AutoHeal', 'Module: Auto Heal') self.AutoHeal.DefaultWindow('AutoHeal2', [306, 372], [1.2, 2.29]) self.Setter = GUISetter("HealthLoader") self.SendToClient = Hotkey(MOUSE_OPTION) self.Scan = ScanStages('Life') self.ThreadManager = ThreadManager("ThreadAutoHeal") def SetAutoHeal(): global EnabledAutoHeal if not EnabledAutoHeal: EnabledAutoHeal = True ButtonEnabled.configure(text='AutoHealing: ON', relief=SUNKEN, bg=rgb((158, 46, 34))) print("AutoHealing: ON") CheckingButtons() if not ThreadStarted: self.ThreadManager.NewThread(scanning_auto_life) else: self.ThreadManager.UnPauseThread() else: EnabledAutoHeal = False print("AutoHealing: OFF") CheckingButtons() ButtonEnabled.configure(text='AutoHealing: OFF', relief=RAISED, bg=rgb((114, 0, 0))) self.ThreadManager.PauseThread() def scanning_auto_life(): while EnabledAutoHeal: global Life Life = self.Scan.ScanStages(HealthLocation, LifeColor, LifeColorFull) if Life is None: Life = 0 if LifeCheckStageThree.get(): stage_three = LifePercentageStageThree.get() if stage_three > Life or stage_three == Life: self.SendToClient.Press(LifeHotkeyStageThree.get()) print("Pressed ", LifeHotkeyStageThree.get()) time.sleep(.15) elif LifeCheckStageTwo.get(): stage_two = LifePercentageStageTwo.get() if stage_two > Life or stage_two == Life: self.SendToClient.Press(LifeHotkeyStageTwo.get()) print("Pressed ", LifeHotkeyStageTwo.get()) time.sleep(.15) elif LifeCheckStageOne.get(): stage_one = LifePercentageStageOne.get() if stage_one > Life or stage_one == Life: self.SendToClient.Press(LifeHotkeyStageOne.get()) print("Pressed ", LifeHotkeyStageOne.get()) time.sleep(.15) elif LifeCheckStageOne.get(): stage_one = LifePercentageStageOne.get() if stage_one > Life or stage_one == Life: self.SendToClient.Press(LifeHotkeyStageOne.get()) print("Pressed ", LifeHotkeyStageOne.get()) time.sleep(.15) elif LifeCheckStageTwo.get(): stage_two = LifePercentageStageTwo.get() if stage_two > Life or stage_two == Life: self.SendToClient.Press(LifeHotkeyStageTwo.get()) print("Pressed ", LifeHotkeyStageTwo.get()) time.sleep(.15) elif LifeCheckStageThree.get(): stage_three = LifePercentageStageThree.get() if stage_three > Life or stage_three == Life: self.SendToClient.Press(LifeHotkeyStageThree.get()) print("Pressed ", LifeHotkeyStageThree.get()) time.sleep(.15) elif LifeCheckStageOne.get(): stage_one = LifePercentageStageOne.get() if stage_one > Life or stage_one == Life: self.SendToClient.Press(LifeHotkeyStageOne.get()) print("Pressed ", LifeHotkeyStageOne.get()) time.sleep(.15) elif LifeCheckStageOne.get(): stage_one = LifePercentageStageOne.get() if stage_one > Life or stage_one == Life: self.SendToClient.Press(LifeHotkeyStageOne.get()) print("Pressed ", LifeHotkeyStageOne.get()) time.sleep(.15) elif LifeCheckStageOne.get(): stage_one = LifePercentageStageOne.get() if stage_one > Life or stage_one == Life: self.SendToClient.Press(LifeHotkeyStageOne.get()) print("Pressed ", LifeHotkeyStageOne.get()) time.sleep(.15) elif LifeCheckStageTwo.get(): stage_two = LifePercentageStageTwo.get() if stage_two > Life or stage_two == Life: self.SendToClient.Press(LifeHotkeyStageTwo.get()) print("Pressed ", LifeHotkeyStageTwo.get()) time.sleep(.15) elif LifeCheckStageThree.get(): stage_three = LifePercentageStageThree.get() if stage_three > Life or stage_three == Life: self.SendToClient.Press(LifeHotkeyStageThree.get()) print("Pressed ", LifeHotkeyStageThree.get()) time.sleep(.15) elif LifeCheckStageThree.get(): stage_three = LifePercentageStageThree.get() if stage_three > Life or stage_three == Life: self.SendToClient.Press(LifeHotkeyStageThree.get()) print("Pressed ", LifeHotkeyStageThree.get()) time.sleep(.15) else: print("Module Not Configured") time.sleep(1) VarCheckPrint, InitiatedCheckPrint = self.Setter.Variables.Bool('CheckPrint') VarCheckBuff, InitiatedCheckBuff = self.Setter.Variables.Bool('CheckBuff') LifeCheckStageOne, InitiatedLifeCheckStageOne = self.Setter.Variables.Bool('LifeCheckStageOne') LifeCheckStageTwo, InitiatedLifeCheckStageTwo = self.Setter.Variables.Bool('LifeCheckStageTwo') LifeCheckStageThree, InitiatedLifeCheckStageThree = self.Setter.Variables.Bool('LifeCheckStageThree') VarCheckCureStats, InitiatedCheckCureStats = self.Setter.Variables.Bool('CheckCureStats') VarCheckParalyze, InitiatedCheckParalyze = self.Setter.Variables.Bool('CheckParalyze') VarCheckPoison, InitiatedCheckPoison = self.Setter.Variables.Bool('CheckPoison') VarCheckFire, InitiatedCheckFire = self.Setter.Variables.Bool('CheckFire') VarCheckElectrify, InitiatedCheckElectrify = self.Setter.Variables.Bool('CheckElectrify') VarCheckMort, InitiatedCheckMort = self.Setter.Variables.Bool('CheckMort') VarCheckBlood, InitiatedCheckBlood = self.Setter.Variables.Bool('CheckBlood') LifePercentageStageOne, InitiatedLifePercentageStageOne = self.Setter.Variables.Int('LifePercentageStageOne') LifeHotkeyStageOne, InitiatedLifeHotkeyStageOne = self.Setter.Variables.Str('LifeHotkeyStageOne') LifePercentageStageTwo, InitiatedLifePercentageStageTwo = self.Setter.Variables.Int('LifePercentageStageTwo') LifeHotkeyStageTwo, InitiatedLifeHotkeyStageTwo = self.Setter.Variables.Str('LifeHotkeyStageTwo') LifePercentageStageThree, InitiatedLifePercentageStageThree = self.Setter.Variables.Int('LifePercentageStageThree') LifeHotkeyStageThree, InitiatedLifeHotkeyStageThree = self.Setter.Variables.Str('LifeHotkeyStageThree') for i in range(len(Stats)): ImageStatus = Image.open('images/Stats/' + Stats[i] + '.webp') ImageStatus = ImageStatus.resize((13, 13), Image.ANTIALIAS) ImageStatus = ImageTk.PhotoImage(ImageStatus) ImageStats.append(ImageStatus) def CheckingGUI(Init, Get, Name): if Get != Init: GUIChanges.append((Name, Get)) def Destroy(): CheckingGUI(InitiatedCheckPrint, VarCheckPrint.get(), 'CheckPrint') CheckingGUI(InitiatedCheckBuff, VarCheckBuff.get(), 'CheckBuff') CheckingGUI(InitiatedLifeCheckStageOne, LifeCheckStageOne.get(), 'LifeCheckStageOne') CheckingGUI(InitiatedLifeCheckStageTwo, LifeCheckStageTwo.get(), 'LifeCheckStageTwo') CheckingGUI(InitiatedLifeCheckStageThree, LifeCheckStageThree.get(), 'LifeCheckStageThree') CheckingGUI(InitiatedCheckCureStats, VarCheckCureStats.get(), 'CheckCureStats') CheckingGUI(InitiatedCheckParalyze, VarCheckParalyze.get(), 'CheckParalyze') CheckingGUI(InitiatedCheckPoison, VarCheckPoison.get(), 'CheckPoison') CheckingGUI(InitiatedCheckFire, VarCheckFire.get(), 'CheckFire') CheckingGUI(InitiatedCheckElectrify, VarCheckElectrify.get(), 'CheckElectrify') CheckingGUI(InitiatedCheckMort, VarCheckMort.get(), 'CheckMort') CheckingGUI(InitiatedCheckBlood, VarCheckBlood.get(), 'CheckBlood') CheckingGUI(InitiatedLifePercentageStageOne, LifePercentageStageOne.get(), 'LifePercentageStageOne') CheckingGUI(InitiatedLifeHotkeyStageOne, LifeHotkeyStageOne.get(), 'LifeHotkeyStageOne') CheckingGUI(InitiatedLifePercentageStageTwo, LifePercentageStageTwo.get(), 'LifePercentageStageTwo') CheckingGUI(InitiatedLifeHotkeyStageTwo, LifeHotkeyStageTwo.get(), 'LifeHotkeyStageTwo') CheckingGUI(InitiatedLifePercentageStageThree, LifePercentageStageThree.get(), 'LifePercentageStageThree') CheckingGUI(InitiatedLifeHotkeyStageThree, LifeHotkeyStageThree.get(), 'LifeHotkeyStageThree') if len(GUIChanges) != 0: for EachChange in range(len(GUIChanges)): self.Setter.SetVariables.SetVar(GUIChanges[EachChange][0], GUIChanges[EachChange][1]) self.AutoHeal.destroyWindow() self.AutoHeal.addButton('Ok', Destroy, [73, 21], [115, 340]) ''' button enable healing ''' global EnabledAutoHeal if not EnabledAutoHeal: ButtonEnabled = self.AutoHeal.addButton('AutoHealing: OFF', SetAutoHeal, [287, 23], [11, 311]) else: ButtonEnabled = self.AutoHeal.addButton('AutoHealing: ON', SetAutoHeal, [287, 23], [11, 311]) ButtonEnabled.configure(relief=SUNKEN, bg=rgb((158, 46, 34))) CheckPrint = self.AutoHeal.addCheck(VarCheckPrint, [11, 260], InitiatedCheckPrint, "Print on Tibia's screen") CheckPrint.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) CheckBuff = self.AutoHeal.addCheck(VarCheckBuff, [11, 280], InitiatedCheckBuff, "Don't Buff") CheckBuff.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) LabelPercentage = self.AutoHeal.addLabel('% Percentage', [145, 24]) LabelHotkey = self.AutoHeal.addLabel('HotKey', [230, 24]) StageOne = self.AutoHeal.addCheck(LifeCheckStageOne, [17, 55], InitiatedLifeCheckStageOne, "Enable Stage One") StageTwo = self.AutoHeal.addCheck(LifeCheckStageTwo, [17, 105], InitiatedLifeCheckStageTwo, "Enable Stage Two") StageThree = self.AutoHeal.addCheck(LifeCheckStageThree, [17, 155], InitiatedLifeCheckStageThree, "Enable Stage Three") CheckStats = self.AutoHeal.addCheck(VarCheckCureStats, [95, 192], InitiatedCheckCureStats, "Enable Cure Stats") Paralyze = self.AutoHeal.addCheck(VarCheckParalyze, [40, 226], InitiatedCheckParalyze, '', ImageStats[0]) Poison = self.AutoHeal.addCheck(VarCheckPoison, [80, 226], InitiatedCheckPoison, '', ImageStats[1]) Fire = self.AutoHeal.addCheck(VarCheckFire, [120, 226], InitiatedCheckFire, '', ImageStats[2]) Electrify = self.AutoHeal.addCheck(VarCheckElectrify, [160, 226], InitiatedCheckElectrify, '', ImageStats[3]) Mort = self.AutoHeal.addCheck(VarCheckMort, [200, 226], InitiatedCheckMort, '', ImageStats[4]) Blood = self.AutoHeal.addCheck(VarCheckBlood, [240, 226], InitiatedCheckBlood, '', ImageStats[5]) PercentageStageOne = self.AutoHeal.addOption(LifePercentageStageOne, Percentage, [148, 54]) HotkeyStageOne = self.AutoHeal.addOption(LifeHotkeyStageOne, self.SendToClient.Hotkeys, [223, 54]) PercentageStageTwo = self.AutoHeal.addOption(LifePercentageStageTwo, Percentage, [148, 104]) HotkeyStageTwo = self.AutoHeal.addOption(LifeHotkeyStageTwo, self.SendToClient.Hotkeys, [223, 104]) PercentageStageThree = self.AutoHeal.addOption(LifePercentageStageThree, Percentage, [148, 154]) HotkeyStageThree = self.AutoHeal.addOption(LifeHotkeyStageThree, self.SendToClient.Hotkeys, [223, 154]) def CheckingButtons(): if EnabledAutoHeal: Disable(CheckStats) Disable(StageThree) Disable(StageTwo) Disable(StageOne) Disable(LabelHotkey) Disable(LabelPercentage) Disable(PercentageStageOne) Disable(HotkeyStageOne) Disable(PercentageStageTwo) Disable(HotkeyStageTwo) Disable(PercentageStageThree) Disable(HotkeyStageThree) Disable(Paralyze) Disable(Poison) Disable(Fire) Disable(Electrify) Disable(Mort) Disable(Blood) Disable(CheckPrint) Disable(CheckBuff) else: Enable(CheckStats) Enable(StageThree) Enable(StageTwo) Enable(StageOne) Enable(LabelHotkey) Enable(LabelPercentage) Enable(PercentageStageOne) Enable(HotkeyStageOne) Enable(PercentageStageTwo) Enable(HotkeyStageTwo) Enable(PercentageStageThree) Enable(HotkeyStageThree) Enable(CheckPrint) Enable(CheckBuff) if not VarCheckCureStats.get(): Disable(Paralyze) Disable(Poison) Disable(Fire) Disable(Electrify) Disable(Mort) Disable(Blood) elif VarCheckCureStats.get(): Enable(Paralyze) Enable(Poison) Enable(Fire) Enable(Electrify) Enable(Mort) Enable(Blood) ExecGUITrigger() def ConstantVerify(): if not EnabledAutoHeal: if not VarCheckCureStats.get(): Disable(Paralyze) Disable(Poison) Disable(Fire) Disable(Electrify) Disable(Mort) Disable(Blood) elif VarCheckCureStats.get(): Enable(Paralyze) Enable(Poison) Enable(Fire) Enable(Electrify) Enable(Mort) Enable(Blood) ExecGUITrigger() self.AutoHeal.After(30, ConstantVerify) CheckingButtons() ConstantVerify() self.AutoHeal.Protocol(Destroy) self.AutoHeal.loop()
def __init__(self, root, AmuletPositions, HealthLocation, MOUSE_OPTION, HOOK_OPTION): self.AutoSSA = GUI('AutoSSA', 'Module: Auto SSA') self.AutoSSA.DefaultWindow('AutoAmulet', [306, 397], [1.2, 2.29]) self.SendToClient = Hotkey(MOUSE_OPTION) def SetAutoAmulet(): global EnabledAutoSSA if not EnabledAutoSSA: EnabledAutoSSA = True ButtonEnabled.configure(text='AutoSSA: ON', relief=SUNKEN, bg=rgb((158, 46, 34))) print("AutoSSA: ON") global Amulet Amulet = NameAmulet.get() Checking() CheckingButtons() time.sleep(0.03) ThreadAutoAmulet = threading.Thread(target=ScanAutoAmulet) ThreadAutoAmulet.start() else: EnabledAutoSSA = False ButtonEnabled.configure(text='AutoSSA: OFF', relief=RAISED, bg=rgb((127, 17, 8))) print("AutoSSA: OFF") Checking() CheckingButtons() def ScanAutoAmulet(): if CheckLifeBellowThan.get(): BellowThan = LifeBellowThan.get() from Modules.AutoHeal import EnabledAutoHeal if EnabledAutoHeal: while EnabledAutoSSA and EnabledAutoHeal: try: NoHasAmulet = ScanAmulet(AmuletPositions, Amulet, HOOK_OPTION) except Exception: NoHasAmulet = False pass from Modules.AutoHeal import life if NoHasAmulet and life <= BellowThan: Execute() else: from Engine.ScanStages import ScanStages while EnabledAutoSSA: try: life = ScanStages('Life From AutoAmulet', HOOK_OPTION).ScanStages( HealthLocation, lifeColor, lifeColorFull) except Exception: life = 100 pass if life is None: life = 0 try: NoHasAmulet = ScanAmulet(AmuletPositions, Amulet, HOOK_OPTION) except Exception: NoHasAmulet = False pass if NoHasAmulet and life < BellowThan: Execute() elif not CheckLifeBellowThan.get(): while EnabledAutoSSA: try: NoHasAmulet = ScanAmulet(AmuletPositions, Amulet, HOOK_OPTION) except Exception: NoHasAmulet = False pass if NoHasAmulet: Execute() def Execute(): if RadioButton.get() == 0: self.SendToClient.Press(HotkeyAmulet.get()) print("Pressed ", HotkeyAmulet.get(), " To Reallocated Your Amulet") time.sleep(1) elif RadioButton.get() == 1: try: X = int(TextEntryX.get()) Y = int(TextEntryY.get()) except: X = None Y = None print("Error To Get Type Of Position") time.sleep(1) if X and Y is not None: if X < WidthScreen and Y < HeightScreen: MousePosition = pyautogui.position() pyautogui.moveTo(X, Y) pyautogui.mouseDown(button='left') pyautogui.moveTo(AmuletPositions[0] + 16, AmuletPositions[1] + 16) pyautogui.mouseUp(button='left') pyautogui.moveTo(MousePosition) print("Amulet Reallocated On: X =", AmuletPositions[0] + 16, "Y =", AmuletPositions[1] + 16, "From: X =", X, "Y =", Y) time.sleep(0.3) else: print("Lower Resolution Than Entered") time.sleep(1) def Recapture(): global WaitingForClick, Amulet WaitingForClick = True Amulet = NameAmulet.get() AutoSSAWindow = pygetwindow.getWindowsWithTitle( "Module: Auto SSA")[0] TibiaAuto = pygetwindow.getWindowsWithTitle("TibiaAuto V12")[0] RootWindowX = root.winfo_x() RootWindowY = root.winfo_y() AutoSSAWindowX = self.AutoSSA.PositionOfWindow('X') AutoSSAWindowY = self.AutoSSA.PositionOfWindow('Y') time.sleep(0.1) TibiaAuto.minimize() AutoSSAWindow.minimize() Invisible = GUI('InvisibleWindow', 'InvisibleWindow') Invisible.InvisibleWindow('Recapture') while WaitingForClick: X, Y = GetPosition() if keyboard.is_pressed("c"): sX, sY = GetPosition() time.sleep(0.03) pyautogui.screenshot('images/Amulets/' + Amulet + '.png', region=(sX - 5, sY - 5, 12, 12)) WaitingForClick = False Invisible.destroyWindow() TibiaAuto.maximize() TibiaAuto.moveTo(RootWindowX, RootWindowY) time.sleep(0.04) AutoSSAWindow.maximize() AutoSSAWindow.moveTo(AutoSSAWindowX, AutoSSAWindowY) break Invisible.UpdateWindow(X, Y) def AddNewAmulet(): print('....') def CheckClick(): Checking() def ReturnGetPosition(): global WaitingForClick WaitingForClick = True AutoSSAWindow = pygetwindow.getWindowsWithTitle( "Module: Auto SSA")[0] TibiaAuto = pygetwindow.getWindowsWithTitle("TibiaAuto V12")[0] RootWindowX = root.winfo_x() RootWindowY = root.winfo_y() AutoSSAWindowX = self.AutoSSA.PositionOfWindow('X') AutoSSAWindowY = self.AutoSSA.PositionOfWindow('Y') time.sleep(0.1) TibiaAuto.minimize() AutoSSAWindow.minimize() Invisible = GUI('InvisibleWindow', 'InvisibleWindow') Invisible.InvisibleWindow('GetPosition') while WaitingForClick: X, Y = GetPosition() if keyboard.is_pressed("c"): X, Y = GetPosition() WaitingForClick = False print(f"Your Click Is Located In: [X: {X}, Y: {Y}]") TextEntryX.set(X) TextEntryY.set(Y) Invisible.destroyWindow() TibiaAuto.maximize() TibiaAuto.moveTo(RootWindowX, RootWindowY) time.sleep(0.08) AutoSSAWindow.maximize() AutoSSAWindow.moveTo(AutoSSAWindowX, AutoSSAWindowY) break Invisible.UpdateWindow(X, Y) def ValidateEntryX(*args): s = TextEntryX.get() if len(s) > MaxLen: if not s[-1].isdigit(): TextEntryX.set(s[:-1]) else: TextEntryX.set(s[:MaxLen]) def ValidateEntryY(*args): s = TextEntryY.get() if len(s) > MaxLen: if not s[-1].isdigit(): TextEntryY.set(s[:-1]) else: TextEntryY.set(s[:MaxLen]) WidthScreen, HeightScreen = pyautogui.size() CheckPrint = tk.BooleanVar() LowMana = tk.BooleanVar() RadioButton = tk.IntVar() NameAmulet = tk.StringVar() NameAmulet.set('SSA') HotkeyAmulet = tk.StringVar() HotkeyAmulet.set("Shift + F2") TextEntryX = tk.StringVar() TextEntryY = tk.StringVar() CheckLifeBellowThan = tk.BooleanVar() CheckLifeBellowThan.set(False) LifeBellowThan = tk.IntVar() LifeBellowThan.set(30) self.AutoSSA.addButton('Ok', self.AutoSSA.destroyWindow, [73, 21], [115, 365]) global EnabledAutoSSA if not EnabledAutoSSA: ButtonEnabled = self.AutoSSA.addButton('AutoSSA: OFF', SetAutoAmulet, [287, 23], [11, 336]) else: ButtonEnabled = self.AutoSSA.addButton('AutoSSA: ON', SetAutoAmulet, [287, 23], [11, 336]) ButtonEnabled.configure(relief=SUNKEN, bg=rgb((158, 46, 34))) CheckPrint = self.AutoSSA.addCheck(CheckPrint, [11, 285], 0, "Print on Tibia's screen") CheckPrint.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) CheckBuff = self.AutoSSA.addCheck(LowMana, [11, 305], 0, "Don't Buff") CheckBuff.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) BackImage = 'images/Fundo.png' Back = self.AutoSSA.openImage(BackImage, [150, 45]) AmuletImg = 'images/Amulets/SSA.png' ImageID = self.AutoSSA.openImage(AmuletImg, [64, 64]) ImgLabel = self.AutoSSA.addLabel('Image To Search', [16, 22]) self.AutoSSA.addImage(ImageID, [28, 43]) AmuletLabel = self.AutoSSA.addLabel('Select Name Of Amulet', [135, 55]) OptionNameAmulet = self.AutoSSA.addOption(NameAmulet, Amulets, [120, 80], width=21) ButtonAddNewAmulet = self.AutoSSA.addButton('Add New Amulet', AddNewAmulet, [167, 24], [120, 115]) ButtonRecapture = self.AutoSSA.addButton('Recapture', Recapture, [88, 24], [22, 115]) DescLabel = self.AutoSSA.addLabel('', [150, 140]) RButton1 = self.AutoSSA.addRadio('Hotkey', RadioButton, 0, [22, 155], CheckClick) RButton2 = self.AutoSSA.addRadio('Position', RadioButton, 1, [22, 175], CheckClick) CheckBoxLifeBellowThan = self.AutoSSA.addCheck( CheckLifeBellowThan, [60, 210], 0, 'Use Only If Life Is Bellow Than') LabelLifeBellowThan = self.AutoSSA.addLabel('Life <= ', [90, 245]) PercentageLifeBellowThan = self.AutoSSA.addOption( LifeBellowThan, percentage, [140, 240]) def Checking(): global FoundedImg, Amulet if RadioButton.get() == 0: DescLabel.configure(text='Hotkey To Press') self.AutoSSA.addImage(Back, [130, 165]) FoundedImg = False HotkeyOption = self.AutoSSA.addOption( HotkeyAmulet, self.SendToClient.Hotkeys, [145, 170], 10) if EnabledAutoSSA: HotkeyOption.configure(state='disabled') else: HotkeyOption.configure(state='normal') elif RadioButton.get() == 1: DescLabel.configure(text='Position To Search') self.AutoSSA.addImage(Back, [120, 165]) FoundedImg = False ButtonGetPosition = self.AutoSSA.addButton( 'GetPosition', ReturnGetPosition, [80, 29], [195, 173]) LabelX = self.AutoSSA.addLabel('X:', [135, 165]) EntryX = self.AutoSSA.addEntry([150, 165], TextEntryX, width=4) TextEntryX.trace("w", ValidateEntryX) LabelY = self.AutoSSA.addLabel('Y:', [135, 185]) EntryY = self.AutoSSA.addEntry([150, 185], TextEntryY, width=4) TextEntryY.trace("w", ValidateEntryY) if EnabledAutoSSA: ButtonGetPosition.configure(state='disabled') LabelX.configure(state='disabled') EntryX.configure(state='disabled') LabelY.configure(state='disabled') EntryY.configure(state='disabled') else: ButtonGetPosition.configure(state='normal') LabelX.configure(state='normal') EntryX.configure(state='normal') LabelY.configure(state='normal') EntryY.configure(state='normal') if not CheckLifeBellowThan.get(): LabelLifeBellowThan.configure(state='disabled') PercentageLifeBellowThan.configure(state='disabled') elif CheckLifeBellowThan.get(): LabelLifeBellowThan.configure(state='normal') PercentageLifeBellowThan.configure(state='normal') def CheckingButtons(): if EnabledAutoSSA: CheckPrint.configure(state='disabled') CheckBuff.configure(state='disabled') DescLabel.configure(state='disabled') ImgLabel.configure(state='disabled') ButtonRecapture.configure(state='disabled') ButtonAddNewAmulet.configure(state='disabled') RButton1.configure(state='disabled') RButton2.configure(state='disabled') AmuletLabel.configure(state='disabled') OptionNameAmulet.configure(state='disabled') CheckBoxLifeBellowThan.configure(state='disabled') LabelLifeBellowThan.configure(state='disabled') PercentageLifeBellowThan.configure(state='disabled') else: CheckPrint.configure(state='normal') CheckBuff.configure(state='normal') DescLabel.configure(state='normal') ImgLabel.configure(state='normal') ButtonRecapture.configure(state='normal') ButtonAddNewAmulet.configure(state='normal') RButton1.configure(state='normal') RButton2.configure(state='normal') AmuletLabel.configure(state='normal') OptionNameAmulet.configure(state='normal') CheckBoxLifeBellowThan.configure(state='normal') if not CheckLifeBellowThan.get(): LabelLifeBellowThan.configure(state='disabled') PercentageLifeBellowThan.configure(state='disabled') elif CheckLifeBellowThan.get(): LabelLifeBellowThan.configure(state='normal') PercentageLifeBellowThan.configure(state='normal') def ConstantVerify(): if not EnabledAutoSSA: if not CheckLifeBellowThan.get(): LabelLifeBellowThan.configure(state='disabled') PercentageLifeBellowThan.configure(state='disabled') elif CheckLifeBellowThan.get(): LabelLifeBellowThan.configure(state='normal') PercentageLifeBellowThan.configure(state='normal') self.AutoSSA.After(1, ConstantVerify) Checking() CheckingButtons() ConstantVerify() self.AutoSSA.loop()
def __init__(self, root, ManaLocation, MOUSE_OPTION, HOOK_OPTION): self.AutoMana = GUI('AutoMana', 'Module: Auto Mana') self.AutoMana.DefaultWindow('AutoMana', [306, 272], [1.2, 2.29]) self.SendToClient = Hotkey(MOUSE_OPTION) self.Scan = ScanStages('Mana', HOOK_OPTION) def SetAutoMana(): global EnabledAutoMana if not EnabledAutoMana: EnabledAutoMana = True ButtonEnabled.configure(text='AutoMana: ON', relief=SUNKEN, bg=rgb((158, 46, 34))) print("AutoMana: ON") CheckingButtons() try: ThreadAutoMana = threading.Thread(target=ScanAutoMana) ThreadAutoMana.start() except: print("Error: Unable To Start ThreadAutoMana!") else: EnabledAutoMana = False print("AutoMana: OFF") CheckingButtons() ButtonEnabled.configure(text='AutoMana: OFF', relief=RAISED, bg=rgb((127, 17, 8))) def ScanAutoMana(): while EnabledAutoMana: try: mana = self.Scan.ScanStages(ManaLocation, manaColor, manaColorFull) except Exception: mana = 100 pass if mana is None: mana = 0 if VarCheckStageTwo.get(): stage_two = VarPercentageStageTwo.get() if stage_two > mana or stage_two == mana: self.SendToClient.Press(VarHotkeyStageTwo.get()) print("Pressed ", VarHotkeyStageTwo.get()) time.sleep(.1) elif VarCheckStageOne.get(): stage_one = VarPercentageStageOne.get() if stage_one > mana or stage_one == mana: self.SendToClient.Press(VarHotkeyStageOne.get()) print("Pressed ", VarHotkeyStageOne.get()) time.sleep(.1) else: print("Modulo Not Configured") time.sleep(1) VarCheckPrint = tk.BooleanVar() VarCheckBuff = tk.BooleanVar() VarCheckStageOne = tk.BooleanVar() VarCheckStageTwo = tk.BooleanVar() VarPercentageStageOne = tk.IntVar() VarPercentageStageOne.set(60) VarHotkeyStageOne = tk.StringVar() VarHotkeyStageOne.set("F3") VarPercentageStageTwo = tk.IntVar() VarPercentageStageTwo.set(45) VarHotkeyStageTwo = tk.StringVar() VarHotkeyStageTwo.set("F4") self.AutoMana.addButton('Ok', self.AutoMana.destroyWindow, [73, 21], [115, 240]) ''' button enable healing ''' global EnabledAutoMana if not EnabledAutoMana: ButtonEnabled = self.AutoMana.addButton('AutoMana: OFF', SetAutoMana, [287, 23], [11, 211]) else: ButtonEnabled = self.AutoMana.addButton('AutoMana: ON', SetAutoMana, [287, 23], [11, 211]) ButtonEnabled.configure(relief=SUNKEN, bg=rgb((158, 46, 34))) LabelPercentage = self.AutoMana.addLabel('% Percentage', [145, 24]) LabelHotkey = self.AutoMana.addLabel('HotKey', [230, 24]) CheckPrint = self.AutoMana.addCheck(VarCheckPrint, [11, 160], 0, "Print on Tibia's screen") CheckPrint.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) CheckBuff = self.AutoMana.addCheck(VarCheckBuff, [11, 180], 0, "Don't Buff") CheckBuff.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) StageOne = self.AutoMana.addCheck(VarCheckStageOne, [17, 55], 0, "Enable Stage One") StageTwo = self.AutoMana.addCheck(VarCheckStageTwo, [17, 105], 0, "Enable Stage Two") PercentageStageOne = self.AutoMana.addOption(VarPercentageStageOne, percentage, [148, 54]) HotkeyStageOne = self.AutoMana.addOption(VarHotkeyStageOne, self.SendToClient.Hotkeys, [223, 54]) PercentageStageTwo = self.AutoMana.addOption(VarPercentageStageTwo, percentage, [148, 104]) HotkeyStageTwo = self.AutoMana.addOption(VarHotkeyStageTwo, self.SendToClient.Hotkeys, [223, 104]) def CheckingButtons(): if EnabledAutoMana: CheckPrint.configure(state='disabled') CheckBuff.configure(state='disabled') StageOne.configure(state='disabled') StageTwo.configure(state='disabled') PercentageStageOne.configure(state='disabled') HotkeyStageOne.configure(state='disabled') PercentageStageTwo.configure(state='disabled') HotkeyStageTwo.configure(state='disabled') LabelPercentage.configure(state='disabled') LabelHotkey.configure(state='disabled') else: CheckPrint.configure(state='normal') CheckBuff.configure(state='normal') StageOne.configure(state='normal') StageTwo.configure(state='normal') PercentageStageOne.configure(state='normal') HotkeyStageOne.configure(state='normal') PercentageStageTwo.configure(state='normal') HotkeyStageTwo.configure(state='normal') LabelPercentage.configure(state='normal') LabelHotkey.configure(state='normal') CheckingButtons() self.AutoMana.loop()
def __init__(self, ManaLocation, MOUSE_OPTION): self.AutoMana = GUI('AutoMana', 'Module: Auto Mana') self.AutoMana.DefaultWindow('AutoMana', [306, 272], [1.2, 2.29]) self.Setter = GUISetter("ManaLoader") self.SendToClient = Hotkey(MOUSE_OPTION) self.Scan = ScanStages('Mana') self.ThreadManager = ThreadManager("ThreadAutoMana") def SetAutoMana(): global EnabledAutoMana if not EnabledAutoMana: ButtonEnabled.configure(text='AutoMana: ON', relief=SUNKEN, bg=rgb((158, 46, 34))) print("AutoMana: ON") EnabledAutoMana = True CheckingButtons() if not ThreadStarted: self.ThreadManager.NewThread(ScanAutoMana) else: self.ThreadManager.UnPauseThread() else: print("AutoMana: OFF") EnabledAutoMana = False CheckingButtons() ButtonEnabled.configure(text='AutoMana: OFF', relief=RAISED, bg=rgb((127, 17, 8))) self.ThreadManager.PauseThread() def ScanAutoMana(): while EnabledAutoMana: Mana = self.Scan.ScanStages(ManaLocation, ManaColor, ManaColorFull) if Mana is None: Mana = 0 if ManaCheckStageTwo.get(): stage_two = ManaPercentageStageTwo.get() if stage_two > Mana or stage_two == Mana: self.SendToClient.Press(ManaHotkeyStageTwo.get()) print("Pressed ", ManaHotkeyStageTwo.get()) time.sleep(.1) elif ManaCheckStageOne.get(): stage_one = ManaPercentageStageOne.get() if stage_one > Mana or stage_one == Mana: self.SendToClient.Press(ManaHotkeyStageOne.get()) print("Pressed ", ManaHotkeyStageOne.get()) time.sleep(.1) else: print("Modulo Not Configured") time.sleep(1) VarCheckPrint, InitiatedCheckPrint = self.Setter.Variables.Bool( 'CheckPrint') VarCheckBuff, InitiatedCheckBuff = self.Setter.Variables.Bool( 'CheckBuff') ManaCheckStageOne, InitiatedManaCheckStageOne = self.Setter.Variables.Bool( 'ManaCheckStageOne') ManaCheckStageTwo, InitiatedManaCheckStageTwo = self.Setter.Variables.Bool( 'ManaCheckStageTwo') ManaPercentageStageOne, InitiatedManaPercentageStageOne = self.Setter.Variables.Int( 'ManaPercentageStageOne') ManaHotkeyStageOne, InitiatedManaHotkeyStageOne = self.Setter.Variables.Str( 'ManaHotkeyStageOne') ManaPercentageStageTwo, InitiatedManaPercentageStageTwo = self.Setter.Variables.Int( 'ManaPercentageStageTwo') ManaHotkeyStageTwo, InitiatedManaHotkeyStageTwo = self.Setter.Variables.Str( 'ManaHotkeyStageTwo') def CheckingGUI(Init, Get, Name): if Get != Init: GUIChanges.append((Name, Get)) def Destroy(): CheckingGUI(InitiatedCheckPrint, VarCheckPrint.get(), 'CheckPrint') CheckingGUI(InitiatedCheckBuff, VarCheckBuff.get(), 'CheckBuff') CheckingGUI(InitiatedManaCheckStageOne, ManaCheckStageOne.get(), 'ManaCheckStageOne') CheckingGUI(InitiatedManaCheckStageTwo, ManaCheckStageTwo.get(), 'ManaCheckStageTwo') CheckingGUI(InitiatedManaPercentageStageOne, ManaPercentageStageOne.get(), 'ManaPercentageStageOne') CheckingGUI(InitiatedManaHotkeyStageOne, ManaHotkeyStageOne.get(), 'ManaHotkeyStageOne') CheckingGUI(InitiatedManaPercentageStageTwo, ManaPercentageStageTwo.get(), 'ManaPercentageStageTwo') CheckingGUI(InitiatedManaHotkeyStageTwo, ManaHotkeyStageTwo.get(), 'ManaHotkeyStageTwo') if len(GUIChanges) != 0: for EachChange in range(len(GUIChanges)): self.Setter.SetVariables.SetVar(GUIChanges[EachChange][0], GUIChanges[EachChange][1]) self.AutoMana.destroyWindow() self.AutoMana.addButton('Ok', Destroy, [73, 21], [115, 240]) ''' button enable healing ''' global EnabledAutoMana if not EnabledAutoMana: ButtonEnabled = self.AutoMana.addButton('AutoMana: OFF', SetAutoMana, [287, 23], [11, 211]) else: ButtonEnabled = self.AutoMana.addButton('AutoMana: ON', SetAutoMana, [287, 23], [11, 211]) ButtonEnabled.configure(relief=SUNKEN, bg=rgb((158, 46, 34))) LabelPercentage = self.AutoMana.addLabel('% Percentage', [145, 24]) LabelHotkey = self.AutoMana.addLabel('HotKey', [230, 24]) CheckPrint = self.AutoMana.addCheck(VarCheckPrint, [11, 160], InitiatedCheckPrint, "Print on Tibia's screen") CheckPrint.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) CheckBuff = self.AutoMana.addCheck(VarCheckBuff, [11, 180], InitiatedCheckBuff, "Don't Buff") CheckBuff.configure(bg=rgb((114, 94, 48)), activebackground=rgb((114, 94, 48)), selectcolor=rgb((114, 94, 48))) StageOne = self.AutoMana.addCheck(ManaCheckStageOne, [17, 55], InitiatedManaCheckStageOne, "Enable Stage One") StageTwo = self.AutoMana.addCheck(ManaCheckStageTwo, [17, 105], InitiatedManaCheckStageTwo, "Enable Stage Two") PercentageStageOne = self.AutoMana.addOption(ManaPercentageStageOne, Percentage, [148, 54]) HotkeyStageOne = self.AutoMana.addOption(ManaHotkeyStageOne, self.SendToClient.Hotkeys, [223, 54]) PercentageStageTwo = self.AutoMana.addOption(ManaPercentageStageTwo, Percentage, [148, 104]) HotkeyStageTwo = self.AutoMana.addOption(ManaHotkeyStageTwo, self.SendToClient.Hotkeys, [223, 104]) def CheckingButtons(): if EnabledAutoMana: Disable(CheckPrint) Disable(CheckBuff) Disable(StageOne) Disable(StageTwo) Disable(PercentageStageOne) Disable(HotkeyStageOne) Disable(PercentageStageTwo) Disable(HotkeyStageTwo) Disable(LabelPercentage) Disable(LabelHotkey) else: Enable(CheckPrint) Enable(CheckBuff) Enable(StageOne) Enable(StageTwo) Enable(PercentageStageOne) Enable(HotkeyStageOne) Enable(PercentageStageTwo) Enable(HotkeyStageTwo) Enable(LabelPercentage) Enable(LabelHotkey) ExecGUITrigger() CheckingButtons() self.AutoMana.Protocol(Destroy) self.AutoMana.loop()