Здраствуйте я столкнулся с проблемой при попытке прочитать сущности в entity list. Я использую Python и библиотеку Pymem.
У меня постоянно то ли адрес не валидный или происходит ошибка 299.
У меня постоянно то ли адрес не валидный или происходит ошибка 299.
Python:
import json
import pymem.exception
from memory.memory import MemoryManipulator
mm = MemoryManipulator("hl2.exe", "client.dll")
with open(r"C:\Users\kayim\PycharmProjects\CSSTrolling\memory\offsets.json") as f:
offsets = json.load(f)
m_iHealth = int(offsets["C_CSPlayer"]["m_iHealth"], 16)
pos_x = int(offsets["C_CSPlayer"]["position_x"], 16)
pos_y = int(offsets["C_CSPlayer"]["position_y"], 16)
pos_z = int(offsets["C_CSPlayer"]["position_z"], 16)
def is_valid_address(addr):
return 0x10000 < addr < 0x7FFFFFFF
def get_all_coordinates():
max_player = 64
step = 0x4
entity_list_ptr_addr = int(offsets["global"]["entity_list"][1], 16)
entity_list_ptr = mm.read(entity_list_ptr_addr, "longlong")
for i in range(max_player):
try:
entity_ptr_addr = entity_list_ptr + i * step
entity = mm.read(entity_ptr_addr, "int")
if not is_valid_address(entity):
print(f"[{i}] Невалидный entity ptr: {hex(entity) if entity else 'NULL'}")
continue
try:
hp = mm.read(entity + m_iHealth, "int")
x = mm.read(entity + pos_x, "float")
y = mm.read(entity + pos_y, "float")
z = mm.read(entity + pos_z, "float")
print(f"[{i}] HP: {hp} | Координаты: {x}, {y}, {z}")
except Exception as e:
print(f"[{i}] Ошибка чтения полей: {e}")
except pymem.exception.MemoryReadError as e:
print(f"[{i}] Ошибка чтения entity: {e}")
get_all_coordinates()