- 20.06.2022
- 27 024
- 230
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1
Есть готовое смещение на хп объекта, остальное легко найти по адресу объекта.
Для работы используйте режим в окне 1600x900.
Стоит понимать, что в Доте при виде сверху, камера - это трапеция, т.е нормальное положение будет только у тех объектов, которые оказались по середине экрана на средней линии, остальные же получат сумасшедшие искажения по всем осям. Это заметно даже на скриншоте по тому, что только герои на средней линии имеют координаты в ногах, у других же, они сдвинуты
Максимальный FOV в доте - 1.(7), мин - 1.1, вообще максимальный FOV по Y - 2.2, но тогда придется перестраивать вычисления и вообще это всё очень долго, так что сочтём за погрешность
Вот код коррекции X и Y координаты, конечно же есть ещё, что можно улучшить
Вот собственно говоря результат, как я уже говорил - не идеально, но с этим уже можно работать и даже попробовать написать какой - нибудь автокаст:

Для работы используйте режим в окне 1600x900.

Python:
import pymem
import pymem.process
from externaloverlayrep import Overlay
entilist = []
overlay = Overlay('Dota 2', 0.0001)
dota = pymem.Pymem("dota2.exe")
client = pymem.process.module_from_name(dota.process_handle, "client.dll")
client = client.lpBaseOfDll
offset_entity = 0x3B944B0
offset_hp = 0x324
offset_entity_x = 0x13F8
offset_entity_y = 0x13FC
offset_entity_z = 0x1400
offset_cam_x = 0x39D0750
offset_cam_y = 0x39D0754
def entity_finder():
elist = dota.read_longlong(client + offset_entity)
for i in range(1, 5000):
try:
entity = dota.read_longlong(elist + i * 0x04)
if len(str(entity)) > 8 and len(str(entity)) <= 13:
entilist.append(entity)
except Exception as error:
# print(error)
pass
print(entilist)
main()
def main():
while True:
camera_x = dota.read_float(client + offset_cam_x)
camera_y = dota.read_float(client + offset_cam_y)
# print(hex(client + offset_cam_y))
for entity in entilist:
try:
hp = dota.read_int(entity + offset_hp)
# print(hp)
entity_x = dota.read_float(entity + offset_entity_x)
entity_y = dota.read_float(entity + offset_entity_y)
entity_z = dota.read_float(entity + offset_entity_z)
o_entity_x = (entity_x - camera_x) / 1.7 + 750
o_entity_y = (camera_y + 600 - entity_y) / 2 + 450
if o_entity_x < 1920 and o_entity_y < 1080:
overlay.draw_text(f'[{hex(entity)}]', ('Arial', 16), o_entity_x, o_entity_y, (0, 255, 0), False)
# overlay.draw_text(f'x [{entity_x}] y [{entity_y}]', ('Ebrima', 14), o_entity_x, o_entity_y + 20, (0, 255, 0), False)
overlay.draw_text(f'cam_x: {int(camera_x)} | cam_y: {int(camera_y)}', ('Ebrima', 20), 15, 50, (255, 255, 255), False)
except Exception:
# print(hex(entity))
pass
overlay.update_overlay()
if __name__ == "__main__":
entity_finder()
Стоит понимать, что в Доте при виде сверху, камера - это трапеция, т.е нормальное положение будет только у тех объектов, которые оказались по середине экрана на средней линии, остальные же получат сумасшедшие искажения по всем осям. Это заметно даже на скриншоте по тому, что только герои на средней линии имеют координаты в ногах, у других же, они сдвинуты
Максимальный FOV в доте - 1.(7), мин - 1.1, вообще максимальный FOV по Y - 2.2, но тогда придется перестраивать вычисления и вообще это всё очень долго, так что сочтём за погрешность
Вот код коррекции X и Y координаты, конечно же есть ещё, что можно улучшить
Python:
#Генерация графика перехода
u = []
x = 1.0
for i in range(0,1080):
u.append(x)
x+= 0.78/1080
# e - entity, c - camera
x = (e_x-c_x)/1.78 + 1920/2
y = (c_y+560-e_y)/1.78 + 1080/2
#Преобразование Y координаты
if y >= (c_y + 560 - e_y) + 1080 / 2:
y = (c_y + 560 - e_y) / 1.78 + 1080 / 2 #Для координат до средней линеей
else:
y = (c_y + 560 - e_y) / 1.2 + 1080 / 2 #Для координат после средней линеей
#Преобразование X координаты с помощью Y
x = (e_x - c_x) / u[-int(y)] + 1920 / 2
Вот собственно говоря результат, как я уже говорил - не идеально, но с этим уже можно работать и даже попробовать написать какой - нибудь автокаст:

Последние темы в этом разделе:
- dota 2 offset dumper - 2025 Для патча 7.38
- Чит Free dota 2 cheat для патча 7.38
- Скрипт Усиление повторения мыши для hake.me
- Скрипт автоматической покупки вардов и сентри каждые 30 секунд для hake.me
- Скрипт Ranged Attack Effect для hake.me
- Скрипт Unit Manager (Jungle, Cut waves, Illusion Juke) для hake.me
- Чит Toolkit Particles для hake.me
- Скрипт Auto Max Blink для hake.me
- Скрипт Monkey King's Tree Dance Helper для hake.me
- Скрипт Alternative Health Indicators для hake.me