Vadzra 
Сделал все согласно тому, что писал ниже. Теперь вижу новый юнит на глобальной карте. Т.е. ИСОУнит файл прицеплен нормально.

Проблемы: 1. По прежнему не вижу юнит на экране боя (симптом Drehera). Все вроде бы нормально прицеплено, но игра не видит файл из Events.ff и BatUnits.ff. При этом в D2ResExplorer все нормально отображается.
2. Звук так и не подцепился к юниту. Непонимаю, каким образом осуществляется линк между звуковыми файлами и юнитом? Точно не по имени файла. D2ResExplorer говорит о загадочном SNDINFO.dat, этот файл я в установленной игре не вижу.
HSerg
Для звука нужно править бинарные файлы LSTIDS.DAT и SNDINFO.DAT в Battle.wdt.

LSTIDS.DAT - регистрация записи с id юнита
SNDINFO.DAT - ссылки на *.lst файлы и какая-то критичная доп. информация (?) на аудио-файлы (пробовал с ней экспериментировать - меняются параметры воспроизведения в игре)

Сегодня-завтра добавлю в D2ResExplorer возможность редактирования этих файлов - сможешь попробовать.
Vadzra 
Все, кажется я понял как это все работает! :) Завтра попробую сделать как следует:

Не все юниты могут действовать на глобальной карте. Например, Владыка небес неможет. Для таких юнитов существует только одна запись в GUnits.dbf и анимация для них прописана только в BatUnit.ff.
Для тех, кто может действовать на глобальной карте существует 2 записи в GUnits.dbf, а также две анимации в ISOUnit и BatUnit.ff.

Все еще непонятно, откуда игра знает, какие звуковые файлы принадлежат какому юниту. Может это прописано в загадочном SNDINFO.dat? ;)
Vadzra 
Поюзал D2StatsEditor - очень полезная вещь. Спасибо. Несколько вопросов возникло в процессе - о некоторых юнитах, например темный эльф потрошитель, D2StatsEditor говорит, что информация о нем отсутствует в SNDINFO.dat. Где этот файл находится, я не вижу его в директориях с игрой? С тем юнитом, который я пытаюсь вставить та же история. Но судя по тому, что эльф потрошитель в игре присутствует, а мой юнит - нет, дело не в этом. Кстати, сейчас посмотрю чем .дат файлы редактировать (просто по Фрейду получается - буду редактировать файлы точка дат :)). В игре в корне есть единственный .дат файл, который я нашел: gameinfo.dat.

D2StatsEditor не показывает все звуковые файлы относящиеся к юниту. Показывает только Midgard, но не Battle.

Для некоторых юнитов, типа Стражник (эльфийский) и охотник g000uu8119(наверное еще есть я не проверял) Events file не отобразается в превью. Появляется сообщение: List Index out of bounds (-1)

А, дошло - для многих юнитов в таблице есть две записи, то что я говорил верно для одной из них, но для второй - все нормально. Кстати, было бы очень полезно узнать как эти две записи между собой связаны, так как здесь мне кажется и зарыта проблема с невидимыми картинками из файла Events.
KDS 
Здравствуй, HSerg. Спасибо тебе за твои программы. Без них ничего бы мы не вытащили из игры. На счет D2UnitsViewer v.0.1b, так намного удобнее искать изображения и звуки определенных юнитов. Был бы очень признателен, если бы ты ее доработал до конца. Слишком много косяков: не все рамки юнитов отображаются, некоторые звуки перепутаны. Очень не хватает возможности D2ResExplorer по вытаскиванию ресурсов. Так же не помешал бы поиск по названию юнита в левом меню. С удовольствием буду тестировать новые версии этой программы, если необходимо.
В общем, постоянно слежу за обновлением софта на твоем ресурсе. Еще раз спасибо.
HSerg
Рамки юнитов - это которые FACE*? Если речь о них, то там действительно какой-то косяк библиотеки декодирования png - разбираюсь.

