| |
| | | При входе в мир, чтобы игрок окончательно вошел в мир (т.е. пропала полоска с загрузкой и появился сам мир) нужно клиенту послать апдейт пакет (SMSG_UPDATE_OBJECT)
Вобщем-то сам вопрос: Как должен выглядеть минимальный апдейт-пакет, чтоб игрок окончательно вошел в мир?
PS Я примерно вот так представляю общий вид апдейт-пакета:
uint32 object_count uint8 unk { uint8 update_type packed_guid update_data }
и возникают еще вопросы: что такое packed_guid и сколько байт занимает и есть ли хотя бы минимальное описание update_data? |
| | | | | минимальный апдейт-пакет должен быть максимальным :) клиенту нужно отправить все заполненные поля, необходимые для чара.
пакованный гуид - это такой же гуид, только он еще содержит битовую маску вначале. например если взять обычный гуид и добавить вначало байт $FF - означающий какие именно байты из восьми идут следом ($FF - все байты), то получится пакованный гуид.
в интернете полно исходников, посмотрите там. там все очень просто. |
| | | | | Спасибо с гуидом столо понятно. Рылся в сурсах мангоса, нашел вот, что:
switch(guid_hi) { case HIGHGUID_ITEM: return TYPEID_ITEM; case HIGHGUID_UNIT: return TYPEID_UNIT; case HIGHGUID_PET: return TYPEID_UNIT; case HIGHGUID_PLAYER: return TYPEID_PLAYER; case HIGHGUID_GAMEOBJECT: return TYPEID_GAMEOBJECT; case HIGHGUID_DYNAMICOBJECT:return TYPEID_DYNAMICOBJECT; case HIGHGUID_CORPSE: return TYPEID_CORPSE; case HIGHGUID_MO_TRANSPORT: return TYPEID_GAMEOBJECT; } return 10; // unknown
Значит ди это, что higuid указывает на тип объекта? Различает ли клиент higuid и lowguid или это только деление на сервере для удобства?
Копаюсь в разных сурсах, честно говоря от разнообразия типов, полей голова пухнет. Если не сикрет, какой update_type и type_id отвечает за поля чара? |
| | | | | хай гуид и лоу гуид образовался изза того, что используется 32х битный компилятор. нельзя сделать 64х битный индекс массивов.
тип апдейта и айди типа не отвечают за поля чара. это собсно типы апдейт пакета, какой тип объекта там и какой тип апдейта. а поля они всегда есть. |
| |
|
| |