Вопрос Хук на начало анимации Спелов И их таргет/область

Начинающий
Статус
Оффлайн
Регистрация
27 Май 2020
Сообщения
15
Реакции[?]
2
Поинты[?]
0
Каким образом работают доджеры (напимер додж рп мантой) ?
Особенно интересуют способности без проджектайлов. Потому что хуки на создание проджектайла и уничтожение у меня есть вместе с таргетом в аргументах.


Есть так же функция которая вызывается когда герой начинает атаковать. C_TEUnitAnimation::RunUnitAnimation
но по ней нельзя узнать таргет в который замахивается юнит. Например чтобы увернуться от атаки ближнего боя или для автоластхитера было бы неплохо знать таргет атаки во время замаха.
По углу определять во первых очень неточно (юниты могут стоять друг за другом), во 2 герой например может замахиваться во время поворота.

Еще очень интересно как доджер ульта Од работает. Потому что у спела нет проджектайла и он работает по области. Т.е. можно ли узнать эту область в которую игрок применил спелл ?

Самое сложное наверно это доджер для койлов сфа, потому что герой может кастовать их во время поворота и у них нет таргета.

Есть ли функции. которые отвечают за начало анимации cпела ? в С_Dota_BaseAbility ничего такого не нашел.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
(все это теория не тестил но наверно это даст тебе какието идеи)
все это должно быть в animationsystem.dll, почекай dylib. у аое спеллов типа ульта од купола войда и т.д. хз есть ли возможность получить точку куда спелл нажат, но можно предсказать. если у тебя есть чужие читы с доджерами, попробуй там кастануть тот же ульт од но не конкретно в своего героя а рядом, и узнаешь, можно ли получить точку каста или они просто предсказывают(ну то есть будет овал от позиция_од - радиус_ульты до позиция_од + каст_рейндж_ульты+радиус_ульты).
доджер койлов сфа изи. берешь направление куда он смотрит(Entities.GetForward джаваскриптовый реверси), берешь рейндж койла, берешь радиус койла и вот тебе окружность где будет койл. проверяешь будет ли герой в окружности и доджишь если надо. сф не может кастовать койл во время поворота. пока у него идет анимация он не поворачивается и не движется. реальный вопрос в том, когда именно доджить(то есть не просто как только началась анимация, а когда она закончилась)
по поводу атаки, два юнита вряд ли будут стоять друг за другом прямо ровно-прировно. берешь коорды врага делаешь из его переднего направления прямую линию и чекаешь чьи координаты пересекает эта линия и вот тебе его таргет. поворот это не проблема потому что при повороте атакуемого юнита атакующий юнит точно так же будет поворачиваться и его переднее направление сново будет пересекать коорды врага. в общем математика тебе в помощь. а вопрос о том можно ли получить точку каста аое спелла остается открытым. поищи еще в dylibе у абилки может там есть такая функция
 
Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,385
Реакции[?]
2,286
Поинты[?]
191K
В доте не шарю от слова совсем, но...

Если я всё правильно понял, то ты можешь попробовать получать угол именно летящего снаряда и исходя уже из него что-то делать.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
В доте не шарю от слова совсем, но...

Если я всё правильно понял, то ты можешь попробовать получать угол именно летящего снаряда и исходя уже из него что-то делать.
со снарядами там все просто у них таргет есть, он уже разобрался с ними
 
Начинающий
Статус
Оффлайн
Регистрация
27 Май 2020
Сообщения
15
Реакции[?]
2
Поинты[?]
0
(все это теория не тестил но наверно это даст тебе какието идеи)
все это должно быть в animationsystem.dll, почекай dylib. у аое спеллов типа ульта од купола войда и т.д. хз есть ли возможность получить точку куда спелл нажат, но можно предсказать. если у тебя есть чужие читы с доджерами, попробуй там кастануть тот же ульт од но не конкретно в своего героя а рядом, и узнаешь, можно ли получить точку каста или они просто предсказывают(ну то есть будет овал от позиция_од - радиус_ульты до позиция_од + каст_рейндж_ульты+радиус_ульты).
доджер койлов сфа изи. берешь направление куда он смотрит(Entities.GetForward джаваскриптовый реверси), берешь рейндж койла, берешь радиус койла и вот тебе окружность где будет койл. проверяешь будет ли герой в окружности и доджишь если надо. сф не может кастовать койл во время поворота. пока у него идет анимация он не поворачивается и не движется. реальный вопрос в том, когда именно доджить(то есть не просто как только началась анимация, а когда она закончилась)
по поводу атаки, два юнита вряд ли будут стоять друг за другом прямо ровно-прировно. берешь коорды врага делаешь из его переднего направления прямую линию и чекаешь чьи координаты пересекает эта линия и вот тебе его таргет. поворот это не проблема потому что при повороте атакуемого юнита атакующий юнит точно так же будет поворачиваться и его переднее направление сново будет пересекать коорды врага. в общем математика тебе в помощь. а вопрос о том можно ли получить точку каста аое спелла остается открытым. поищи еще в dylibе у абилки может там есть такая функция
В animationsystem.dylib ничего такого нет, там все что касается именно низкоуровневой анимации. А эти вещи мне кажется должны быть в client.dll
По поводу C_TEUnitAnimation::RunUnitAnimation я ошибался на самом деле она не только на анимацию атаки вызывается, а на многие спелы, но не на все. Например на кол акса не вызывается. И я тестил в двух читах в hake.me и в minority. Первый доджит кол акса мантой, второй нет.

