Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Скрипт взятия hp

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
5 Ноя 2025
Сообщения
12
Реакции
0
import pymem.process
import time

pm = pymem.Pymem("dota2.exe")
client = pymem.process.module_from_name(pm.process_handle, "client.dll")
base = client.lpBaseOfDll

OFF_ENT_LIST = 0x5824C60
OFF_LOCAL = 0x5734D28
OFF_HP = 0x32C

def safe_read_ptr(addr):
try:
val = pm.read_longlong(addr)
return val if 0x100000 < val < 0x7FFFFFFFFFFF else 0
except:
return 0

def find_working_chain():

ent_base = safe_read_ptr(base + OFF_ENT_LIST)
loc_base = safe_read_ptr(base + OFF_LOCAL)

print(f" dwEntityList -> {hex(ent_base)}")
print(f" dwLocalPlayer -> {hex(loc_base)}")


if ent_base:
arr = safe_read_ptr(ent_base + 0x10)
if arr:
ident = safe_read_ptr(arr)
if ident:
ent = safe_read_ptr(ident + 0x10)
if ent:
hp = pm.read_int(ent + OFF_HP)
if 0 < hp < 10000:
print(f"{hex(ent)}, HP: {hp}")
return ent

if loc_base:
if 0 < hp < 10000:
print(f"HP: {hp}")
return loc_base


if ent_base:
arr = safe_read_ptr(ent_base + 0x10)
if arr:
max_hp, best_ent = 0, 0
for i in range(500):
ident = safe_read_ptr(arr + i * 8)
if not ident: continue
ent = safe_read_ptr(ident + 0x10)
if not ent: continue
hp = pm.read_int(ent + OFF_HP)
if hp > max_hp and hp < 10000:
max_hp, best_ent = hp, ent
if best_ent:
print(f" {hex(best_ent)}, HP: {max_hp}")
return best_ent

return 0

def main():
my_hero = find_working_chain()
if not my_hero:
return

while True:
try:
hp = pm.read_int(my_hero + OFF_HP)
print(f" {hp} ", end="", flush=True)

if hp <= 0:
time.sleep(2)
my_hero = find_working_chain()
if not my_hero: break
except:
pass
time.sleep(0.1)

if __name__ == "__main__":
main() я не понимаю в чем прикол посему мне все время выдает --
 
import pymem.process
import time

pm = pymem.Pymem("dota2.exe")
client = pymem.process.module_from_name(pm.process_handle, "client.dll")
base = client.lpBaseOfDll

OFF_ENT_LIST = 0x5824C60
OFF_LOCAL = 0x5734D28
OFF_HP = 0x32C

def safe_read_ptr(addr):
try:
val = pm.read_longlong(addr)
return val if 0x100000 < val < 0x7FFFFFFFFFFF else 0
except:
return 0

def find_working_chain():

ent_base = safe_read_ptr(base + OFF_ENT_LIST)
loc_base = safe_read_ptr(base + OFF_LOCAL)

print(f" dwEntityList -> {hex(ent_base)}")
print(f" dwLocalPlayer -> {hex(loc_base)}")


if ent_base:
arr = safe_read_ptr(ent_base + 0x10)
if arr:
ident = safe_read_ptr(arr)
if ident:
ent = safe_read_ptr(ident + 0x10)
if ent:
hp = pm.read_int(ent + OFF_HP)
if 0 < hp < 10000:
print(f"{hex(ent)}, HP: {hp}")
return ent

if loc_base:
if 0 < hp < 10000:
print(f"HP: {hp}")
return loc_base


if ent_base:
arr = safe_read_ptr(ent_base + 0x10)
if arr:
max_hp, best_ent = 0, 0
for i in range(500):
ident = safe_read_ptr(arr + i * 8)
if not ident: continue
ent = safe_read_ptr(ident + 0x10)
if not ent: continue
hp = pm.read_int(ent + OFF_HP)
if hp > max_hp and hp < 10000:
max_hp, best_ent = hp, ent
if best_ent:
print(f" {hex(best_ent)}, HP: {max_hp}")
return best_ent

return 0

def main():
my_hero = find_working_chain()
if not my_hero:
return

while True:
try:
hp = pm.read_int(my_hero + OFF_HP)
print(f" {hp} ", end="", flush=True)

if hp <= 0:
time.sleep(2)
my_hero = find_working_chain()
if not my_hero: break
except:
pass
time.sleep(0.1)

