• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Исходник Dota 2 External Python

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
18 Ноя 2018
Сообщения
21
Реакции
8
Всем привет! Решил я немного поэкспериментировать с дотой, и захотел поделится этим чудом с такими-же неучами как и я.
Уверен что можно было сделать намного проще но думаю что для кого-то это будет полезным т.к. инфы и исходников почти 0.

Есть готовое смещение на хп объекта, остальное легко найти по адресу объекта.

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


1662586224698.png


Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
Эт не ты ли спрашивал у нас в дсе?

1662727227490.png
 
Запоздал я конечно немного с реакцией на тред, но тем не менее, так держать, отличный сурс!
Однако до алгебры и геометрии тут очевидно далековато, впрочем и без матриц всё почти работает правильно, так что чего жаловаться

Тем не менее, раз идешь путем меньшего сопротивления, то постарайся сделать такой же результат. Немного поправил математику, не идеально, но уже лучше

Стоит понимать, что в Доте при виде сверху, камера - это трапеция, т.е нормальное положение будет только у тех объектов, которые оказались по середине экрана на средней линии, остальные же получат сумасшедшие искажения по всем осям. Это заметно даже на скриншоте по тому, что только герои на средней линии имеют координаты в ногах, у других же, они сдвинуты

Максимальный FOV в доте - 1.(7), мин - 1.1, вообще максимальный FOV по Y - 2.2, но тогда придется перестраивать вычисления и вообще это всё очень долго, так что сочтём за погрешность

Вот код коррекции X и Y координаты, конечно же есть ещё, что можно улучишть
Python:
Expand Collapse Copy
#Генерация графика перехода
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


Вот собственно говоря результат, как я уже говорил - не идеально, но с этим уже можно работать и даже попробовать написать какой - нибудь автокаст:
Снимок.PNG
 
Запоздал я конечно немного с реакцией на тред, но тем не менее, так держать, отличный сурс!
Однако до алгебры и геометрии тут очевидно далековато, впрочем и без матриц всё почти работает правильно, так что чего жаловаться

Тем не менее, раз идешь путем меньшего сопротивления, то постарайся сделать такой же результат. Немного поправил математику, не идеально, но уже лучше

Стоит понимать, что в Доте при виде сверху, камера - это трапеция, т.е нормальное положение будет только у тех объектов, которые оказались по середине экрана на средней линии, остальные же получат сумасшедшие искажения по всем осям. Это заметно даже на скриншоте по тому, что только герои на средней линии имеют координаты в ногах, у других же, они сдвинуты

Максимальный FOV в доте - 1.(7), мин - 1.1, вообще максимальный FOV по Y - 2.2, но тогда придется перестраивать вычисления и вообще это всё очень долго, так что сочтём за погрешность

Вот код коррекции X и Y координаты, конечно же есть ещё, что можно улучишть
Python:
Expand Collapse Copy
#Генерация графика перехода
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


Вот собственно говоря результат, как я уже говорил - не идеально, но с этим уже можно работать и даже попробовать написать какой - нибудь автокаст:
Посмотреть вложение 223055
а как это запустить?)
 
Назад
Сверху Снизу