Звуки взяты из ресурсов игры, если где-то не совпадают, то нужна более детальная информация - версия D2, юнит, имена неправильно найденных файлов. У себя несовпадений пока не встречал (но детально не сверял, так что мог и не заметить).
Vadzra 
Вставил все картинки в BatUnits.ff, ISOUnit.ff, Face.ff и Events.ff. Пофиксил, чтобы игра запускалась. Я умудрился испортить GUnits.dbf, пока ковырялся. Новый юнит по-прежнему невидно на поле боя. Симптомы такие же, как и у Drehera. Только у меня все картинки вставлены. Непонятно, как игра распознает звуки для каждого юнита, т.к. в .wdb, .wdt файлах нет никакого общего правила наименования записей. Некоторые записи поименованы Unit5012Effect, а другие WDRAGONHITA. Это никак не связано на первый взгляд с таблицей существующих юнитов, где имена использованы такие: G000uu8151...
HSerg
Со звуками всё запутаней, так что подожди до среды - вернусь из ком-ки и выложу софтинку для просмотра ресурсов по юнитам.

UPD: См. в файлах D2UnitsViewer v.0.1b
Dreher 
To Vadzra
в них стоит g0000000.
Vadzra 
Как у тебя получилось, что вместо юнита на арене пустое место? Что у тебя стоит в GUnits.dbf в колонках Prev_ID и Base_Unit?
Dreher 
Сергей а какой программой ты сохраняешь "256-цветный png"? Вообще такого не нашел.... Нашел только 256 bmp - в Paint и то с ужастным искажением. В википедии в "цветное индексированное изображение" про палитра 8 бит для цвета глубиной 24 бит. И вообще там нет ничего понятного.(
HSerg
В Paint.NET можно сохранить как PNG с глубиной цвета 8 бит.
Dreher 
и еще: Сергей не мог-бы ты к следующей версии программы добавить в нее небольшой справочник (хоть мало-мальский). Для начинающих мододелов.
Dreher 
вот вам скриншоты моих работ, что-бы понятнее было что уменя не получается (там все мною подписано):
http://ccgames.ucoz.net/dnm/1.gif
http://ccgames.ucoz.net/dnm/2.gif
http://ccgames.ucoz.net/dnm/3.gif
А вот, непосредственно сам портрет который я пытался вставить в игру:
http://ccgames.ucoz.net/dnm/G000UU8114.gif

p.s. картинки в плохом качестве что-бы весили поменьше (у меня то безлимит, а у вас не знаю).
Dreher 
я могу поставить старые картинки на нового юнита (т.е. просто выгрузить старого переименовать и вставить для моего) но мне-то нужен абсолютно новый - а для этого нужно (как я понял) загрузить новые картинки в BatUnits.ff, ISOUnit.ff, Face.ff и Events.ff. последнее это непосредственно их портреты. я начал с Face.ff - там все ок (всего две маленькие картинки нарисовал и вставил) - а главное что все работает (в игре они корректно отображаются). затем я принятся за Events.ff (а то нехорошо как-то крестоносцу без портрета), картинки то я нарисовал быстро. только, вот проблема - там где в игре прозрачно - оно должнобыть розовым (как в d2resexplorer и paint) или прозрачным как в paint.net? попробывал и так и так, пишет "invalid png image" - и ни вкакую не пакует...(
я так понимаю там что-то не так с палитрой (или с форматом сохранение, например нужно меньше цветов как вариант). обьясните пожалуйста как мне сохранить портрет чтобы он не писал "invalid..."? может я не теми программами пользуюсь (думал фотошоп не обязательно качать).
вот-бы конвертор такой чтобы конвертировал в нужный формат с нужными аттенками. Очень жду ответа (и мой новый юнит крестоносец также ждет :) ).
HSerg
Посмотри на http://ru.wikipedia.org/wiki/Png про "цветное индексированное изображение". Этот формат поддерживается большинством редакторов изображений (иногда он встречается под именем "256-цветный png").

Про прозрачность написано в info.rus.txt - это первый цвет палитры изображения.
Vadzra 
Да, я в IDA и пробую. Просто, когда игра выходит на exception, когда проверяет графические данные я так подозреваю, то все зависает, так как этот exception не передает управление IDA.

To Dreher

Да, я это уже тоже проходил, когда в игре появляется юнит с новым названием и графикой от старого юнита, но, чтобы появился юнит со своей графикой, то соответственно ее нужно вставить. Я нашел три места, где это нужно сделать: BatUnits.ff, ISOUnit.ff и Face.ff. Последний - необязательно, так как если он отсутствует, то игра вставит дефолтовый. Пока все равно игра не запускается. Где я что-то невставил, пока не знаю. Наткнешься на что-то, пиши.
HSerg
Заигнорь их при первом возникновении. Они проскочат и игра запустится.
Dreher 
я могу создать нового юнита в глобалс - у меня все работает, все ок. кроме одного но: мой юнит невидим(нет он есть он бьет или колдует умирает и тп) или имеет внешний вид друго-го юнита (это по моему желанию если я укажу это в базеюнит). но мне-то надо что-бы мой юнит был новым не только по имени описанию и статам (характеристикам) но чтобы еще он и выглядел по другому.
HSerg
Это всё делается с помощью IndexMap в D2ResExplorer. Выгрузи картинки/анимацию от какого-нибудь стандартного юнита, поправь и загрузи в IndexMap для своего.
Vadzra 
Спасибо за новую версию Explorer. Еще пока не пробовал работать с .gif в ней, но должно быть интересно :). Пока застрял на инициализации игры. Я уже примерно знаю, какие процедуры используются для инициализации графики, но нормально запустить игру под дебагером пока не получается. Она запускается, потом виснет. Что-то не так с настройкой exceptions. Просто глазами пока не вижу, где я графику ненастроил, так что пробую дебагером.

