Показать сообщение отдельно
Старый 26.01.2011, 00:33   #56
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

да это всё сделает клиент, я ж написал
вот мы уехали на корабле, предположим. едем такие, едем...
отвлечемся.

тут тема какая... клиент присылает координаты, когда мы перемещаемся персом, так? теперь мы садимся на корабль. ну и как бы не двигаемся предположим. в этом случае клиент ничего не присылает что логично теперь предположим что двигаемся. в этом случае клиент присылает мув-пакеты, но немного не такие. в них основные координаты не меняются, но появился дополнительный блок с координами. это координаты относительно корабля. ну и гуид корабля там еще.

когда мы спрыгиваем с корабля, клиент опять начинает слать координаты мировые. обычные. и, о чудо, те координаты, в которых реально находится! вот спрыгнул клиент с корабля в воду, вот и будут приходить теперь координаты клиента в этой воде.

когда же мы запрыгиваем на корабль где то на пути его следования, на ходу, что меняется то? клиенту был запущен ролик корабля. клиент то как раз точно знает где в какой момент у него корабль. при запрыгиваении отработают классы по collision и обнаружат, что мы "упали" на проплывающий корабль. всё. теперь что начинает происходить:

1. происходит рассылка апдейт пакета (00А9), в котором апдейтится наш перс, в нем будет сказано что мы сели на корабль. с этого момента все окружающие начнут видеть плывущий корабль и ПЛЫВУЩЕГО вместе с ним нашего перса. если этого не сделать, то наблюдающие увидят следующее: корабль то как плыл, так и плывет. упавший на него перс будет стоять в воздухе на той высоте, где он оказался на корабле (это изза отработки физики столкновений в клиенте). и затем когда корабль уплывет, перс свалится в воду. собственно если кто помнит, все это было у вада.

2. если наш перс начнет перемещаться по кораблю, то наблюдающие будут получать рассылку видоизменных мув-пакетов нашего перса, как раз с учетом того что он на корабле - собсно гуид корабля и дополнительный блок координат. ну и разумеется флаг ON_TRASPORT (или как там вы его зовете). это позволит наблюдающим видеть наши перемещения НА КОРАБЛЕ.

теперь еще раз рассмотрим спрыгивание с корабля. что происходит:
1. рассылка А9, в котором сказано что мы слезли с него. т.е. теперь это два разных и независимых объекта.
2. поскольку мы там падаем какое то время, начинает приходить MOVE_HEARTBEAT с обычными мировыми координами. и теми, в которых мы собсно спрыгнули. т.е. наблюдающие уже видят наше падение в новом месте на карте.

итак, еще раз - всё делает за нас клиент. нам нужно только этим грамотно воспользоваться.
блин, уже на пальцах разжевал, осталось только проглотить

Последний раз редактировалось RomanRom2; 26.01.2011 в 00:50.
RomanRom2 вне форума   Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
BloodWarrior (18.03.2011), KiriX (26.01.2011), Konctantin (26.01.2011), MaxXx2021 (17.02.2011), Mayss (27.01.2011)