Ru-MaNGOS

Вернуться   Ru-MaNGOS > Дополнения > Tools

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

Tools Обсуждение программ для MaNGOS

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.05.2011, 16:47   #1
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию WoW Packet Viewer

Т.к. моя утилита по моему мнению недостаточно популярна, я решил создать данную тему

Проэкт на github (googlecode).

Скриншот:
http://ru-mangos.ru/attachment.php?a...3&d=1305724957

Возможности:
- парсинг пакетов любой сложности;
- возможность динамической компиляции парсеров / подгрузка уже скомпилированных сборок;
- простейший поиск по названию опкода;
- экспорт в текстовый формат (hexlike или распарсенный текст);
- ручной парсинг варден пакетов (только расшифрованных);

Пример простейшего парсера:
Код:
using WowTools.Core;

[Parser(OpCodes.SMSG_MOTD)]
class SMSG_MOTD : Parser
{
    public override void Parse()
    {
        For(ReadInt32("Lines count: {0}"), i => ReadCString("Line {0} text: {1}", i));
    }
}
Что-то более сложное:
Код:
using WowTools.Core;

[Parser(OpCodes.SMSG_CHAR_ENUM)]
class SMSG_CHAR_ENUM : Parser
{
    public override void Parse()
    {
        const int INVENTORY_SLOT_BAG_END = 23;

        For(ReadUInt8("Characters count: {0}"), i =>
            {
                ReadUInt64("Character {0} GUID: {1:X16}", i);
                ReadCString("Character {0} Name: {1}", i);
                ReadUInt8("Character {0} Race: {1}", i);
                ReadUInt8("Character {0} Class: {1}", i);
                ReadUInt8("Character {0} Gender: {1}", i);
                ReadUInt8("Character {0} Skin: {1}", i);
                ReadUInt8("Character {0} Face: {1}", i);
                ReadUInt8("Character {0} Hair Style: {1}", i);
                ReadUInt8("Character {0} Hair Color: {1}", i);
                ReadUInt8("Character {0} Facial Hair: {1}", i);
                ReadUInt8("Character {0} Level: {1}", i);
                ReadUInt32("Character {0} Zone: {1}", i);
                ReadUInt32("Character {0} Map: {1}", i);
                ReadSingle("Character {0} X: {1}", i);
                ReadSingle("Character {0} Y: {1}", i);
                ReadSingle("Character {0} Z: {1}", i);
                ReadUInt32("Character {0} Guild Id: {1}", i);
                ReadUInt32("Character {0} Flags: 0x{1:X8}", i);
                ReadUInt32("Character {0} Customize Flags: 0x{1:X8}", i);
                ReadUInt8("Character {0} First Login?: {1}", i);
                ReadUInt32("Character {0} Pet Display Id: {1}", i);
                ReadUInt32("Character {0} Pet Level: {1}", i);
                ReadUInt32("Character {0} Pet Family: {1}", i);

                For(INVENTORY_SLOT_BAG_END, j =>
                    {
                        ReadUInt32("Character {0} Item {1} Display Id: {2}", i, j);
                        ReadUInt8("Character {0} Item {1} Inventory Type: {2}", i, j);
                        ReadUInt32("Character {0} Item {1} Enchant Aura: {2}", i, j);
                    });
            });
    }
}
Для запуска требуется Microsoft .NET Framework 4.0.
Миниатюры
Нажмите на изображение для увеличения
Название: pv3.jpg
Просмотров: 1300
Размер:	406.6 Кб
ID:	983  
Вложения
Тип файла: rar wpv.rar (477.4 Кб, 622 просмотров)

Последний раз редактировалось TOM_RUS; 18.05.2011 в 22:22.
TOM_RUS вне форума   Ответить с цитированием
14 пользователя(ей) сказали cпасибо:
ANTOMA (30.05.2011), Chameleon (14.07.2011), Den (20.05.2011), Dragon (20.05.2011), Fedia22 (18.05.2011), HuntsMan (22.05.2011), KiriX (18.05.2011), Konctantin (18.05.2011), partizanes (05.06.2013), Ranger (25.08.2011), SeT (18.05.2011), srv38 (18.05.2011), sven (19.05.2011)
Старый 20.05.2011, 15:31   #2
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
ReadSingle("Character {0} Y: {1}", i);
а что за тип данных Single ?
Йоха вне форума   Ответить с цитированием
Старый 20.05.2011, 15:41   #3
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

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

да, просто есть еще и double который 64бит (сингл - 32бит). не знаю, в си есть флоат 64х битный?
RomanRom2 вне форума   Ответить с цитированием
Старый 20.05.2011, 16:36   #5
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

ну про float и double я знаю, а вот про сингл впервые слышу
Йоха вне форума   Ответить с цитированием
Старый 20.05.2011, 17:42   #6
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от Йоха Посмотреть сообщение
ну про float и double я знаю, а вот про сингл впервые слышу
Single
Floating point
ReadSingle()

Последний раз редактировалось TOM_RUS; 20.05.2011 в 19:38.
TOM_RUS вне форума   Ответить с цитированием
Старый 15.07.2011, 14:45   #7
Chameleon
Новичок
 
Регистрация: 04.03.2011
Сообщений: 29
Сказал(а) спасибо: 12
Поблагодарили 9 раз(а) в 7 сообщениях
Chameleon На верном пути
По умолчанию

Хорошая утилита. Я сделал форк на гитхабе с целью обновления для 4.2 и небольших изменений под себя.

Последний раз редактировалось Chameleon; 21.07.2011 в 03:00.
Chameleon вне форума   Ответить с цитированием
Старый 04.06.2013, 16:33   #8
Evgeniy
Пользователь
 
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
Evgeniy На верном пути
По умолчанию

Возможно обновить до версии пкт 3.1?
Evgeniy вне форума   Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBC Viewer TOM_RUS Tools 10 05.08.2011 11:11
[разработка]Wow Packet Parser alien Tools 78 21.06.2011 23:37
PKT v3.0 Viewer Йоха Tools 103 21.05.2011 11:04
C#, DBC Viewer и компания LordJZ Флудильня 13 02.11.2010 11:44
Fixed SMSG_BATTLEFIELD_STATUS packet. newsbot CMaNGOS Commits 0 12.07.2010 22:50


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


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