Черновик гайда по модификации Героев сделанный из сообщений этой темы.
Отформатированный исходник с картинками 1. Введение
Для себя делю модификацию или моддинг Героев на три большие части
- Работа с ресурсами. Изменение графики, звуков и т.д - все здесь.
- Изменение правил игры. Делается скриптами или ковырянием в экзешнике.
Подвид предыдущей части:
- Расширение существующего функционала: добавление новых уровней в карты, новых городов, увеличение списка героев, заклинаний и т.д.
Рассматриваю в основном модификации под платформу Эра 2.х, т.к. она включает в себя весь ВоГ 3.58, ВоГ 3.59 ещё нет в открытом доступе, а ХотА не позиционируется как платформа для моддинга, хотя работа с ресурсами возможна и в ней.
Весь используемый мной софт здесь -
http://yadi.sk/d/DN6629vm9WTZT2. Моддинг
Забегая вперед, скажу: ИМХО, самый правильный способ сделать свой мод это
1. Сделать папку своего мода в \mods\
2. Отразить в ней структуру изменяемых ресурсов, сделать подпапки \data\, \data\s\, \eraplugins\
3. Изменяемые дефы, картинки и текстовики хранить в \data\
4. Для их использования запаковать их в лод, присвоить лоду уникальное имя и изменить расширение на *.рас.
5. Для выпуска мода заархивировать всю папку, удалив из подпапки \data\ все дефы, картинки и текстовики, но оставив *.рас.
6. Добавить в архив комментарий
Где в строке Setup=Tools\installmod.exe указать название папки своего мода
2.1 Ресурсы игры
В порядке приоритета загрузки
1. Если установлен HD-мод, то некоторые исправленные ресурсы хранятся в \_HD3_Data_\packs\
2. Ресурсы модов под Эру находятся в \mods\<название мода>\data\
3. Ресурсы оригинальной игры хранятся в папке \data\
Если расположение ресурса отличается от указанного - отмечу особо. В качестве корня рассматривается папка Героев.
2.1.1 LOD/PAC
- архив с основной частью ресурсами игры. Предпочитаю открывать их через MMArchive или плагины Total Commanderа. Через утилиту обычно удобнее, т.к. можно сразу просмотреть спрайты и картинки
Файлы оригинальной игры содержат:
- h3sprite.lod - спрайты игры (def, msk, msg)
- h3bitmap.lod - шрифты (fnt), файлы кампаний(h3c), палитры(h3c), картинки(pcx), текстовики (txt)
- heroes3.snd - звуки игры (wav, без расширения)
- video.vid - видеофайлы (smk, bik)
В самом лоде с ресурсами не работают, только просматривают, извлекают и запаковывают обратно. Если мод под Эру содержит изменяемые ресурсы, их надо запаковать в лод с уникальным именем (обычно совпадает с кратким названием мода). Рекомендую проассоциировать LOD и PAC файлы с ММА.
2.1.2 DEF
- спрайты игры (Заклинания, монстры, объекты для карты, интерфейс). Состоят из одного или нескольких кадров - картинок. Просматривать DEF можно с помощью DefPreview, создавать (собирать из отдельных кадров) через Deftool.
Для замены нужного кадра в дефе, т.н. пересборки Def'a нужно:
1) Открой нужный деф DefPreview, и выбрать Меню->Правка->Распаковать всё для Дефтул.
2) Все кадры дефа и HDL-файл будут выгружены в указанную папку
3) Заменяешь нужный кадр.
4) Открываешь *.HDL-файл в DefTool и собираешь заново новый деф.
2.1.3 FNT
- файлы шрифтов, отредактировать их можно с помощью утилит Fnt и Fntedit. Примеры доработанных шрифтов
2.1.4 H3C
- файлы кампаний, их можно извлечь и просмотреть через штатный редактор кампаний
2.1.5 PAL
- игровая палитра, отвечает за цвета игроков и т.д. Альтернативные палитры
2.1.6 PCX
- Картинки игры (интерфейс, портреты (1, 2), фоны городов, карты территорий из заставок кампаний, куски карты-загадки).
Внутри лода нестандартный формат PCX! Большую часть картинок в НММ можно в лод не запаковывать, а просто кидать в папку DATA. Но тогда картинка должна быть в формате РСХ (256 цветов). Обычно картинка должна иметь прозрачный фон, но т.к. для загрузки в лод картинки должны быть в формате BMP, то прозрачный фон должен отображаться цианом (голубовато-зеленым 00FFFF или другим цветом, если он указан в палитре).
NB! Если на картинке с циановым фоном есть антиалиасинг, т.е. сглаженные края, то в игре будет голубая кайма вокруг, т.к. при сглаживании фон меняет свой цвет и игра уже не считает его прозрачным.
картинка загрузки игры, Zpic106.bmp (дракон в ВоГе) должна быть полноцветной.
TXT
- В текстовиках хранятся перечни героев, монстров, объектов и т.д. По сути, TXT-файл представляет таблицу, в которой переводы строк не Windows, а UNIX-овые. Удобнее всего редактировать эти текстовые файлы утилитой txtedit или ermeditor
ObjtxtEditor используется для редактирования файлов, относящихся к объектам.
ARRAYTXT.TXT - Всякое. здесь можно поправить показ кол-ва монстров, чтобы вместо "Мало" было "1-4"
ARTEVENT.TXT - Сообщения при поднятии артефакта.
ARTRAITS.TXT - Свойства артефактов.
BLDGNEUT.TXT - Описания некоторых зданий (гильдия магов, магистрат и т.д..).
BLDGSPEC.TXT - Описания других зданий.
BALLIST.TXT - шансы попадания баллистой при осаде, нанесенный урон и кол-во раз стрельбы.
CREDITS.TXT - Авторы.
GENRLTXT.TXT - Прочие текстовые сообщения.
MINEEVNT.TXT - Сообщения при захвате шахт.
MINENAME.TXT - Названия шахт.
RANDSIGN.TXT - Надписи на знаках.
RANDTVRN.TXT - Слухи в тавернах.
RESTYPES.TXT - Названия типов ресурсов.
SSTRAITS.TXT - Описание навыков.
ZMESS00.TXT - Все новые ВоГовские сообщения.
ZREDITS.TXT - Авторы (ВоГ).
Текстовики, относящиеся к конкретным объектам геймплея, войскам, объектам на карте и т.д. - будут упомянуты в соответствующем разделе.
82M
- звуки игры, переименованый WAV с параметрами Sample Size: 8-bits, Channels: 1, Sample Rate: 22050. Но работает и с нормальной битностью, частотой 16-bits 44100khz
SMK, BIK
- игровое видео. Описание видеофайлов
ERM
- Скрипты, основа функционала WoG, хранятся в папке DATA\S\
BIN
- патчи для внесения изменений в память игры на лету. Обычно хранятся в \mods\<название мода>\eraplugins\AfterWoG. Можно положить в \mods\<название мода>\eraplugins\BeforeWoG, когда применять заплатку нужно до кода ВоГ.
MP3
- музыка. Хранится, как ни удивительно, в папке \mp3\. Описание треков
2.2 Элементы игры
2.2.1 Объекты на карте
Каждому дефу объектов для карты сопутствуют файлы MSG и MSK, в них хранятся данные объектов (размеры, проходимость и т.д.). Для новых объектов проще всего их создать автоматически при сборке нового def'a в Deftool.
zeobjts, zaobjts and zobjcts.txt - список объектов
Эти три файла управляют объектами в редакторе (ze), на рандомках (za) и в игре (zo). Откройте zeobjts в ObjtxtEditor и через поиск (CTRL+F) найдите строчку с avgpixie.
1) В поле Def File Name (синее) сотрите AVGpixie.def и укажите название дефа вашего жилища.
2) Желтые, красные и серые клетки показывают проходимость объекта и место входа в него. Красные - непроходимо, желтый - вход. Чтобы изменить типы клеток, щелкайте по квадрату нужного цвета, а затем - по нужному квадрату объекта.
3) По завершении нажмите квадратную кнопку сверху with exp in it in red. Перейдите к полю выбора подтипа (второй, только с числами) и измените номер на 101. Это соответствует линии в DwTable.txt вашего первого жилища. Сохраните тип 17.
4) В меню редактирования выберите "insert file after current position" (вставить файл после текущей позиции), должна появиться новая строка.
Нужно скопировать эти изменения в zobjcts.txt и zaobjts.txt.
2.2.2.1 Внешние жилища
DwTable.txt - список внешних жилищ
добавьте в конец новые строки с названиями жилищ ваших существ и множественным названием ваших существ в жилище.
ZDWELL8.txt отвечает за существо #211, нового 8-уровневика.
CRGEN1.TXT - Названия жилищ (на карте).
CRGEN4.TXT - Названия дополнительных жилищ (на 4 существа).
ZCRGN1.TXT - Названия ВоГовских жилищ на карте.
CRBANKS.TXT - банки существ
2.2.2 Войска
Существа в игре в и их жилища перечислены в отдельной таблице
zcrtrait.txt, crtraits.txt, crtrait0.txt - параметры существ
Основным для Эры/ВоГа является zcrtrait.txt, crtraits.txt и crtrait0.txt можно сделать его копиями
CRTRAITS.TXT - свойства монстров для СОД. Текстовик загружается раньше, чем ZCRTRAIT.TXT. Если ВОГ НЕ в рабочем состоянии (например, отсутствует zvslib1.dll) - часть exe от СОДа грузит именно CRTRAITS.TXT.
CRTRAIT0.TXT - чисто для редактора карт.
cranim.txt - контролирует скорость анимации существ, а также специфический код стрелков.
Если ваше существо не стрелок, то вы можете очень многое скопировать из строки другого не-стрелка. Если ли же стрелок, то скопируйте строку какого-нибудь другого стрелка, но обратите внимание на столбцы со второго по последний. Это число (числа?) соответствует кадру последовательности выстрела, где стрелок фактически замирает и запускает выстрел, а затем завершается анимация.
Если это число превышает количество кадров у вашего стрелка, игра вылетит во время выстрела, так что будьте осторожны.
Обычно угол выстрела соответствует такому же у других стрелков, и базируется на кадрах выстрела в SHOT###.def. Смещение столбцов соответствует, где именно выстрел покидает стрелка, и может выглядеть так, что выстрел идет прямо из головы стрелка, а не из его лука.
ZCREXP.TXT - Опыт отрядов.
crexpbon.txt - позволяет редактировать бонусы существ при наборе опыта. вкратце так:
Номер существа, символ бонуса, "+" для добавления значения, "=" - для установки значения или "%" для процентов, и 11 столбцов, отвечающих за уровни с 0 до 10. Для примера: в первой строке для пикинеров последний столбец дает +1 скорости на 4ом ранге.
-CPrSmall.def содержит эмблемы всех существ, которые можно увидеть в информации об армии героя в правом нижнем углу на карте приключений и на экране города в правом нижнем углу.
-TWCrPopt.def содержит портреты всех существ с фоном города, которые можно увидеть на экране героя и в городе в армии героя.
-AVWAttak.def содержит анимации атаки существ на карте приключений. Внутри вы найдете левое и правое (зеркальное) изображение существ в боевой позе. Добавьте 30 (15 левых, 15 правых) в конце этого файла.
-CRbkgEle.pcx - фон для ваших существ для изображения существ в свойствах существа, открываемых на экране героя или в бою. Может быть тем же самым, что и TPCasEle.pcx.
Для добавления новых существ требуется плагин amethyst.dll (для ERA). Номера ваших существ будут от 197 до 211. нужно сделать их в deftool и назвать CR###.def, где ### - 197 для неулучшенного существа 1го уровня, 198 - для улучшенного существа 1го уровня и так далее до 211 - для существа 8го уровня ед.
Если вы хотите, чтобы ваше существо было лучником с уникальным выстрелом, сделайте один def с именем SHOT###.def, где ### - номер вашего существа. Если вы хотите скопировать выстрел у текущего существа, извлеките его DEF и переименуйте его.
ZNPC00.TXT - Описания командиров.
ZNPC01.TXT - Имена и биографии командиров.
2.2.3 Города
TOWNNAME.TXT - Названия городов.
TOWNTYPE.TXT - Типы городов.
2.2.3.1 Города на карте
AVCfor(0,x,z).def - изображения городов на карте приключений. При желании можно сделать их анимированными. Файл с 0 - деревня, с x - замок и с z - столица. Если вы используете вог-опцию разрушения городов нужно заменить и дополнительные изображения рушащегося города
itpa.def и itpt.def содержат маленькие изображения замков и деревень в списке городов боковой панели
2.2.3.2 Окно города
DWELLING.TXT - Названия жилищ (Во всех городах).
BUILDING.TXT - Стоимость постройки зданий.
Для каждого города есть фон TBххBACK.pcx и около 43 зданий. Для каждого городского здания требуются 3 файла:
TBхх - анимация здания (или просто картинка, если анимации нет),
TOхх - контур, появляющийся при наведении курсора мыши,
TZхх - маска здания, которая поясняет игре, когда курсор находится над зданием.
SGхх - картинки экрана осады города. Тема с обсуждением
Hallхххх.def содержит изображения зданий на экране ратуши. Они находятся в определенном порядке, поэтому при создании Defа убедитесь, что всё соответствует. Самый простой способ сделать это - использовать извлечь все для H3DefTool из просмотра в DefPreview файла HallElem, затем заменить нужные картинки, и пересобрать Def обратно.
- TPcasEle - фоне существ города
- TPMageEl - кусочки фона города из гильдии магии
2.2.4 Герои
HCTRAITS.TXT - Наименования классов героев, стартовые параметры и вероятности получения навыков.
HEROBIOS.TXT - Биографии героев.
HEROSPEC.TXT - Специализации героев (только названия и описания).
HOTRAITS.TXT - Имена и стартовые армии героев. Наименования типов войск декоративные, здесь можно изменить только количество стартовых войск.
ah%%.def и 1h%%_.def - спрайты героев на карте. ch%%.def and ch%%.def - изображения героев в битве.
%% - номер класса героя (рыцарь, священник и т.д.)
HPL%%%?? - большой портрет для окна героя
HPS%%%?? - малый портрет для списка героев на карте
%%% - номер героя, дополненный слева нулями
?? - код класса героя. KN - рыцарь и т.д.
un32.def и un44.def содержат все маленькие и большие картинки специализаций героев.
2.2.5 Заклинания
spell* - 4 файла с иконками заклинаний
SPTRAITS.TXT - Описание заклинаний. Здесь можно указать уровень заклинания, принадлежность к определенной школе, цену, эффект и описание
2.2.6 Интерфейс, главное меню
2.2.6.1 Главное меню
ZloadGAM.bmp (надпись \\\"загрузка игры\\\")
ZmainMEN.bmp (боковая панелька без кнопок для вида \\\"об авторах\\\")
ZnewGAM.bmp (надпись \\\"новая игра\\\")
Zpic1000.bmp (рисунок в окне выбора параметров игры)
Zpic1001.bmp (альтернативный рисунок в окне выбора параметров игры)
Zpic1005.bmp (основной фон)
Zpic106.bmp (фон \\\"загрузки\\\")
ACredit.smk анимация буквы T из Надписи In The wake of Gods при старте игры
AISHIELD.PCX - щит вместо миникарты во время хода противника/
muMAP.bmp (мини фон в окне мультиплеерной игры)
AOFLG** - флаги, отображаемые в окне героя? (справа в углу)
3. Изменение правил игры
3.1 ERM
Пример изменения специальности героя через ERM:
!!HE#:X#1/$2/$3/$4/$5/$6/$7, Изменить специальность героя.
# - номер героя. У Турис (женские имена не склоняются, поэтому У или А на конце не пишется) номер 7
#1: Типы специальностей. 6 – спец по улучшениям
$2, $6 и $7 - $2 = существо 1 для улучшения, $6 = существо 2 для улучшения, $7 = существо улучшенное
11 - Чемпион
81 - Скорпикора
134- Сказочный Дракон
Результат:
!#HE7:X6/11/0/0/0/81/134
3.2 Патчинг
Для исправления надо знать нужные адрес и значение. Либо искать вручную НЕХ-редактором, отладчиком и т.д., либо смотреть здесь.
Заходишь в папку \tools\BinMagic, создаешь текстовик blah-blah.txt, пишешь в него текст патча (НЕХ-адрес и значение на которое надо поменять), сохраняешь, выполняешь в командной строке Total commander'а binary.bat blah-blah.txt, получаешь blah-blah.bin, который нужно положить в data/mods/<modname>/eraplugins/afterwog/
Пример текстового файла
67B1C0 33; Замена Nimus'у в стартовой армии стека собак на 1 изверга (пит-лорда).
4. Расширение правил игры
- Изменение разрешения игры, если кто не знал: HD-мод.
- добавление новых уровней в карты, кроме поверхности и подземки. Нет
- изменение размеров карт <S и >XL. XXL-патч
- Добавление фракции (города) - Один добавлен в HotA, планируется ещё несколько. Очень сложно
- Замена фракции (города) - с десяток наберется.
- Увеличение кол-ва монстров - Да
- Добавление новых абилок монстров Несколько добавлено в моды HotA и Мaster оf Рuppets.
- Увеличение кол-ва артефактов - Да
- Увеличение кол-ва героев - Нет
- Увеличение кол-ва навыков героев - Нет
- Увеличение кол-ва классов героев - Да
- Увеличение списка заклинаний. Несколько добавлено в мод Мaster оf Рuppets. Очень сложно
5. Примеры
5.1 Работа с графикой
Из переписки. Для возврата старого SoDовского варианта графики копейщиков и орков для HotA, как пример работы с лодами и дефами. Или наоборот - взять из HotA нужную графику.
1. Из HotA.lod нужно удалить дефы:
AVWORC0
AVWORCX0
AVWPIKE
AVWPIKX
CHALBD
CORC
CORCCH
CPKMAN
2. Извлечь оттуда же дефы TWCRPORT и CPRSMALL и "распаковать все для Deftool" из них через DefPreview
3. Извлечь из SoDовского h3sprite.lod дефы TWCRPORT и CPRSMALL и выдрать оттуда нужные портреты
4. Заменить в папках, куда распаковал файлы из п.2 новые портреты на старые из п.3
5. Собрать файлы TWCRPORT и CPRSMALL обратно с помощью Deftool. Запаковать обратно в hota.lod
6..9 Повторить п.2..5 для дефов UN32 и UN44