Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Опкоды, Формулы, Клиент

Важная информация

Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.05.2014, 18:18   #1
SeT
Ученый
 
Аватар для SeT
 
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
SeT На верном пути
По умолчанию SMSG_DISMOUNT

Кто-нибудь имеет информацию о нем?
Смущает, что сейчас (3.3.5) в мангосе или тринити посылают его всем вокруг, каждый раз при дисмаунте, что провоцирует баги с моделью персонажа - ее "диаметр" (если выделить) для других игроков остаётся такой же как и с маунтом. Если просто менять mountdisplay на 0, без отправки опкода, то все в порядке.

Обработчик в иде (с 5.0.5, но думаю разница с 3.3.5 не большая).

Может его следует посылать только в определённых случаях?
SeT вне форума   Ответить с цитированием
Старый 07.05.2014, 20:13   #2
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

А SMSG_MOVE_SET_COLLISION_HEIGHT отправляется? помоему в нем дело, а то лишь для анимации dismount-а всем вокруг
Lordronn вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
SeT (08.05.2014)
Старый 07.05.2014, 21:28   #3
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
А SMSG_MOVE_SET_COLLISION_HEIGHT отправляется? помоему в нем дело, а то лишь для анимации dismount-а всем вокруг
+
оно отвечает за коллизии, в мангосе это не реализовано
Amaru вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
SeT (08.05.2014)
Старый 07.05.2014, 21:48   #4
SeT
Ученый
 
Аватар для SeT
 
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
SeT На верном пути
По умолчанию

Цитата:
Сообщение от Amaru Посмотреть сообщение
+
оно отвечает за коллизии, в мангосе это не реализовано
В тринити такое реализовано и отправляется до SMSG_DISMOUNT:
Код:
        WorldPacket data(SMSG_MOVE_SET_COLLISION_HGT, GetPackGUID().size() + 4 + 4);
        data.appendPackGUID(GetGUID());
        data << uint32(sWorld->GetGameTime());   // Packet counter
        data << thisPlayer->GetCollisionHeight(false);
        thisPlayer->GetSession()->SendPacket(&data);
Высота без маунта берётся из modelData->CollisionHeight, но насколько я заметил, другие числа эффекта тоже не дают.

Даже если реализовать ответ сервера, на CMSG_MOVE_SET_COLLISION_HGT_ACK, который приходит следом, то это тоже ничего не меняет

Ещё, если после дисмаунта поменять размер игрока хоть на 0.1, то его "диаметр" восстанавливается.
SeT вне форума   Ответить с цитированием
Старый 08.05.2014, 00:20   #5
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

Попробуйте дизмаунтнутся через lua-команду, будет ли баг?

Вызывается функция CGUnit:: Dismount, обработчик 3.3.5.12340

http://paste2.org/hp3AF2yJ

Почти же самый код (за исключением отправки пакета 0x375 (CMSG_CANCEL_MOUNT_AURA)) в хандлере пакета SMSG_DISMOUNT
Обработчик 3.3.5.12340

http://paste2.org/08gjk6ed
MaS0n вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
SeT (08.05.2014)
Старый 08.05.2014, 00:53   #6
SeT
Ученый
 
Аватар для SeT
 
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
SeT На верном пути
По умолчанию

Цитата:
Сообщение от MaS0n Посмотреть сообщение
Попробуйте дизмаунтнутся через lua-команду, будет ли баг?

Вызывается функция CGUnit:: Dismount, обработчик 3.3.5.12340

http://paste2.org/hp3AF2yJ

Почти же самый код (за исключением отправки пакета 0x375 (CMSG_CANCEL_MOUNT_AURA)) в хандлере пакета SMSG_DISMOUNT
Обработчик 3.3.5.12340

http://paste2.org/08gjk6ed
Баг остаётся, после /dismount клиент у себя снимает маунта (для остальных игроков игрок ещё будет на маунте) и отправляет опкод на сервер, где уже сервер снимает ауру маунта с игрока и дальше все происходит стандартно, с отправкой всех пакетов (SMSG_MOVE_SET_COLLISION_HGT, SMSG_DISMOUNT, ...) , изменением mountdisplay и т.д.

Последний раз редактировалось SeT; 08.05.2014 в 00:58.
SeT вне форума   Ответить с цитированием
Старый 11.05.2014, 23:42   #7
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

чото вы поперепутали божий дар с яичницей и намешали все в кучу как всегда...

дисмаунт транспортного средства (лошадь) - через поле UNIT_FIELD_MOUNTDISPLAYID.
SMSG_DISMOUNT - для вехиклов. нужно показывать дестрой объекта.
CMSG_CANCEL_MOUNT_AURA - вообще из другой оперы. используется, к примеру, для отмены зафейленного спелла, в котором есть несколько эффектов, один из которых маунт, а другой собственно зафейлился. ну и в ряде других случаев конечно же.
RomanRom2 вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
MaS0n (12.05.2014), SeT (12.05.2014)
Старый 12.05.2014, 14:53   #8
SeT
Ученый
 
Аватар для SeT
 
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
SeT На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
чото вы поперепутали божий дар с яичницей и намешали все в кучу как всегда...

дисмаунт транспортного средства (лошадь) - через поле UNIT_FIELD_MOUNTDISPLAYID.
SMSG_DISMOUNT - для вехиклов. нужно показывать дестрой объекта.
CMSG_CANCEL_MOUNT_AURA - вообще из другой оперы. используется, к примеру, для отмены зафейленного спелла, в котором есть несколько эффектов, один из которых маунт, а другой собственно зафейлился. ну и в ряде других случаев конечно же.
Спасибо RomanRom2 за разъяснения. Мы лишь пытаемся разобраться с последствиями того, что уже сделано до нас

hint: Ответ на клиентский CMSG_MOVE_SET_COLLISION_HGT_ACK можно не реализовать, практической пользы от него не замечено, а анимация игроков (от кого пришел опкод), после его получения, становится "дёрганой".

Последний раз редактировалось SeT; 12.05.2014 в 15:00.
SeT вне форума   Ответить с цитированием
Старый 12.05.2014, 22:51   #9
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

да не за что
Цитата:
Сообщение от SeT Посмотреть сообщение
становится "дёрганой".
это лишь потому, что неправильно реализована синхронизация объектов. точнее, вообще никак не реализована
RomanRom2 вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[11100] Avoid send SMSG_DISMOUNT for non aura source mount state. newsbot CMaNGOS Commits 0 02.02.2011 16:40
[10960] Send SMSG_DISMOUNT to client. newsbot CMaNGOS Commits 0 04.01.2011 21:02


Текущее время: 19:40. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot