Цитата:
Сообщение от HuntsMan
...
|
Вот поэтому я и говорю, что вы не знаете механики транспорта на клиенте и пытаетесь делать какие-то выводы.
1) Клиент считает, что НПС\Плеер находится на корабле, если в структуре MovementData в поле GUID'а транспорта стоит собственно GUID соответствующего транспорта. И когда NPC или Player стоит на транспорте - клиент сам апдейтит
НА СВОЕЙ СТОРОНЕ их координаты, если транспорт совершает движение. На сервак он ничего при этом не посылает
2) Насчет второго примера. Все правильно. Об этом я и говорил. Расстояние для двух объектов, находящихся на транспорте, должно расчитываться на основании их смещения относительно центра корабля. А для остальных объектов должна расстояние должно браться относительно глобальных координат.
Т.е:
а) Если A и B находяться на одном и том же транспорте - то считать расстояние по относительным координатам.
б) Иначе - считать по относительным координатам.
И предвидя следующий вопрос:
1) Когда плеер стоит на транспорте и на fly mount'е взлетает в воздух, признак нахождения на транспорте моментально сбрасывается.
2) Когда плеер на fly mount'е подлетает к транспорту, признак нахождения на транспорте установится только когда плеер прекратит полет и приземлится на корабль.