Ru-MaNGOS

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

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

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

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

Утилита для просмотра DBC файлов клиента. Изначально планировалась поддержка только DBC формата, но позже была также добавлена поддержка форматов DB2 ('WDB2', клиент 4.х+), ADB ('WCH2', клиент 4.х+) и WDB.

Для открытия файла требуется указать его структуру в файле dbclayout.xml. В данный момент имеются структуры лишь для небольшого числа dbc файлов.

Имеется возможность экспорта в sql, а так же интерфейс для написания плагинов экспорта в другие форматы (csv, xml и т.д.) Для примера можно посмотреть исходник экспортера в sql.

Репозиторий тут (github mirror тут).

Бинарники можно взять тут.

Для запуска утилиты требуется Microsoft .NET Framework 4.0.
Миниатюры
Нажмите на изображение для увеличения
Название: dbcviewer1.JPG
Просмотров: 1569
Размер:	197.3 Кб
ID:	722  

Последний раз редактировалось TOM_RUS; 02.11.2010 в 15:23.
TOM_RUS вне форума   Ответить с цитированием
16 пользователя(ей) сказали cпасибо:
ANTOMA (03.11.2010), Chameleon (05.08.2011), Den (02.11.2010), HuntsMan (06.08.2011), KiriX (02.11.2010), Konctantin (02.11.2010), Lightunit (02.11.2010), LordJZ (02.11.2010), MaS0n (13.11.2010), Ranger (25.08.2011), SergiK_KilleR (02.11.2010), SeT (25.02.2014), Shadez (13.11.2010)
Старый 25.11.2010, 13:13   #2
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

В классе WDBReader есть такой участок кода, но при количестве записей == 0, он будет выдавать ошибку, потому что reader.BaseStream.Position будет на 4 байта меньше чем reader.BaseStream.Length :
Код:
if (entry == 0 && size == 0 &&  reader.BaseStream.Position == reader.BaseStream.Length)
    break;
может лучше так:
Код:
if ((entry == 0 && size == 0) || reader.BaseStream.Position == reader.BaseStream.Length)
    break;
__________________

Последний раз редактировалось Konctantin; 25.11.2010 в 13:22.
Konctantin вне форума   Ответить с цитированием
Старый 01.12.2010, 11:12   #3
SergiK_KilleR
Пользователь
 
Аватар для SergiK_KilleR
 
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 15
Поблагодарили 53 раз(а) в 14 сообщениях
SergiK_KilleR Скоро придёт к известности
По умолчанию

можно ли добавить в программу поддержку dbc-файлов с форматом PTCH ?

отличается ли чем-то файл Cache\ADB\ruRU\Item-sparse.adb от locale-ruRU.MPQ\DBFilesClient\Item-sparse.db2 (по структуре) ?
этот вопрос к тому, что первый файл открывается корректно программой, а со вторым файлом проблемы: все поля типа string заполнены текстом:
Цитата:
n Shortsword

Последний раз редактировалось SergiK_KilleR; 01.12.2010 в 11:25.
SergiK_KilleR вне форума   Ответить с цитированием
Старый 01.12.2010, 11:34   #4
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от SergiK_KilleR Посмотреть сообщение
можно ли добавить в программу поддержку dbc-файлов с форматом PTCH ?
Нет. Это не DBC, а патч файл.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 01.12.2010, 14:04   #5
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от SergiK_KilleR Посмотреть сообщение
можно ли добавить в программу поддержку dbc-файлов с форматом PTCH ?

отличается ли чем-то файл Cache\ADB\ruRU\Item-sparse.adb от locale-ruRU.MPQ\DBFilesClient\Item-sparse.db2 (по структуре) ?
этот вопрос к тому, что первый файл открывается корректно программой, а со вторым файлом проблемы: все поля типа string заполнены текстом:
Видимо отличаются. Т.к. Файл из locale-ruRU.MPQ\DBFilesClient\Item-sparse.db2 от билда 12880, а последний билд щас 13329...

P.S. Исправил, теперь и старые db2 файлы должны открываться нормально. Т.к. точного номера билда, в котором хидер изменили я не помню, сделал просто build > 12880...

Последний раз редактировалось TOM_RUS; 01.12.2010 в 22:32.
TOM_RUS вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
SergiK_KilleR (02.12.2010)
Старый 02.12.2010, 20:41   #6
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Кстати, для получения обновленных файлов я использую свою тулзу Blizzard.Patcher. Для работы требуется файл предыдущей версии и PTCH файл-обновление. Все обновления применяются последовательно.
TOM_RUS вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
evilstar (02.12.2010), SergiK_KilleR (03.12.2010)
Старый 09.04.2011, 20:22   #7
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Небольшой апдейт: с выходом патча 4.1 оказалось, что структура DB2 файлов была некорректна, что было исправлено, при этом было выяснено назначение двух неизвестных полей в хидере файлов.

Последний раз редактировалось TOM_RUS; 09.04.2011 в 20:24.
TOM_RUS вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
evilstar (10.04.2011)
Старый 05.08.2011, 09:30   #8
Chameleon
Новичок
 
Регистрация: 04.03.2011
Сообщений: 29
Сказал(а) спасибо: 12
Поблагодарили 9 раз(а) в 7 сообщениях
Chameleon На верном пути
Лампочка

У меня есть идея к проекту, но времени сейчас нету ее реализовать, так что напишу тут и может кто соберется.
Идея в следующем: насколько я вижу в DBC файлах поля всегда по 4 байта и имеют один из 3х типов - int, float, string. Соответственно мы могли бы добавить автоматичнское распознавание типов колонок в DBC, например как это делает MyDbcEditor.
Это упростило бы просмотр файлов с неопределенным форматом и также упростило бы создание форматов т.к. им останется включать только имена колонок, а типы уже в редких случаях.
Я немного пореверсил MyDbcEditor, чтобы понять как он с этим справляется и вот результат.
Для различения float/int рассматриваются первые 1000 записей в колонке с int значением > 1. Затем
Код:
if ( count <= 0 || AvgAbs <= 50000000 || AvgBitsSet <= 4.0 )
    // INT
else
    // FLOAT
Там так же определяются флаги как отдельный тип от обычных чисел, чтобы их можно было показывать в хексе вместо десятичного вида. Для этого формула уже сложнее, но тоже в той же функции.

Однако сейчас DBC Viewer проходит по содержимому файла только 1 раз, что придется изменить (или сделать отдельную копию в памяти) для предварительного сбора статистики перед выводом содержимого.
Chameleon вне форума   Ответить с цитированием
Старый 05.08.2011, 10:25   #9
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

поля не всегда по 4 байта.
RomanRom2 вне форума   Ответить с цитированием
Старый 05.08.2011, 10:25   #10
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Поля не всегда 4 байта, бывают и 1 байт и 8 байт.
TOM_RUS вне форума   Ответить с цитированием
Старый 05.08.2011, 11:11   #11
Chameleon
Новичок
 
Регистрация: 04.03.2011
Сообщений: 29
Сказал(а) спасибо: 12
Поблагодарили 9 раз(а) в 7 сообщениях
Chameleon На верном пути
По умолчанию

Цитата:
Сообщение от TOM_RUS Посмотреть сообщение
Поля не всегда 4 байта, бывают и 1 байт и 8 байт.
Посмотрев на дамп DBC структур из 4.0.0 я нашел только 4 файла из 255, которые имеют поля byte.
Так что в большинстве случаев идея все равно работает. А для специальных случаев можно по-прежнему задать тип вручную.

Последний раз редактировалось Chameleon; 05.08.2011 в 11:15.
Chameleon вне форума   Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#, DBC Viewer и компания LordJZ Флудильня 13 02.11.2010 11:44


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


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