japplegame писал(а):Люди, не парьте мозг себе и другим. Бот уже давно идет туда куда моб ПРИДЕТ, а не туда где он находится в текущий момент. Определяются эти координаты по пакету move, который шлет сервер, когда мобы или другие персонажи двигаются.
И как раз именно из-за этого возникают непонятки с агрессивными монстрами.
Например, игрок стоит в точке A, а моб в точке B. Затем моб начинает двигаться к точке C, персонаж идет туда же. В это время моб дошел до С раньше игрока и поворачивает ему на встречу в точку D. Игрок в это время доходит до С, видит, что моб пошел в D и идет к D. Обычно на этом дело и заканчивается, но частенько одного такого цикла мало и моб с игроком могут долго плясать.
Самый верный вариант, это обнаружить, что моб находится в прямой досягаемости игрока и один раз послать пакет атаки. Далее сервер будет уже сам вести персонажа за мобом, как и происходит в реальном клиенте. Но в таком решении есть свои подводные камни, которые тоже надо обходить.
В связи с этим 2 вопроса...
1)
Как происходит атака в клиенте?
Пока что я вижу что клиент посылает пакеты move при атаке, и только когда доходит до моба - пакеты атаки.
2) Что значит "обнаружить, что моб находится в прямой досягаемости игрока и один раз послать пакет атаки."
Меня интересует конкретно что значит "моб находится в определнном месте"... это не будет звучать так глупо если посмотерть код АИ атаки.
Там есть фактически 3 положения моба:
$target->{pos} откуда идет моб
$target->{pos_to} куда идет моб
и realMonsterPos который вычисляется - реальное положение моба на отрезке пути.
Так вот, при атаке, проверяется рсстояние не между реальными положениями игрока и моба, а между точками куда идут игрок и моб...
т.е. если они нахдились в точках А и В, и идут друг к другу и встретились в середине, то атакие не будет так как дистанция между точками в которые они идут равна А-В, хотя реально они будут в 1 клетке друг от друга.
A.....................#+........................B
Можно ли при этом посылать пакет атаки?
Как к этому отнесется сервер?
П.С.
Давайте наконец разберемся с этим раз и навсегда