Вход в систему
Логин
Пароль
 

Sprint #26: Terrain.Сейчас на сайте 0 посетителей
WoWCore
История 2.0
История 1.0
SandBox

Ресурсы
Форум
Файлы

Документация
Литература
Ссылки


Здравствуйте,  Anonymous

Тема: Вход в мирСписок тем

CoderMan ··· 13.11.2008, 14:48
При входе в мир, чтобы игрок окончательно вошел в мир (т.е. пропала полоска с загрузкой и появился сам мир) нужно клиенту послать апдейт пакет (SMSG_UPDATE_OBJECT)

Вобщем-то сам вопрос: Как должен выглядеть минимальный апдейт-пакет, чтоб игрок окончательно вошел в мир?

PS Я примерно вот так представляю общий вид апдейт-пакета:

uint32 object_count
uint8 unk
{
uint8 update_type
packed_guid
update_data
}

и возникают еще вопросы: что такое packed_guid и сколько байт занимает и есть ли хотя бы минимальное описание update_data?
RomanRom2 ··· 13.11.2008, 15:07
минимальный апдейт-пакет должен быть максимальным :)
клиенту нужно отправить все заполненные поля, необходимые для чара.

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

в интернете полно исходников, посмотрите там. там все очень просто.
CoderMan ··· 13.11.2008, 16:55
Спасибо с гуидом столо понятно. Рылся в сурсах мангоса, нашел вот, что:

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 отвечает за поля чара?
RomanRom2 ··· 14.11.2008, 13:39
хай гуид и лоу гуид образовался изза того, что используется 32х битный компилятор.
нельзя сделать 64х битный индекс массивов.

тип апдейта и айди типа не отвечают за поля чара. это собсно типы апдейт пакета, какой тип объекта там и какой тип апдейта. а поля они всегда есть.
Список тем


Copyright © 2005-2024 WoWCore Team