Сейчас на форуме: tyns777, bezumchik, Lohmaty (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Как это сделать в игре?
Посл.ответ Сообщение

Ранг: 7.2 (гость)
Активность: 0.07=0.07
Статус: Участник

Создано: 03 марта 2019 13:29 · Поправил: Simcher
· Личное сообщение · #1

В игре есть диалоговые окна с НПС, в диалог можно войти с расстояния до 4-х клеток, если дальше, то персонаж сначала подбежит вплотную к НПС, а потом появится диалог.
Вопрос, как сделать так, чтобы диалоги открывались с любого расстояния?
Я точно знаю, что это не привязано к серверу, поскольку с спидхаком можно быстрее получать диалог.
Прикрепил видео, чтобы было понятнее.
https://youtu.be/mWtR-38p82c




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 03 марта 2019 13:39
· Личное сообщение · #2

Измеряется расстояние между тобой и нпс, если оно меньше или равно порогу, то запускается диалог, иначе планируется перемещение в точку и затем вызов диалога.
Проще всего найти где диалог вызывается и копать в обратную сторону.
На шару никак не выйдет если не знаешь точное значение этого порога, чтобы его изменить.
П.С. клетки это все условно, там трехмерные вектора с float значениями.

-----
В облачке многоточия




Ранг: 3.1 (гость)
Активность: 0.020.01
Статус: Участник

Создано: 03 марта 2019 14:08 · Поправил: LShadow77
· Личное сообщение · #3

Запускешь игру под отладчиком, дожидаешься появления диалога, далее - break, и раскручиваешь стек до того момента, пока не наткнёшься на условный переход, по которому диалоговое окно либо появляется, либо нет. Затем изучаешь условия, мониторишь содержимое регистров и памяти по соответствующим адресам, меняешь что-то прямо в отладчике, после чего продолжаешь игру и смотришь что получилось (или не получилось)...



Ранг: 7.2 (гость)
Активность: 0.07=0.07
Статус: Участник

Создано: 03 марта 2019 14:09
· Личное сообщение · #4

1 - Когда я нахожусь далеко от НПС и хочу войти в диалог выполняется сначала 1 инструкция, потом вторая, когда я уже подошёл и открылось окно.
2 - Если же я нахожусь в пороге и вхожу в диалог, выполняется только первая инструкция.
Что мне нужно сделать?
------------------
1:


2:




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 03 марта 2019 14:23 · Поправил: Boostyq
· Личное сообщение · #5

Simcher пишет:
Что мне нужно сделать?

Скинуть сюда главные бинарник игры, посмотрю.

-----
В облачке многоточия




Ранг: 3.1 (гость)
Активность: 0.020.01
Статус: Участник

Создано: 03 марта 2019 14:25 · Поправил: LShadow77
· Личное сообщение · #6

Как вариант, изменить je на jmp и посмотреть, что получится. Одним словом, нужно экспериментировать.



Ранг: 7.2 (гость)
Активность: 0.07=0.07
Статус: Участник

Создано: 03 марта 2019 14:35
· Личное сообщение · #7

Вот бинарник - https://dropmefiles.com/aC4E9
LShadow77, менял, никакого эффекта, я подозреваю, что мог найти не то, что нужно.




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 03 марта 2019 14:53
· Личное сообщение · #8

Если вы локализовали место верно, то по адресу 6C4659 сериализуется и отправляется пакет, в котором вроде собираются ваши координаты, я это все о том, что сервер может проверить с какого реально расстояния вы запрашиваете диалог, т.е. если я ничего не путаю, то придется патчить еще и ее.

-----
В облачке многоточия




Ранг: 7.2 (гость)
Активность: 0.07=0.07
Статус: Участник

Создано: 03 марта 2019 15:33
· Личное сообщение · #9

Вчера целый день экспериментировал, заметил такое: когда один из jne меняешь на nop перестаёт браться диалог.




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 03 марта 2019 16:00 · Поправил: Boostyq
· Личное сообщение · #10

Simcher пишет:
целый день экспериментировал

Чего тут экспериментировать у вас же пдбшка на скрине.
NGELocalHero+0x104 - это актор с которым вы собираетесь говорить
Актор+0x5C - это его координаты в мире (float xzy), если он недосягаем то отправляется пакет следования до его координат.
По 006C4648 планируется контакт, когда ты до него дойдешь, а по 006C4698 непосредственно отправка пакета для следования до него, а 414870 это функа которая отправляет пакет торговли.

-----
В облачке многоточия





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 03 марта 2019 16:02
· Личное сообщение · #11

Чем например вот это сравнение с 4.0 не проверка расстояния в 4 клетки перед CActionTrade?


-----
2 оттенка серого


| Сообщение посчитали полезным: Simcher


Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 марта 2019 16:22
· Личное сообщение · #12

а если НПС больше одного ?
диалог к какому должен будет открываться ?
расстояние 4 клетки видимо максимальное расстояние между ними




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 03 марта 2019 16:23
· Личное сообщение · #13

reversecode пишет:
а если НПС больше одного ?

Он не может кликнуть в нескольких нпц, это ж наверное рпг. Клик, проверка 4 ли метра, если да открыть диалог, если нет, бежать.

-----
2 оттенка серого





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 марта 2019 16:26
· Личное сообщение · #14

он один на всю карту или на всю область видимости ?
а может они сразу все на всю игру и игра только клетками измеряется
как вычислять на какой будет акшин если убрать лимит в 4 ?




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 03 марта 2019 16:28
· Личное сообщение · #15

reversecode пишет:
он один на всю карту или на всю область видимости ?

Наверное при клике выбираются координаты выбранного объекта и по теореме Пифагора берется расстояние, как лимит повлияет на акшин?

-----
2 оттенка серого





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 марта 2019 16:31
· Личное сообщение · #16

там событие только на объекте ?
я так понял на любом месте карты в пределах 4 клеток




Ранг: 90.1 (постоянный), 91thx
Активность: 0.290.56
Статус: Участник

Создано: 03 марта 2019 16:34 · Поправил: Boostyq
· Личное сообщение · #17

reversecode пишет:
он один на всю карту

Вы на него клацаете мышкой и уже его указатель идет в функцию 6C4520 (ebp+8), далее в зависимости от типа взаимодействия (ebp+10) происходят проверки и отправки нужных пакетов, например для типа 4 (trade) проверится расстояние, если вы близко то пакет о трейде, если нет, то планирование трейда + пакет следования по координатам актора.
Сам актор наверное вычисляется по координатам клика где-то выше (т.к. игра видимо псевдотрехмерная), перед вызовом этой вирт функи.
П.С. для Simcher сама проверка по адресу 006C428B как написал f13nd, вам нужно заменить jp на nop, но не факт что сервер это скушает, он наверняка знает координаты нпц и может вести логи.

-----
В облачке многоточия





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 03 марта 2019 16:55
· Личное сообщение · #18

Boostyq пишет:
он наверняка знает координаты нпц и может вести логи

Там в первом посте сказано, что спидхак в игре работает, разработчики еще не пуганые читерами. В рпг вроде больше стремятся тюнинговать глобал кулдаун абилок, если сервер это не контролирует или хотя бы расстояние до врага, чтоб милишными абилками бить. Но расстояние для взаимодействия с нпц?..

-----
2 оттенка серого




Ранг: 7.2 (гость)
Активность: 0.07=0.07
Статус: Участник

Создано: 04 марта 2019 17:48
· Личное сообщение · #19

Всем спасибо большое!
Совет от f13nd помог.
Заменил 4.0 на 256 и теперь с конца локи могу брать диалог!
У меня есть вопрос, можно ли ещё сделать по типу этого?
Торговать, например, не получается даже со спидхаком, надо, чтобы перс реально подошёл к НПС.




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 04 марта 2019 18:33
· Личное сообщение · #20

Simcher пишет:
Tорговать, например, не получается даже со спидхаком, надо, чтобы перс реально подошёл к НПС.

Возможно дистанцию для торговли как раз сервак контролирует. Если ты поменял само значение flt_77FB24, оно должно было и дистанцию атаки до 256 увеличить. Если этого не произошло, значит сервак перепроверил.

-----
2 оттенка серого



 eXeL@B —› Вопросы новичков —› Как это сделать в игре?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати