18.05.2011, 16:47 | #1 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
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); }); }); } } Последний раз редактировалось TOM_RUS; 18.05.2011 в 22:22. |
14 пользователя(ей) сказали cпасибо: |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |