Ru-MaNGOS

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

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.08.2013, 03:53   #1
Dubstep
Пользователь
 
Регистрация: 22.06.2013
Сообщений: 71
Сказал(а) спасибо: 22
Поблагодарили 0 раз(а) в 0 сообщениях
Dubstep На верном пути
По умолчанию [4.3.4] Проверка ролей

Доброго времени суток, может кто подсказать одну вещь, вообщем:
Есть такая штука как Проверка ролей, жму от клиента идёт 0x0430 как я понимаю пустышка, он вызывает 0x70B0, составил маску, но есть там поле, оно первое uint8, что туда закинуть нужно? Кинул туда любое число, вроде как окошко появляется с выбором роли, но правильно ли это...

Последний раз редактировалось Dubstep; 20.08.2013 в 03:55.
Dubstep вне форума   Ответить с цитированием
Старый 20.08.2013, 10:55   #2
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

этот uint8 - маска байтов в гуиде
http://paste2.org/9a20gPsC
гуид, очевидно, - гуид инициировавшего role poll
Amaru вне форума   Ответить с цитированием
Старый 20.08.2013, 12:46   #3
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

как то не похоже на гуид, после этого байта идут инты32, в странном порядке до кучи, 1, 5, 7, 3, 2. у гуида после маски идут байты (инт8 по вашему).
больше смахивает на количество гуидов, которые в пакете наличествуют.
RomanRom2 вне форума   Ответить с цитированием
Старый 20.08.2013, 13:38   #4
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

не вижу int32. 1, 5, 7, 3, 2 это порядок вытаскивания битов из маски. ну а потом да, идет считывание байтов.

Код:
ObjectGuid guid;
recv_data.ReadGuidMask<1, 5, 7, 3, 2, 4, 0, 6>(guid);
recv_data.ReadGuidBytes<4, 7, 0, 5, 1, 6, 2, 3>(guid);

Последний раз редактировалось Amaru; 20.08.2013 в 13:41.
Amaru вне форума   Ответить с цитированием
Старый 20.08.2013, 14:44   #5
Dubstep
Пользователь
 
Регистрация: 22.06.2013
Сообщений: 71
Сказал(а) спасибо: 22
Поблагодарили 0 раз(а) в 0 сообщениях
Dubstep На верном пути
По умолчанию

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

Цитата:
Сообщение от Amaru Посмотреть сообщение
не вижу int32.
ммм... вот. не?
Код:
  CDataStore_GetInt8(a2, (int)&v13);
  v6 = 2 * v13;
  v5->guid[1] = (unsigned int)v13 >> 7;
  v7 = (unsigned int)v6 >> 7;
  v6 *= 2;
  v5->guid[5] = v7;
  v8 = (unsigned int)v6 >> 7;
  v6 *= 2;
  v5->guid[7] = v8;
  v9 = (unsigned int)v6 >> 7;
  v6 *= 2;
  v5->guid[3] = v9;
  v10 = (unsigned int)v6 >> 7;
  v6 *= 2;
  v5->guid[2] = v10;
и еще вопрос: а близы поменяли (меняют?) порядок следования байт в гуиде? раньше они шли по порядку. вот извращенцы...
RomanRom2 вне форума   Ответить с цитированием
Старый 20.08.2013, 21:18   #7
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
ммм... вот. не?
Код:
  CDataStore_GetInt8(a2, (int)&v13);
  v6 = 2 * v13;
  v5->guid[1] = (unsigned int)v13 >> 7;
  v7 = (unsigned int)v6 >> 7;
  v6 *= 2;
  v5->guid[5] = v7;
  v8 = (unsigned int)v6 >> 7;
  v6 *= 2;
  v5->guid[7] = v8;
  v9 = (unsigned int)v6 >> 7;
  v6 *= 2;
  v5->guid[3] = v9;
  v10 = (unsigned int)v6 >> 7;
  v6 *= 2;
  v5->guid[2] = v10;
и еще вопрос: а близы поменяли (меняют?) порядок следования байт в гуиде? раньше они шли по порядку. вот извращенцы...
ну тут же все равно, инты или нет, потом проверка != будет.

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

Цитата:
recv_data.ReadGuidMask<1, 5, 7, 3, 2, 4, 0, 6>(guid);
recv_data.ReadGuidBytes<4, 7, 0, 5, 1, 6, 2, 3>(guid);
Amaru вне форума   Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка возможности каста virusav Новичкам 17 11.11.2010 23:39
Проверка нахождения нпц в мире virusav Новичкам 3 08.11.2010 00:08
[micro] Проверка ScriptDev2 скриптов LordJZ Tools 22 06.08.2010 23:55
Проверка браузера selector Новичкам 8 05.06.2010 18:42


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


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