class AutoRing: 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()
class AutoSSA: 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()
class AutoHeal: 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()