Добрый вечер, решил переписать flytype-скилы (Rush Impact, Shadow Step, Warp и тд) и на последнем этапе столкнулся с проблемой некорректной обработки движения после использования Charge-скилов.
Баг актуален для всех сборок на базе l2p (Так же актуально для l2gw) даже если не трогать изначальный код.
В чем суть:
Если после окончания каста (после срабатывания clearCastVars() и finishFly()) начать отбегать то подключается nextAction.MOVE (обрабатывается в PlayableAI). По окончанию бега если персонаж на стороне клиента не добегает до точки то его возвращает в последние координаты после каста (в координаты, что находится в переменной _flyLoc и возвращается функцией getFlyLoc()).
Соответственно бежать можно бесконечно и по итогу персонаж все равно окажется на "левых" координатах. При этом после окончания бега сработает пакет validatePosition и переместит/портанет персонажа в зависимости от diff между клиентом и сервером.
Данного бага не было на лайве лостворлда (в шарных сурсах он остался)
Подробней как это проявляется:
Собственно вопрос - кто-то фиксил этот момент? Такое чувство что он зарыт где-то в мув-листе
Баг актуален для всех сборок на базе l2p (Так же актуально для l2gw) даже если не трогать изначальный код.
В чем суть:
Если после окончания каста (после срабатывания clearCastVars() и finishFly()) начать отбегать то подключается nextAction.MOVE (обрабатывается в PlayableAI). По окончанию бега если персонаж на стороне клиента не добегает до точки то его возвращает в последние координаты после каста (в координаты, что находится в переменной _flyLoc и возвращается функцией getFlyLoc()).
Соответственно бежать можно бесконечно и по итогу персонаж все равно окажется на "левых" координатах. При этом после окончания бега сработает пакет validatePosition и переместит/портанет персонажа в зависимости от diff между клиентом и сервером.
Данного бага не было на лайве лостворлда (в шарных сурсах он остался)
Подробней как это проявляется:
Собственно вопрос - кто-то фиксил этот момент? Такое чувство что он зарыт где-то в мув-листе