To Dreher:
Как создавать изображения новых юнитов и вставлять их потом в игру никто кроме девелоперов пока незнает. Я последний месяц только это и пытаюсь сделать. Почитай ниже мою переписку с HSerg. Вкратце - нужно вставить новую анимацию в файлы ISOUnit.ff и BattleUnits.ff, в Faces.ff вставляется соответственно иконка юнита. Еще новый юнит должен быть прописан в ресурсах из папки Globals. Я все это сделал, но что-то упустил и теперь игра с этим новым юнитом незагружается, ибо неинициализируется графика...
HSerg
Попробуй IDA - у меня под ней всё работает.
Dreher 
Недавно стал заниматься графическим модингом Disciples 2. Сразу возник вопрос, почему я не все изображения могу изменить? Изменяя изображения в архиве Events.ff у меня выходит какае то ерунда, а в Faces.ff все прекрасно изменяется... А, как создать изображения нового юнита вообще не знаю. Зачем нужны MQDB-контейнеры так и не понял... Кто сведущ в редактировании графики в Д2 пожалуйста помогите (mark_t@i.ua). Обьясните что - к чему. Очень прошу!
Vadzra 
Т.е. информация какой файл палитры использовать хранится в MQDB?

Так, я завершил труд по вставлению кадров анимаций в соответствующие файлы анимации для нового юнита. Дисы все еще не запускаются. Если есть идеи, то они были бы очень кстати...
HSerg
Точнее в составе элемента ImageMap.

Если уверен, что всю графику прицепил, то может звук?

