예제 #1
0
    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
예제 #2
0
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
예제 #3
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)
예제 #4
0
    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()
예제 #5
0
    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()
예제 #6
0
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
예제 #7
0
 def __init__(self, button, MOUSE_OPTION):
     self.MOUSE_OPTION = MOUSE_OPTION
     self.SendToClient = Hotkey(MOUSE_OPTION)
     self.button = button
예제 #8
0
    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()
예제 #9
0
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])
예제 #10
0
    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()
예제 #11
0
    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()
예제 #12
0
    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()
예제 #13
0
    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()
예제 #14
0
    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()