Как происходит перемещение персонажа в игре? Как я понял нам потребуется 4 пакета(UserInfo(0x04),MoveBackwardToLocation(0x01) ,MoveToLocation(0x01),ValidatePosition(0x48)) чтобы двигаться.
1) из UserInfo(0x04) берем x,y,id,RunSpeed,MovementSpeedMultiplier.
2) Если хотим сдвинутся то посылаем MoveBackwardToLocation, где первые x, y, z куда хотим и вторые откуда. Сразу непонятно откуда берется z так как клиент явно не берет эту координату из UserInfo, а посылает какуюто свою. Да и как угадывать z точки в которую хотим попасть?
3)Если мы отправили MoveBackwardToLocation то нам должен придти MoveToLocation. Если там наш id то запоминаем первые x, y, z (куда идем) и вторые (откуда).
4)Теперь зная откуда и куда нам надо идти начинаем отсылать ValidatePosition. 1-ый такой пакет отсылаем сразу как только получили MoveToLocation, а остальные с некоторым интервалом(1200ms, хмм он постоянный для каждого сервера?). Зная скорость(round(int(RunSpeed*MovementSpeedMultiplie r))) и время(1.2s) можем расчитывать x,y где мы будем. Сново непонятно откуда брать z, Heading, Data. Как только добежали до нужной нам точки отсылаем последние наши координаты и запоминаем их чтобы при следующем перемещении отослать их.
В С4 на ValidatePosition вроде приходит ответ, а вот начинач с С5 нет. Поэтому и боты дергаются.... Как правильно реализовать алгоритм в С4 и в С5 я не знаю :(
Когда то на форуме АЧ был разговор на эту тему Saurona c Zyb-ом, но под модераторским хайдом :) никто не видел, чем он там кончился....
Речь как раз шла об алгоритмах перемещения. А вопрос очень интересный, в плане разработки своего бота.
Может xkor и исследовал этот вопрос? И знает алгоритмы из С4 и С5? В своем боте он же как-то перемещается?
__________________
Цитата:
Сообщение от Stas
...Ну на хрена ты меня посылаешь гууглить или искать 140 страниц описанных где-то комманд, если я уже в сотый раз объясняю, что хочу облегчить труд многим, я же эти доводы подробно описал...
Может xkor и исследовал этот вопрос? И знает алгоритмы из С4 и С5? В своем боте он же как-то перемещается?
в моём боте алгоритм простой: скорость*время=путь
но вот проблемка что при такой формуле все отстают %), константу на которую надо умножать чтоб неотставали пока неподбирал...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Может xkor и исследовал этот вопрос? И знает алгоритмы из С4 и С5? В своем боте он же как-то перемещается?
в моём боте алгоритм простой: скорость*время=путь
но вот проблемка что при такой формуле все отстают %), константу на которую надо умножать чтоб неотставали пока неподбирал...
Про формулу пути я помню. В школе проходил :)
Я имею ввиду практически как происходит? Последовательность пакетов? И различия между С4 и С5.
__________________
Цитата:
Сообщение от Stas
...Ну на хрена ты меня посылаешь гууглить или искать 140 страниц описанных где-то комманд, если я уже в сотый раз объясняю, что хочу облегчить труд многим, я же эти доводы подробно описал...
xkor, а откуда брал эти параметры: z, Heading, Data?
z из параметров чара которые либо приходили от серва либо немного изменялись при хотьбе в боте
Heading от тудаже
Data хз что такое и в каком пакете ты нашел...
Цитата:
Сообщение от dmitry501
Я имею ввиду практически как происходит? Последовательность пакетов? И различия между С4 и С5.
последовательность как в первом посте а С5 я несмотрел...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
...Ну на хрена ты меня посылаешь гууглить или искать 140 страниц описанных где-то комманд, если я уже в сотый раз объясняю, что хочу облегчить труд многим, я же эти доводы подробно описал...
На скока я понял heading это угол поворота персонажа в игре, а расчитывал по полярным координатам. http://ru.wikipedia.org/wiki/%D0%9F%D0% ... 0%B0%D1%82
Вот тока нафига серверу этот угол... При большом желании он и сам его вычислит :)