HP Structure (Reclass) to be used in a hacks.. [0.1.0d] menu

User Tag List

Page 3 of 8 FirstFirst 1234567 ... LastLast
Results 31 to 45 of 114
  1. #31
    PanCrucian's Avatar Member
    Reputation
    3
    Join Date
    Jan 2017
    Posts
    15
    Thanks G/R
    5/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Tool based on hp mp, was written for personal purposes, but maybe good for someone, soo share =) for poe 2 standalone version

    HP Structure (Reclass) to be used in a hacks.. [0.1.0d]
  2. #32
    PanCrucian's Avatar Member
    Reputation
    3
    Join Date
    Jan 2017
    Posts
    15
    Thanks G/R
    5/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by PanCrucian View Post
    Tool based on hp mp, was written for personal purposes, but maybe good for someone, soo share =) for poe 2 standalone version
    sources
    Code:
    import time
    
    import win32api, win32gui
    import win32con
    import ctypes
    import threading
    import tkinter as tk
    from tkinter import messagebox
    
    from pymem import Pymem
    
    class AutoBot:
        def __init__(self):
            # Memory addresses and offsets
            self.pointer = 0x03891DB0
            self.offsets_CurHP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x30]
            self.offsets_MaxHP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x2c]
            self.offsets_CurMP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x80]
            self.offsets_MaxMP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x7c]
    
            # Default settings
            self.running = False
            self.process_name = "PathOfExile.exe"
            self.heal_hp = 70
            self.heal_mp = 25
    
            self.create_gui()
    
        def find_dma_addy(self, hProc, base, offsets, arch=64):
            kernel32 = ctypes.windll.kernel32
            size = 8 if arch == 64 else 4
            address = ctypes.c_uint64(base)
            for offset in offsets:
                kernel32.ReadProcessMemory(hProc, address, ctypes.byref(address), size, 0)
                address = ctypes.c_uint64(address.value + offset)
            return address.value
    
        def connect_to_process(self):
            try:
                self.pm = Pymem(self.process_name)
                print(f"Connected to process: {self.process_name}")
                self.hProc = self.pm.process_handle
                self.base_pointer = self.pm.base_address + self.pointer
            except Exception as e:
                messagebox.showerror("Error", f"Process connection error: {e}")
                return False
            return True
    
        def loop(self):
            while self.running:
                try:
                    maxhp_address = self.find_dma_addy(self.hProc, self.base_pointer, self.offsets_MaxHP, 64)
                    curhp_address = self.find_dma_addy(self.hProc, self.base_pointer, self.offsets_CurHP, 64)
                    maxmana_address = self.find_dma_addy(self.hProc, self.base_pointer, self.offsets_MaxMP, 64)
                    curmana_address = self.find_dma_addy(self.hProc, self.base_pointer, self.offsets_CurMP, 64)
    
                    current_hp = self.pm.read_int(curhp_address)
                    max_hp = self.pm.read_int(maxhp_address)
                    current_mp = self.pm.read_int(curmana_address)
                    max_mp = self.pm.read_int(maxmana_address)
    
                    hp_percent = (current_hp / max_hp) * 100 if max_hp != 0 else 0
                    mp_percent = (current_mp / max_mp) * 100 if max_mp != 0 else 0
    
                    if hp_percent <= self.heal_hp:
                        time.sleep(0.2)
                        win32api.PostMessage(self.game_window, win32con.WM_KEYDOWN, ord('1'), 0)
                        win32api.PostMessage(self.game_window, win32con.WM_KEYUP, ord('1'), 0)
    
                    if mp_percent <= self.heal_mp:
                        time.sleep(0.2)
                        win32api.PostMessage(self.game_window, win32con.WM_KEYDOWN, ord('2'), 0)
                        win32api.PostMessage(self.game_window, win32con.WM_KEYUP, ord('2'), 0)
    
                except Exception as e:
                    print(f"Memory access error: {e}")
    
                time.sleep(0.5)
    
        def start(self):
            try:
                self.heal_hp = int(self.heal_hp_entry.get())
                self.heal_mp = int(self.heal_mp_entry.get())
                self.game_window = win32gui.FindWindow(None, "Path of Exile 2")
                if not self.game_window:
                    messagebox.showerror("Error", "Game window not found")
                    return
                if not self.connect_to_process():
                    return
                self.running = True
                self.start_button.config(state='disabled')
                self.stop_button.config(state='normal')
                healbot_thread = threading.Thread(target=self.loop)
                healbot_thread.daemon = True
                healbot_thread.start()
            except ValueError:
                messagebox.showerror("Error", "Please enter valid values for HP and MP")
    
        def stop(self):
            self.running = False
            self.start_button.config(state='normal')
            self.stop_button.config(state='disabled')
    
        def aob_scan(self, pm, module_name, signature):
            module = next((m for m in pm.list_modules() if m.name == module_name), None)
            if not module:
                raise ValueError(f"Модуль {module_name} не найден")
            pattern = signature.split()
            pattern_bytes = []
            mask = []
            for byte in pattern:
                if byte == "??":
                    pattern_bytes.append(0x00)
                    mask.append("?")
                else:
                    pattern_bytes.append(int(byte, 16))
                    mask.append("x")
            memory = pm.read_bytes(module.lpBaseOfDll, module.SizeOfImage)
            for i in range(len(memory) - len(pattern_bytes)):
                match = True
                for j in range(len(pattern_bytes)):
                    if mask[j] == "x" and memory[i + j] != pattern_bytes[j]:
                        match = False
                        break
                if match:
                    return module.lpBaseOfDll + i
            return None
    
        def patch_memory(self, pm, address, bytes_to_write):
            pm.write_bytes(address, bytes_to_write, len(bytes_to_write))
    
        def enable_zoom(self):
            try:
                signature = "F3 0F 5D 0D ?? ?? ?? 02 F3 0F 11 8F"
                address = self.aob_scan(self.pm, self.process_name, signature)
                if not address:
                    messagebox.showerror("Error", "Сигнатура не найдена")
                    return
                self.patch_memory(self.pm, address, b"\x90\x90\x90\x90\x90\x90\x90\x90")
                self.enable_zoom_button.config(state='disabled')
                self.disable_zoom_button.config(state='normal')
    
            except Exception as e:
                messagebox.showerror("Error", f"Ошибка при включении zoom hack: {e}")
    
        def disable_zoom(self):
            try:
                signature = "F3 0F 5D 0D ?? ?? ?? 02 F3 0F 11 8F"
                address = self.aob_scan(self.pm, self.process_name, signature)
                if not address:
                    messagebox.showerror("Error", "Сигнатура не найдена")
                    return
                self.patch_memory(self.pm, address, b"\x74")
                self.disable_zoom_button.config(state='disabled')
                self.enable_zoom_button.config(state='normal')
            except Exception as e:
                messagebox.showerror("Error", f"Ошибка при отключении zoom hack: {e}")
    
        def enable_visibility(self):
            try:
                signature = "41 ?? ?? ?? ?? 74 ?? 0f ?? ?? eb ?? 41 ?? ?? ?? ba ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? e8 ?? ?? ?? ?? 8b ?? 49 ?? ?? e8 ?? ?? ?? ?? 48 ?? ?? 74 ?? 4C ?? ?? EB ?? 4C ?? ?? 41 ?? ?? ?? ?? 74 ??"            
                address = self.aob_scan(self.pm, self.process_name, signature)
                if not address:
                    messagebox.showerror("Error", "Сигнатура не найдена")
                    return
                self.patch_memory(self.pm, address + 5, b"\x75")  # visibility_fully_revealed+5
                self.patch_memory(self.pm, address + 0x3D, b"\x75")  # visibility_fully_revealed+3D
                self.enable_visibility_button.config(state='disabled')
                self.disable_visibility_button.config(state='normal')
            except Exception as e:
                messagebox.showerror("Error", f"Ошибка при включении visibility hack: {e}")
    
        def disable_visibility(self):
            try:
                signature = "41 ?? ?? ?? ?? 74 ?? 0f ?? ?? eb ?? 41 ?? ?? ?? ba ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? e8 ?? ?? ?? ?? 8b ?? 49 ?? ?? e8 ?? ?? ???"
                address = self.aob_scan(self.pm, self.process_name, signature)
                if not address:
                    messagebox.showerror("Error", "Сигнатура не найдена")
                    return
                self.patch_memory(self.pm, address + 5, b"\x74")  # visibility_fully_revealed+5
                self.patch_memory(self.pm, address + 0x3D, b"\x74")  # visibility_fully_revealed+3D
                self.disable_visibility_button.config(state='disabled')
                self.enable_visibility_button.config(state='normal')
    
            except Exception as e:
                messagebox.showerror("Error", f"Ошибка при отключении visibility hack: {e}")
    
        def create_gui(self):
            self.root = tk.Tk()
            self.root.title("Settings")
    
            frame = tk.Frame(self.root)
            frame.pack(pady=10, padx=10)
    
            # HP settings
            tk.Label(frame, text="HP (%)").grid(row=1, column=0, padx=5, pady=5)
            self.heal_hp_entry = tk.Entry(frame)
            self.heal_hp_entry.grid(row=1, column=1, padx=5, pady=5)
            self.heal_hp_entry.insert(0, str(self.heal_hp))
    
            # MP settings
            tk.Label(frame, text="MP (%)").grid(row=2, column=0, padx=5, pady=5)
            self.heal_mp_entry = tk.Entry(frame)
            self.heal_mp_entry.grid(row=2, column=1, padx=5, pady=5)
            self.heal_mp_entry.insert(0, str(self.heal_mp))
    
            # Control buttons
            button_frame = tk.Frame(frame)
            button_frame.grid(row=3, column=0, columnspan=2, pady=10)
    
            self.start_button = tk.Button(button_frame, text="Start", command=self.start)
            self.start_button.pack(side=tk.LEFT, padx=5)
    
            self.stop_button = tk.Button(button_frame, text="Stop", command=self.stop, state='disabled')
            self.stop_button.pack(side=tk.LEFT, padx=5)
    
            # Zoom Hack Buttons
            zoom_frame = tk.Frame(frame)
            zoom_frame.grid(row=4, column=0, columnspan=2, pady=10)
    
            self.enable_zoom_button = tk.Button(zoom_frame, text="Enable Zoom Hack", command=self.enable_zoom)
            self.enable_zoom_button.pack(side=tk.LEFT, padx=5)
    
            self.disable_zoom_button = tk.Button(zoom_frame, text="Disable Zoom Hack", command=self.disable_zoom,
                                                 state='disabled')
            self.disable_zoom_button.pack(side=tk.LEFT, padx=5)
    
            # Visibility Hack Buttons
            visibility_frame = tk.Frame(frame)
            visibility_frame.grid(row=5, column=0, columnspan=2, pady=10)
    
            self.enable_visibility_button = tk.Button(visibility_frame, text="Enable Map Hack",
                                                      command=self.enable_visibility)
            self.enable_visibility_button.pack(side=tk.LEFT, padx=5)
    
            self.disable_visibility_button = tk.Button(visibility_frame, text="Disable Map Hack",
                                                       command=self.disable_visibility, state='disabled')
            self.disable_visibility_button.pack(side=tk.LEFT, padx=5)
    
        def run(self):
            self.root.mainloop()
    
    if __name__ == "__main__":
        bot = AutoBot()
        bot.run()

  3. #33
    KronosQC's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2024
    Posts
    49
    Thanks G/R
    2/16
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by PanCrucian View Post
    sources
    Code:
    import time
    
    import win32api, win32gui
    import win32con
    import ctypes
    import threading
    import tkinter as tk
    from tkinter import messagebox
    
    from pymem import Pymem
    
    class AutoBot:
        def __init__(self):
            # Memory addresses and offsets
            self.pointer = 0x03891DB0
            self.offsets_CurHP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x30]
            self.offsets_MaxHP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x2c]
            self.offsets_CurMP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x80]
            self.offsets_MaxMP = [0x38, 0x18, 0x40, 0x20, 0x208, 0x7c]
    
            # Default settings
            self.running = False
            self.process_name = "PathOfExile.exe"
            self.heal_hp = 70
            self.heal_mp = 25
    
            self.create_gui()
    
        def find_dma_addy(self, hProc, base, offsets, arch=64):
            kernel32 = ctypes.windll.kernel32
            size = 8 if arch == 64 else 4
            address = ctypes.c_uint64(base)
            for offset in offsets:
                kernel32.ReadProcessMemory(hProc, address, ctypes.byref(address), size, 0)
                address = ctypes.c_uint64(address.value + offset)
            return address.value
    
        def connect_to_process(self):
            try:
                self.pm = Pymem(self.process_name)
                print(f"Connected to process: {self.process_name}")
                self.hProc = self.pm.process_handle
                self.base_pointer = self.pm.base_address + self.pointer
            except Exception as e:
                messagebox.showerror("Error", f"Process connection error: {e}")
                return False
            return True
    
        def loop(self):
            while self.running:
                try:
                    maxhp_address = self.find_dma_addy(self.hProc, self.base_pointer, self.offsets_MaxHP, 64)
                    curhp_address = self.find_dma_addy(self.hProc, self.base_pointer, self.offsets_CurHP, 64)
                    maxmana_address = self.find_dma_addy(self.hProc, self.base_pointer, self.offsets_MaxMP, 64)
                    curmana_address = self.find_dma_addy(self.hProc, self.base_pointer, self.offsets_CurMP, 64)
    
                    current_hp = self.pm.read_int(curhp_address)
                    max_hp = self.pm.read_int(maxhp_address)
                    current_mp = self.pm.read_int(curmana_address)
                    max_mp = self.pm.read_int(maxmana_address)
    
                    hp_percent = (current_hp / max_hp) * 100 if max_hp != 0 else 0
                    mp_percent = (current_mp / max_mp) * 100 if max_mp != 0 else 0
    
                    if hp_percent <= self.heal_hp:
                        time.sleep(0.2)
                        win32api.PostMessage(self.game_window, win32con.WM_KEYDOWN, ord('1'), 0)
                        win32api.PostMessage(self.game_window, win32con.WM_KEYUP, ord('1'), 0)
    
                    if mp_percent <= self.heal_mp:
                        time.sleep(0.2)
                        win32api.PostMessage(self.game_window, win32con.WM_KEYDOWN, ord('2'), 0)
                        win32api.PostMessage(self.game_window, win32con.WM_KEYUP, ord('2'), 0)
    
                except Exception as e:
                    print(f"Memory access error: {e}")
    
                time.sleep(0.5)
    
        def start(self):
            try:
                self.heal_hp = int(self.heal_hp_entry.get())
                self.heal_mp = int(self.heal_mp_entry.get())
                self.game_window = win32gui.FindWindow(None, "Path of Exile 2")
                if not self.game_window:
                    messagebox.showerror("Error", "Game window not found")
                    return
                if not self.connect_to_process():
                    return
                self.running = True
                self.start_button.config(state='disabled')
                self.stop_button.config(state='normal')
                healbot_thread = threading.Thread(target=self.loop)
                healbot_thread.daemon = True
                healbot_thread.start()
            except ValueError:
                messagebox.showerror("Error", "Please enter valid values for HP and MP")
    
        def stop(self):
            self.running = False
            self.start_button.config(state='normal')
            self.stop_button.config(state='disabled')
    
        def aob_scan(self, pm, module_name, signature):
            module = next((m for m in pm.list_modules() if m.name == module_name), None)
            if not module:
                raise ValueError(f"Модуль {module_name} не найден")
            pattern = signature.split()
            pattern_bytes = []
            mask = []
            for byte in pattern:
                if byte == "??":
                    pattern_bytes.append(0x00)
                    mask.append("?")
                else:
                    pattern_bytes.append(int(byte, 16))
                    mask.append("x")
            memory = pm.read_bytes(module.lpBaseOfDll, module.SizeOfImage)
            for i in range(len(memory) - len(pattern_bytes)):
                match = True
                for j in range(len(pattern_bytes)):
                    if mask[j] == "x" and memory[i + j] != pattern_bytes[j]:
                        match = False
                        break
                if match:
                    return module.lpBaseOfDll + i
            return None
    
        def patch_memory(self, pm, address, bytes_to_write):
            pm.write_bytes(address, bytes_to_write, len(bytes_to_write))
    
        def enable_zoom(self):
            try:
                signature = "F3 0F 5D 0D ?? ?? ?? 02 F3 0F 11 8F"
                address = self.aob_scan(self.pm, self.process_name, signature)
                if not address:
                    messagebox.showerror("Error", "Сигнатура не найдена")
                    return
                self.patch_memory(self.pm, address, b"\x90\x90\x90\x90\x90\x90\x90\x90")
                self.enable_zoom_button.config(state='disabled')
                self.disable_zoom_button.config(state='normal')
    
            except Exception as e:
                messagebox.showerror("Error", f"Ошибка при включении zoom hack: {e}")
    
        def disable_zoom(self):
            try:
                signature = "F3 0F 5D 0D ?? ?? ?? 02 F3 0F 11 8F"
                address = self.aob_scan(self.pm, self.process_name, signature)
                if not address:
                    messagebox.showerror("Error", "Сигнатура не найдена")
                    return
                self.patch_memory(self.pm, address, b"\x74")
                self.disable_zoom_button.config(state='disabled')
                self.enable_zoom_button.config(state='normal')
            except Exception as e:
                messagebox.showerror("Error", f"Ошибка при отключении zoom hack: {e}")
    
        def enable_visibility(self):
            try:
                signature = "41 ?? ?? ?? ?? 74 ?? 0f ?? ?? eb ?? 41 ?? ?? ?? ba ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? e8 ?? ?? ?? ?? 8b ?? 49 ?? ?? e8 ?? ?? ?? ?? 48 ?? ?? 74 ?? 4C ?? ?? EB ?? 4C ?? ?? 41 ?? ?? ?? ?? 74 ??"            
                address = self.aob_scan(self.pm, self.process_name, signature)
                if not address:
                    messagebox.showerror("Error", "Сигнатура не найдена")
                    return
                self.patch_memory(self.pm, address + 5, b"\x75")  # visibility_fully_revealed+5
                self.patch_memory(self.pm, address + 0x3D, b"\x75")  # visibility_fully_revealed+3D
                self.enable_visibility_button.config(state='disabled')
                self.disable_visibility_button.config(state='normal')
            except Exception as e:
                messagebox.showerror("Error", f"Ошибка при включении visibility hack: {e}")
    
        def disable_visibility(self):
            try:
                signature = "41 ?? ?? ?? ?? 74 ?? 0f ?? ?? eb ?? 41 ?? ?? ?? ba ?? ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? e8 ?? ?? ?? ?? 8b ?? 49 ?? ?? e8 ?? ?? ???"
                address = self.aob_scan(self.pm, self.process_name, signature)
                if not address:
                    messagebox.showerror("Error", "Сигнатура не найдена")
                    return
                self.patch_memory(self.pm, address + 5, b"\x74")  # visibility_fully_revealed+5
                self.patch_memory(self.pm, address + 0x3D, b"\x74")  # visibility_fully_revealed+3D
                self.disable_visibility_button.config(state='disabled')
                self.enable_visibility_button.config(state='normal')
    
            except Exception as e:
                messagebox.showerror("Error", f"Ошибка при отключении visibility hack: {e}")
    
        def create_gui(self):
            self.root = tk.Tk()
            self.root.title("Settings")
    
            frame = tk.Frame(self.root)
            frame.pack(pady=10, padx=10)
    
            # HP settings
            tk.Label(frame, text="HP (%)").grid(row=1, column=0, padx=5, pady=5)
            self.heal_hp_entry = tk.Entry(frame)
            self.heal_hp_entry.grid(row=1, column=1, padx=5, pady=5)
            self.heal_hp_entry.insert(0, str(self.heal_hp))
    
            # MP settings
            tk.Label(frame, text="MP (%)").grid(row=2, column=0, padx=5, pady=5)
            self.heal_mp_entry = tk.Entry(frame)
            self.heal_mp_entry.grid(row=2, column=1, padx=5, pady=5)
            self.heal_mp_entry.insert(0, str(self.heal_mp))
    
            # Control buttons
            button_frame = tk.Frame(frame)
            button_frame.grid(row=3, column=0, columnspan=2, pady=10)
    
            self.start_button = tk.Button(button_frame, text="Start", command=self.start)
            self.start_button.pack(side=tk.LEFT, padx=5)
    
            self.stop_button = tk.Button(button_frame, text="Stop", command=self.stop, state='disabled')
            self.stop_button.pack(side=tk.LEFT, padx=5)
    
            # Zoom Hack Buttons
            zoom_frame = tk.Frame(frame)
            zoom_frame.grid(row=4, column=0, columnspan=2, pady=10)
    
            self.enable_zoom_button = tk.Button(zoom_frame, text="Enable Zoom Hack", command=self.enable_zoom)
            self.enable_zoom_button.pack(side=tk.LEFT, padx=5)
    
            self.disable_zoom_button = tk.Button(zoom_frame, text="Disable Zoom Hack", command=self.disable_zoom,
                                                 state='disabled')
            self.disable_zoom_button.pack(side=tk.LEFT, padx=5)
    
            # Visibility Hack Buttons
            visibility_frame = tk.Frame(frame)
            visibility_frame.grid(row=5, column=0, columnspan=2, pady=10)
    
            self.enable_visibility_button = tk.Button(visibility_frame, text="Enable Map Hack",
                                                      command=self.enable_visibility)
            self.enable_visibility_button.pack(side=tk.LEFT, padx=5)
    
            self.disable_visibility_button = tk.Button(visibility_frame, text="Disable Map Hack",
                                                       command=self.disable_visibility, state='disabled')
            self.disable_visibility_button.pack(side=tk.LEFT, padx=5)
    
        def run(self):
            self.root.mainloop()
    
    if __name__ == "__main__":
        bot = AutoBot()
        bot.run()
    Thanks for this , i read it even if i dont like python hahaha cool to see other way of doing it..

  4. Thanks PanCrucian (1 members gave Thanks to KronosQC for this useful post)
  5. #34
    KronosQC's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2024
    Posts
    49
    Thanks G/R
    2/16
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by XORReverseEngineering View Post
    Hi Kronos, thank you for your time, I found out that when you use a controller the pointer or the offsets are broken, I did not look further than the values from CE
    Ok i'm not using controller that may be why i havn't seen the difference..

  6. #35
    KronosQC's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2024
    Posts
    49
    Thanks G/R
    2/16
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by KronosDesign View Post
    I found a different pointer chain that works regardless of input mode and doesn't become invalid when swapping characters.
    (funny coincidence that my name is also kronos )

    Code:
    ptr_chain_local_player = [0x3B8DE78, 0x38, 0x0, 0x80, 0x2A8]
    offset_max_hp = 0x1DC
    offset_curr_hp = 0x1E0
    offset_max_mp = 0x22C
    offset_curr_mp = 0x230
    Does anyone have the offsets to InGameState and the entity array?
    Seems like the old pattern "48 8B F1 33 ED 48 39 2D" goes to the correct GameBase struct, but all the offsets are outdated.
    Cool i'll take a look with reclass.

  7. #36
    KronosQC's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2024
    Posts
    49
    Thanks G/R
    2/16
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This is what it looks like in reclass, just so you know

    test2.png

  8. #37
    segelij406's Avatar Member
    Reputation
    1
    Join Date
    Dec 2024
    Posts
    4
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm finding success writing stuff for myself using the python examples given here. How would one go about automating the timing for Perfect Strike or Snipe skills? Do we look for attack speed / time and do math or is there an address for a trigger?

  9. #38
    KronosQC's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2024
    Posts
    49
    Thanks G/R
    2/16
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    What is perfect strike or snipe skill can you show me an exemple?

    Edit: i only played the monk yet
    Last edited by KronosQC; 12-21-2024 at 03:11 AM.

  10. #39
    segelij406's Avatar Member
    Reputation
    1
    Join Date
    Dec 2024
    Posts
    4
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Snipe is a bow skill, Perfect Strike is a mace skill. Both of them are channeling and need to be released at a certain time, when they charge up, to cast an improved version. There's a support gem that shortens this timing window even further.

    Any ideas?

  11. #40
    KronosQC's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2024
    Posts
    49
    Thanks G/R
    2/16
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yeah there should be a way to find the adress for the skill related then you could modify how it react by changing bytes, but this might be considered a bannable offense if detected by ggg.

  12. #41
    segelij406's Avatar Member
    Reputation
    1
    Join Date
    Dec 2024
    Posts
    4
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm just hoping to automate it via reading, no modification. My ideas were to either look for the skills real cast time (so it accounts for slows and buffs) and find the timing point by calculation or find an address for the trigger window itself, if there is one - there is a changing animation at those points, so in theory there should be one. But so far i haven't found anything useful.

    Got any ideas to help me or maybe you could look into it?

  13. #42
    Emorrowdf's Avatar Member
    Reputation
    2
    Join Date
    Dec 2024
    Posts
    5
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Not to derail the thread, programmer but new to developing hacks. Are you guys using CE on poe2 to find the pointers? Without getting banned?

    I'll buy a spare account to fuck around with but ya.

    Been able to write my own using the pointers and offsets you provided but thats not where I want to get it from every time.
    Last edited by Emorrowdf; 12-21-2024 at 10:04 AM. Reason: Additional information

  14. #43
    KronosQC's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2024
    Posts
    49
    Thanks G/R
    2/16
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Emorrowdf View Post
    Not to derail the thread, programmer but new to developing hacks. Are you guys using CE on poe2 to find the pointers? Without getting banned?

    I'll buy a spare account to fuck around with but ya.

    Been able to write my own using the pointers and offsets you provided but thats not where I want to get it from every time.
    I'm using my own Undetected Cheat Engine that i compiled myself.. i don't know about any others one here

  15. #44
    paladinleon's Avatar Member
    Reputation
    1
    Join Date
    Dec 2024
    Posts
    5
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Sir May i ask how to open your the function which your Attached Images show
    i can only open CE tables which cant let me to auto heal

  16. #45
    KronosQC's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2024
    Posts
    49
    Thanks G/R
    2/16
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by paladinleon View Post
    Sir May i ask how to open your the function which your Attached Images show
    i can only open CE tables which cant let me to auto heal
    This is only a way to use pointers to make your own auto potion using memory reading from the game, but the CE table i provided will not allow you to auto heal from the ce script.

Page 3 of 8 FirstFirst 1234567 ... LastLast

Similar Threads

  1. [Buying] I want to buy a software that can be used in the multiplayer robot hall, and I want
    By xiaolang947185 in forum Call of Duty Buy Sell Trade
    Replies: 0
    Last Post: 01-18-2021, 07:05 AM
  2. experience to be used in bgs?
    By omg123 in forum WoW PvP & Battlegrounds
    Replies: 2
    Last Post: 11-12-2008, 02:00 AM
  3. Fun dueling exploit (can only be used in shattrath)
    By gibberish in forum World of Warcraft Exploits
    Replies: 6
    Last Post: 01-16-2008, 10:16 PM
  4. Guide to be cool in WoW
    By Datonking in forum World of Warcraft Guides
    Replies: 4
    Last Post: 10-03-2006, 05:27 PM
All times are GMT -5. The time now is 04:27 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search