Добавил импорт анимации из GIF-ок. При этом имитируется D2-подход - фреймы склеиваются в единое изображения и цепляются в анимацию единым ImageMap-блоком.
Vadzra 
Некоторые новости о прогрессе: вставляю в каждую из анимаций правильные кадры. Твой совет вставить одинаковые кадры не использую, т.к. хочу уменьшить количество вариантов, по которым все это может не заработать. Вставка кадров занимает большое количество времени. Вчера закончил BattleUnits.ff, буду теперь ковырять ISOUnit.ff. Есть некоторые вопросы по файлам палитры, например, как они связаны с файлами анимаций?
HSerg
В D2 все изображения на базе палитр [ см. http://ru.wikipedia.org/wiki/Палитра_(компьютерная_графика) ]. В ImageMap используется одна палитра на все изображения блока (и соотв. одна на несколько кадров анимации) - это экономит место и позволяет "дёшево" перекрашивать изображения (делаем два ImageMap с разными палитрами, но поверх одной PNG).
Vadzra 
Хотел уточнить последовательность ввода данных. Я создаю анимацию в AnimMap из кадров, которые уже доступны в IndexMap. После этого эта анимация автоматически прописывается в IndexMap. До сих пор вроде все ясно.
Но, что случается с этой анимацией в MQDB? Как она туда попадает? Если в данный момент никак, а MQDB данные (возможно) нужны для инициализации графики нового юнита, то единственный способ вставить данные для этого юнита в MQDB - это воспользоваться MQDB файлами для другого юнита. Чтобы они совпадали по содержанию с тем, что я создал в AnimMap, придется все AnimMap анимации заполнять 16-ю кадрами.

Редактора на примете нет, но если увижу, то подскажу.

Да, там баг, судя по всему. Если навестись на анимацию в IndexMap, то эта обция доступна. Кликая на нее, получаем просто редактор анимаций. Отсюда мой confusion в самом начале.
HSerg
Порядок такой:
1. Рисуется анимация или просто набор картинок (в чём угодно) с одинаковой палитрой
2. Спец. софтиной:
- картинки склеиваются в MQDB
- регистрируются в IndexMap отдельными картинками из состава MQDB
- собирается анимация в AnimMap из картинок IndexMap
- анимация регистрируется в IndexMap.

Попробую к выходным добавить импорт GIF-ок. Но работать должно и без ImageMap. Их основное предназначение - место экономить за счёт сжатия.

Пофиксил баг и добавил поиск.
Vadzra 
Вобщем, со вставлением графики для нового юнита в игру возник затык. Анимацию я вставил и я думаю она нормально вставилась в IndexMap и AnimMap. Теперь вопрос в том, зачем нужны MQDB данные и как их создавать? У меня есть подозрение, что эти данные нужны и используются для правильной инициализации юнита. В принципе, я могу их организовать путем сохранения уже существующих файлов и обратного их добавления, но так можно работать только, если хочешь вставить обратно тот же файл, который экспортировал, но если в будущем вставлять новые файлы для новых юнитов, то сначала неплохо бы понять, как их создавать.

Да, в тех файлах, где есть только MQDB данные никакой проблемы нет, так как там просто можно обойтись импортом PNG в качестве MQDB файла. Но там, где есть анимации формат MQDB файлов сложнее, там все кадры анимации спрессованы в один файл. Можно это как-то воспроизвести?

Другое ограничение, если не создавать MQDB файлы самому, то нужно, чтобы соответствующие им анимации содержали правильное количетво кадров, чего в данный момент не наблюдается ибо для экономии времени я создал анимации для нового юнита с одним кадром.

Это можно поправить вручную, но очень занудно вставлять по 16 кадров в примерно 16 анимаций...

Пока же, я думаю возможно из-за отсутствия МДЯБ файлов для нового юнита Дисы у меня перестали инициализироваться. Help! :)
HSerg
MQDB данные нужны в первую очередь для оптимизации размеров файлов ресурсов. Один MQDB-ресурс = базовая картинка + палитра + описание декодирования нескольких изображений (ближайший аналог - анимированный GIF, поэтому сделан экспорт в GIF-ки). Если внимательно поползать по файлам, то можно заметить, что MQDB используются не только для анимаций.
Для каждого изображения из MQDB-ресурса заводится описание в IndexMap. Ну а AnimMap уже составляется из элементов IndexMap.

Можешь создать анимацию на 16 кадров из одного и того-же изображения (AA AA AA AA ...). Это проще всего и для тестов пойдёт.

Если изменений не жалко, то можно починить с помощью *.orig файлов (создаются перед модификацией).

Могу попробовать импорт анимированных GIF-ок сделать. Но нужно выбрать какой-нибудь GIF-редактор для инструкций. У тебя ничего на примете нет?
Vadzra 
Разобрался, исследую. Кстати, такое впечатление, что новая анимация создается, если ты наводишься на Anim Map, если же ты наводишься на Index Map, то там эта опция тоже доступна, но новая анимация при ее использовании не создается.
HSerg
Т.е. на Index Map пункт меню активен? Если так, то бага. Должен быть доступен только на Anim Map.