if __name__ == "__main__":
main() я не понимаю в чем прикол посему мне все время выдает --
сука вот вам так трудно всем сука нажать одну кнопку чтобы код стилизовать, а не по пидорски текстом отправлять?

код:
Expand Collapse Copy
#вот так сука
while True:
    (print"иди нахуй")
 
сука вот вам так трудно всем сука нажать одну кнопку чтобы код стилизовать, а не по пидорски текстом отправлять?

код:
Expand Collapse Copy
#вот так сука
while True:
    (print"иди нахуй")
код:
Expand Collapse Copy
import pymem
import pymem.process
import time

pm = pymem.Pymem("dota2.exe")
client = pymem.process.module_from_name(pm.process_handle, "client.dll")
base = client.lpBaseOfDll


OFFSET_ENTITY_LIST = 0x5824C60 
OFFSET_HP = 0x34C  

def find_my_hero():
 try:
        entity_list_ptr = pm.read_longlong(base + OFFSET_ENTITY_LIST)
 if not entity_list_ptr:
 return 0
            
        max_hp = 0
        best_entity = 0

for i in range(1, 500):
for step in [0x10, 0x8]:
 try:
                    entity = pm.read_longlong(entity_list_ptr + i * step)

if 0x1000000000 < entity < 0x7FFFFFFFFFFF:
                        hp = pm.read_int(entity + OFFSET_HP)
                        
 except:
continue
                    
 if best_entity:
print(f"{hex(best_entity)} {max_hp}")
 return best_entity
            
except Exception as e:
print(f"{e}")
        
 return 0

def main():

    my_hero = find_my_hero()

    
while True:
            hp = pm.read_int(my_hero + OFFSET_HP)
print(f" {hp}    ", end="", flush=True)
            
 if hp <= 0:
                time.sleep(2)
                my_hero = find_my_hero()
if not my_hero: break
                

if __name__ == "__main__":
    main()
)
сука вот вам так трудно всем сука нажать одну кнопку чтобы код стилизовать, а не по пидорски текстом отправлять?

код:
Expand Collapse Copy
#вот так сука
while True:
    (print"иди нахуй")
прости я просто два дня всего сижу тут
 
import pymem.process
import time

pm = pymem.Pymem("dota2.exe")
client = pymem.process.module_from_name(pm.process_handle, "client.dll")
base = client.lpBaseOfDll

OFF_ENT_LIST = 0x5824C60
OFF_LOCAL = 0x5734D28
OFF_HP = 0x32C

def safe_read_ptr(addr):
try:
val = pm.read_longlong(addr)
return val if 0x100000 < val < 0x7FFFFFFFFFFF else 0
except:
return 0

def find_working_chain():

ent_base = safe_read_ptr(base + OFF_ENT_LIST)
loc_base = safe_read_ptr(base + OFF_LOCAL)

print(f" dwEntityList -> {hex(ent_base)}")
print(f" dwLocalPlayer -> {hex(loc_base)}")


if ent_base:
arr = safe_read_ptr(ent_base + 0x10)
if arr:
ident = safe_read_ptr(arr)
if ident:
ent = safe_read_ptr(ident + 0x10)
if ent:
hp = pm.read_int(ent + OFF_HP)
if 0 < hp < 10000:
print(f"{hex(ent)}, HP: {hp}")
return ent

if loc_base:
if 0 < hp < 10000:
print(f"HP: {hp}")
return loc_base


if ent_base:
arr = safe_read_ptr(ent_base + 0x10)
if arr:
max_hp, best_ent = 0, 0
for i in range(500):
ident = safe_read_ptr(arr + i * 8)
if not ident: continue
ent = safe_read_ptr(ident + 0x10)
if not ent: continue
hp = pm.read_int(ent + OFF_HP)
if hp > max_hp and hp < 10000:
max_hp, best_ent = hp, ent
if best_ent:
print(f" {hex(best_ent)}, HP: {max_hp}")
return best_ent

return 0

def main():
my_hero = find_working_chain()
if not my_hero:
return

while True:
try:
hp = pm.read_int(my_hero + OFF_HP)
print(f" {hp} ", end="", flush=True)

if hp <= 0:
time.sleep(2)
my_hero = find_working_chain()
if not my_hero: break
except:
pass
time.sleep(0.1)

if __name__ == "__main__":
main() я не понимаю в чем прикол посему мне все время выдает --
У тебя оффсеты устарели. Сигнатуру сделай, иначе будешь каждое обновление мучатся.
 
Назад
Сверху Снизу