Сохраняешь в выделенной памяти клиента три переменные флоат x.z.y подряд. На первую указываешь в Param_add
Ну раз на делфи, значит, примеры подходят. еще почитай [Ссылки могут видеть только зарегистрированные пользователи. ]. Когда то этот гайд пытались перевести на русский, поищи, если не понятно.
Последний раз редактировалось sumikot; 06.08.2012 в 10:47.
Добавлено через 51 минуту
а как узнать собственные координаты? вот через смещения смотрю
ReadProcessMemory(hProcess,Ptr($A571E0),@buf,4,s);
ReadProcessMemory(hProcess,Ptr(buf+$1c),@buf,4,s);
ReadProcessMemory(hProcess,Ptr(buf+$34),@buf,4,s);
ReadProcessMemory(hProcess,Ptr(buf+$3c),@x,4,s);
ReadProcessMemory(hProcess,Ptr(buf+$44),@y,4,s);
и получаю 10-значные числа, как к нормальным привести
Последний раз редактировалось Ginrey; 06.08.2012 в 22:48.
Причина: Добавлено сообщение
во первых, координаты читать надо в single. во вторых, для получения координат, которые ты видишь в клиенте надо использовать формулы, внутриигровые координаты другие
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
X / 10 + 400
Y / 10 + 550
Z / 10
Это будут координаты, которые клиент показывает пользователю.
Меня вот другое интересует - как кто делает остановку при движении? Ну то есть когда задано движение в какую нибудь точку и нужно быстро остановиться? Я использую инжект движения по текущим координатам. Выглядит некрасиво - от чтения до выполнения функкции проходит время. Хоть его и мало, но сколько-то микросекунд все равно есть. Поэтому перс останавливается вперед спиной.
Меня вот другое интересует - как кто делает остановку при движении? Ну то есть когда задано движение в какую нибудь точку и нужно быстро остановиться? Я использую инжект движения по текущим координатам. Выглядит некрасиво - от чтения до выполнения функкции проходит время. Хоть его и мало, но сколько-то микросекунд все равно есть. Поэтому перс останавливается вперед спиной.
точно так же делаю, будет интересно услышать ответ
Меня вот другое интересует - как кто делает остановку при движении?
Конкретного решения нет. И компьютера с игрой под рукой тоже. Есть идея . Попробуйте отловить пакет на остановку с помощью PacketListener'а - во время полета нажмите клавишу Esc.
________________
-------------------------------------------- PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
-------------------------------------------- [for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
-------------------------------------------- InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
Конкретного решения нет. И компьютера с игрой под рукой тоже. Есть идея . Попробуйте отловить пакет на остановку с помощью PacketListener'а - во время полета нажмите клавишу Esc.
______________
проверил. Идея провалилась на каждых новых координатах новый пакет вот смотри летел по прямой 2 раза. и 2 раза отловил пакет.
1) 07 00 3C 8A 2E C5 D2 7B BE 43 69 19 41 45 4D 08 00 61 2A 00 22 01
2) 07 00 25 21 2D C5 D2 7B BE 43 31 3D 41 45 4D 08 81 61 3F 00 B1 00
проверил. Идея провалилась на каждых новых координатах новый пакет вот смотри летел по прямой 2 раза. и 2 раза отловил пакет.
1) 07 00 3C 8A 2E C5 D2 7B BE 43 69 19 41 45 4D 08 00 61 2A 00 22 01
2) 07 00 25 21 2D C5 D2 7B BE 43 31 3D 41 45 4D 08 81 61 3F 00 B1 00
Естественно, он будет разный - координаты же разные были, скорость, номер пакета
0700 25212DC5 D27BBE43 313D4145 4D08 81 61 3F00 B100
ID X Z Y Speed Direction Mode Seq TimeDelta
Поэтому нужен более простой вариант. Может быть, лежит на поверхности, только пока не вижу.
Последний раз редактировалось sumikot; 07.08.2012 в 14:22.
Поэтому нужен более простой вариант. Может быть, лежит на поверхности, только пока не вижу.
Отправлять нажатие клавиши Esc в размороженое окно .
________________
-------------------------------------------- PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
-------------------------------------------- [for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
-------------------------------------------- InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
________________ TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115
[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот [Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
Я использую инжект движения по текущим координатам. Выглядит некрасиво - от чтения до выполнения функкции проходит время. Хоть его и мало, но сколько-то микросекунд все равно есть. Поэтому перс останавливается вперед спиной.
А в общем случае можно попробовать найти инжект функции остановки. Раньше была функция "ручник", возможно она это делала. Я точно не знаю, т.к. не пользовался ей никогда.
________________
-------------------------------------------- PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
-------------------------------------------- [for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
-------------------------------------------- InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
Отправлять нажатие клавиши Esc в размороженое окно
Ну это слишком просто. И опять к нажатиям переходить? Я от них уже ушел
Цитата:
Сообщение от FreePVP)))
А не проще ли изменить конечную точку?
В принципе это и делается. Почти. Просто в связи с тем, что между считыванием координат и их записью проходит время, перс останавливается, но разворачивается на 180. А давать точку немного впереди можно, но не хочется заморачиваться с расчетом. Я просто делал как то расчет для геобота с подьемом и спуском под 45 градусов, больше желания нет.
Цитата:
Сообщение от krukovis
А в общем случае можно попробовать найти инжект функции остановки. Раньше была функция "ручник", возможно она это делала. Я точно не знаю, т.к. не пользовался ей никогда.
Тоже не хочу. Гораздо больше адресов. Труднее будет обновлять. Да и заморочек больше. У меня в самом первом боте использовался массив Action, в том числе и ручник. На мой взгляд - гемор.