Так же по поводу таргета и области ничего такого нет, все вычисляется приблизительно у обоих читов.
Койлы сфа кастуются в развороте. Можешь проветить накидать ему стаки бэтрайдера за спину нажать двигаться и сразу койл. Наглядно видно будет.
Понятно что можно уже на конце анимации смотреть навправление, я имел ввиду что то вроде dodge by move чтобы герой отходил из зоны койла который кастуется ногами.

Если не секрет где нашел ссылку на все dylibы c символами ? На uc были только client server и еще несколько.
Ничего что касается этих бинарников нагуглить не получается.
Хочу найти точную дату когда они случайно залили с символами и найти в steamdb
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
В animationsystem.dylib ничего такого нет, там все что касается именно низкоуровневой анимации. А эти вещи мне кажется должны быть в client.dll
По поводу C_TEUnitAnimation::RunUnitAnimation я ошибался на самом деле она не только на анимацию атаки вызывается, а на многие спелы, но не на все. Например на кол акса не вызывается. И я тестил в двух читах в hake.me и в minority. Первый доджит кол акса мантой, второй нет.

Так же по поводу таргета и области ничего такого нет, все вычисляется приблизительно у обоих читов.
Койлы сфа кастуются в развороте. Можешь проветить накидать ему стаки бэтрайдера за спину нажать двигаться и сразу койл. Наглядно видно будет.
Понятно что можно уже на конце анимации смотреть навправление, я имел ввиду что то вроде dodge by move чтобы герой отходил из зоны койла который кастуется ногами.

Если не секрет где нашел ссылку на все dylibы c символами ? На uc были только client server и еще несколько.
Ничего что касается этих бинарников нагуглить не получается.
Хочу найти точную дату когда они случайно залили с символами и найти в steamdb
уже не помню где нашел ссылку на dylibы.
про койлы сфа не знал. ну там по сути берешь касттайм койла(0.55 сек судя по вики) и скорость поворота и предсказываешь собсна. я щас кинул змейку медузы и 10 стаков бетрайдера нажимаю клик за спину и койл и он не успевает до конца назад повернуться и кастует койл на 35% повернувшись от начального направления гдет. так что скорость поворота * скорость анимации и вот тебе точка. ну и еще стоит учитывать длительность дебафов(ну змейка медузы или стаки бетрайдера закончатся посреди каста например) + фазы если юзнет пересчитать точку еще раз.
анимации значит да, ищи в client.dylib если их нету в animationsystem.dylib.
есть еще у C_DOTABaseAbility m_bInAbilityPhase которая в единичку ставится когда замахиваешься абилкой, я так дерьмододжер делал на джаваскрипте когда он еще в пабе работал. но это юзлес наверно потому что ты время замаха через нее вряд ли получишь,хотя наверно можно как-то. ну посмотришь если захочешь
 
Начинающий
Статус
Оффлайн
Регистрация
27 Май 2020
Сообщения
15
Реакции[?]
2
Поинты[?]
0
уже не помню где нашел ссылку на dylibы.
про койлы сфа не знал. ну там по сути берешь касттайм койла(0.55 сек судя по вики) и скорость поворота и предсказываешь собсна. я щас кинул змейку медузы и 10 стаков бетрайдера нажимаю клик за спину и койл и он не успевает до конца назад повернуться и кастует койл на 35% повернувшись от начального направления гдет. так что скорость поворота * скорость анимации и вот тебе точка. ну и еще стоит учитывать длительность дебафов(ну змейка медузы или стаки бетрайдера закончатся посреди каста например) + фазы если юзнет пересчитать точку еще раз.
анимации значит да, ищи в client.dylib если их нету в animationsystem.dylib.
есть еще у C_DOTABaseAbility m_bInAbilityPhase которая в единичку ставится когда замахиваешься абилкой, я так дерьмододжер делал на джаваскрипте когда он еще в пабе работал. но это юзлес наверно потому что ты время замаха через нее вряд ли получишь,хотя наверно можно как-то. ну посмотришь если захочешь
Понял, спасибо !
 
Сверху Снизу