def ScanAmulet(AmuletPositions, Amulet, HOOK_OPTION): HasAmulet = [0, 0] if HOOK_OPTION == 0: import pyautogui HasAmulet = pyautogui.locateOnScreen( 'images/Amulets/' + Amulet + '.png', confidence=0.9, region=(AmuletPositions[0], AmuletPositions[1], AmuletPositions[2], AmuletPositions[3])) if HasAmulet: return False else: return True elif HOOK_OPTION == 1: from Engine.HookWindow import LocateImage HasAmulet[0], HasAmulet[1] = LocateImage( 'images/Amulets/' + Amulet + '.png', Precision=0.9, Region=(AmuletPositions[0], AmuletPositions[1], AmuletPositions[2], AmuletPositions[3])) if HasAmulet[0] != 0 and HasAmulet[1] != 0: return False else: return True
def ScanRing(RingPositions, HOOK_OPTION): NoHasRing = [0, 0] if HOOK_OPTION == 0: import pyautogui NoHasRing = pyautogui.locateOnScreen( 'images/PlayerStats/NoRing.png', confidence=0.9, region=(RingPositions[0], RingPositions[1], RingPositions[2], RingPositions[3])) if NoHasRing: return True else: return False elif HOOK_OPTION == 1: from Engine.HookWindow import LocateImage NoHasRing[0], NoHasRing[1] = LocateImage( 'images/PlayerStats/NoRing.png', Precision=0.9, Region=(RingPositions[0], RingPositions[1], RingPositions[2], RingPositions[3])) if NoHasRing[0] != 0 and NoHasRing[1] != 0: return True else: return False
def GetStatsPosition(HOOK_OPTION): StatsPositions = [0, 0, 0, 0] if HOOK_OPTION == 0: import pyautogui stats = pyautogui.locateOnScreen('images/TibiaSettings/Stop.png', grayscale=True, confidence=0.9) if stats[0] != 0 and stats[1] != 0: StatsPositions[0] = stats[0] - 117 StatsPositions[1] = stats[1] + 1 StatsPositions[2] = StatsPositions[0] + 105 StatsPositions[3] = StatsPositions[1] + 10 return StatsPositions[0], StatsPositions[1], StatsPositions[2], StatsPositions[3] elif HOOK_OPTION == 1: from Engine.HookWindow import LocateImage StatsPositions[0], StatsPositions[1] = LocateImage('images/TibiaSettings/Stop.png', Precision=0.8) if StatsPositions[0] != 0 and StatsPositions[1] != 0: StatsPositions[0] = StatsPositions[0] - 117 StatsPositions[1] = StatsPositions[1] + 1 StatsPositions[2] = StatsPositions[0] + 105 StatsPositions[3] = StatsPositions[1] + 10 return StatsPositions[0], StatsPositions[1], StatsPositions[2], StatsPositions[3] else: return 0, 0, 0, 0
def CheckWaypoint(image, map_positions, HOOK_OPTION): wpt = [0, 0] middle_start = (map_positions[0] + 48, map_positions[1] + 48) middle_end = (map_positions[2] - 48, map_positions[3] - 48) if HOOK_OPTION == 0: import pyautogui wpt = pyautogui.locateOnScreen('images/MapSettings/' + image + '.png', region=(middle_start[0], middle_start[1], middle_end[0], middle_end[1]), confidence=0.9, grayscale=True) if wpt: print("Arrived At Mark:", image) return True else: print("Didn't Arrived At Mark:", image) return False elif HOOK_OPTION == 1: from Engine.HookWindow import LocateImage wpt[0], wpt[1] = LocateImage('images/MapSettings/' + image + '.png', Precision=0.7, Region=(middle_start[0], middle_start[1], middle_end[0], middle_end[1])) if wpt[0] != 0 and wpt[1] != 0: print("Arrived At Mark:", image) return True else: print("Didn't Arrived At Mark:", image, "\n") return False
def ScanHur(StatsPositions, HOOK_OPTION): HasHur = [0, 0] if HOOK_OPTION == 0: import pyautogui HasHur = pyautogui.locateOnScreen( 'images/PlayerStats/Hur.png', confidence=0.9, region=(StatsPositions[0], StatsPositions[1], StatsPositions[2], StatsPositions[3])) if HasHur: return False else: return True elif HOOK_OPTION == 1: from Engine.HookWindow import LocateImage HasHur[0], HasHur[1] = LocateImage( 'images/PlayerStats/Hur.png', Precision=0.9, Region=(StatsPositions[0], StatsPositions[1], StatsPositions[2], StatsPositions[3])) if HasHur[0] != 0 and HasHur[1] != 0: return False else: return True
def GetMapPosition(HOOK_OPTION): MapPositions = [0, 0, 0, 0] if HOOK_OPTION == 0: import pyautogui top_right = pyautogui.locateOnScreen( "images/MapSettings/MapSettings.png", confidence=0.8) map_size = 110 # 110px square MapPositions[0], MapPositions[ 1] = top_right[0] - map_size + 4, top_right[1] + 1 MapPositions[2], MapPositions[ 3] = top_right[0] - 1, top_right[1] + map_size - 1 if top_right[0] != -1: print( f"MiniMap Start [X: {MapPositions[0]}, Y: {MapPositions[1]}]") print(f"MiniMap End [X: {MapPositions[2]}, Y: {MapPositions[3]}]") print("") print( f"Size of MiniMap [X: {MapPositions[2] - MapPositions[0]}, Y: {MapPositions[3] - MapPositions[1]}]" ) return MapPositions[0], MapPositions[1], MapPositions[ 2], MapPositions[3] else: print("Error To Get Map Positions") return -1, -1, -1, -1 elif HOOK_OPTION == 1: from Engine.HookWindow import LocateImage top_right = LocateImage("images/MapSettings/MapSettings.png", Precision=0.8) map_size = 110 # 110px square MapPositions[0], MapPositions[ 1] = top_right[0] - map_size + 4, top_right[1] + 1 MapPositions[2], MapPositions[ 3] = top_right[0] - 1, top_right[1] + map_size - 1 if top_right[0] != -1: print( f"MiniMap Start [X: {MapPositions[0]}, Y: {MapPositions[1]}]") print(f"MiniMap End [X: {MapPositions[2]}, Y: {MapPositions[3]}]") print("") print( f"Size of MiniMap [X: {MapPositions[2] - MapPositions[0]}, Y: {MapPositions[3] - MapPositions[1]}]" ) return MapPositions[0], MapPositions[1], MapPositions[ 2], MapPositions[3] else: print("Error To Get Map Positions") return -1, -1, -1, -1
def GetPlayerPosition(HOOK_OPTION): gameWindow = [0, 0, 0, 0] Player = [0, 0] left_gw = [0, 0] right_gw = [0, 0] button_gw = [0, 0] if HOOK_OPTION == 0: left_gw = pyautogui.locateOnScreen("images/PlayerSettings/LeftOption1.png", confidence=0.8) if left_gw is None: left_gw = pyautogui.locateOnScreen("images/PlayerSettings/LeftOption2.png", confidence=0.8) if left_gw is None: left_gw = pyautogui.locateOnScreen("images/PlayerSettings/LeftOption3.png", confidence=0.8) try: gameWindow[0] = int(left_gw[0]) gameWindow[1] = int(left_gw[1]) except Exception as errno: print("?Error On ", errno) right_gw = pyautogui.locateOnScreen("images/PlayerSettings/RightOption1.png", confidence=0.8) if right_gw is None: right_gw = pyautogui.locateOnScreen("images/PlayerSettings/RightOption2.png", confidence=0.8) if right_gw is None: right_gw = pyautogui.locateOnScreen("images/PlayerSettings/RightOption3.png", confidence=0.8) if right_gw is None: right_gw = pyautogui.locateOnScreen("images/PlayerSettings/RightOption4.png", confidence=0.8) try: gameWindow[2] = int(right_gw[0]) except Exception as errno: print("?Error On ", errno) button_gw = pyautogui.locateOnScreen("images/PlayerSettings/EndLocation.png", confidence=0.8) if button_gw is None: print("BUTTON GAME WINDOWS IS NONE") else: gameWindow[3] = int(button_gw[1]) if gameWindow[0] != 0 and gameWindow[2] != 0: Player[0] = int(((gameWindow[2] - gameWindow[0]) / 2) + gameWindow[0]) else: print("X GAME WINDOW ERROR") x, y = pyautogui.size() Player[0] = x / 2 if gameWindow[1] != 0 and gameWindow[3] != 0: Player[1] = int(((gameWindow[3] - gameWindow[1]) / 2) + gameWindow[1]) else: print("Y GAME WINDOW ERROR") x, y = pyautogui.size() Player[1] = y / 2 if Player is not None: 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 elif HOOK_OPTION == 1: from Engine.HookWindow import LocateImage left_gw[0], left_gw[1] = LocateImage("images/PlayerSettings/LeftOption1.png", Precision=0.75) if left_gw[0] == 0 and left_gw[1] == 0: left_gw[0], left_gw[1] = LocateImage("images/PlayerSettings/LeftOption2.png", Precision=0.75) if left_gw[0] == 0 and left_gw[1] == 0: left_gw[0], left_gw[1] = LocateImage("images/PlayerSettings/LeftOption3.png", Precision=0.75) try: gameWindow[0] = int(left_gw[0]) gameWindow[1] = int(left_gw[1]) except Exception as errno: print("?Error On ", errno) right_gw[0], right_gw[1] = LocateImage("images/PlayerSettings/RightOption1.png", Precision=0.75) if right_gw[0] == 0 and right_gw[1] == 0: right_gw[0], right_gw[1] = LocateImage("images/PlayerSettings/RightOption2.png", Precision=0.75) if right_gw[0] == 0 and right_gw[1] == 0: right_gw[0], right_gw[1] = LocateImage("images/PlayerSettings/RightOption3.png", Precision=0.75) if right_gw[0] == 0 and right_gw[1] == 0: right_gw[0], right_gw[1] = LocateImage("images/PlayerSettings/RightOption4.png", Precision=0.75) try: gameWindow[2] = int(right_gw[0]) except Exception as errno: print("?Error On ", errno) button_gw[0], button_gw[1] = LocateImage("images/PlayerSettings/EndLocation.png", Precision=0.7) if button_gw[0] == 0 and button_gw[1] == 0: print("BUTTON GAME WINDOWS IS NONE") else: gameWindow[3] = int(button_gw[1]) if gameWindow[0] != 0 and gameWindow[2] != 0: Player[0] = int(((gameWindow[2] - gameWindow[0]) / 2) + gameWindow[0]) else: print("X GAME WINDOW ERROR") x, y = pyautogui.size() Player[0] = x / 2 if gameWindow[1] != 0 and gameWindow[3] != 0: Player[1] = int(((gameWindow[3] - gameWindow[1]) / 2) + gameWindow[1]) else: print("Y GAME WINDOW ERROR") x, y = pyautogui.size() print(x, y) Player[1] = y / 2 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