Wake of Gods Forum | Форум Во Имя Богов

Full Version: Общая тема по NOT USED монстрам
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
Возможно, некоторые будут удивлены, но для данной операции не нужно UN:C, ЭРА, изменений в exe и прочей головной боли. Использовать NOT USED-ов может практически любой человек, малость понимающий в ресурсах.
Итак, что нам нужно (Прим. # - 1 для 122, 2 для 124, 3 для 126, 4 для 128).
1) BAD# - деф без расширения для анимации монстра в битве. Кладётся в h3sprite.lod или h3custom.lod. Портировать лучше всего SimpleLod-ом от Сергея – wog-архивы могут давать ошибки, а ResEdit вообще на такое не способен.
2) Файл X.def для карты – для прописки монстра в объектных текстовиках (X – произвольное имя). Редактируются файлы ZEOBJTS.txt и ZOBJCTS.txt.
3) BAD#ATTK.82M, BAD#DFND.82M, BAD#KILL.82M, BAD#MOVE.82M, BAD#WNCE.82M. – файлы озвучки. Если у вас в распоряжении wav-звуки – сменить им расширение на 82M.
4) Портреты монстров для TWCRPORT.def и CPRSMALL.def.
5) Портреты монстров для AVWATTAK.def. Файл используется для отображения монстров, на которых нападают. В принципе, не особо обязательно его изменение, но если вы не хотите, чтобы в момент нападения монстр на карте отображался как копейщик – конечно, измените.
6) Заполнить колонки NOT USED-а в ZCRTRAIT.TXT (имя, характеристики, описание).
7) Если вы играете с опытом – заполнить колонки CREXPMOD.TXT и CREXPBON.TXT. При этом лучше разбить первую колонку в CREXPBON.TXT (-8 – для всех монстров) на семь аналогичных (-1, -2 и т.д. до -7). Связано это с тем, что новый монстр получается безуровневым, а строка «Здоровье» у него есть, но смещена куда-то в хвост абилок, а остальные способности выглядят как незаданные. Впрочем, абилки куда проще задать скриптом.
После этого вы можете пользоваться новыми монстрами. Какими-то особенными свойствами (вроде трёхглавой атаки Цербера или колдовства случайного закла у Мастер-Джинна) они обладать, конечно, не будут, но с помощью различных боевых менеджеров (ERM) можно добиться уникальности юнита. Уровень также можно задать скриптом.

Команды ERM, применимые для NOT-USEDов - ВСЕ.

Отдельно:
a) для подсказки при наведении мыши в редакторе карт нужно скопировать строку NOT-USEDa из ZCRTRAIT.TXT в CRTRAIT0.txt (при этом описание монстра в справке не будет!).
b) Для того, чтобы герою в редакторе карт можно было поставить в слот нового монстра, надо добавить строку в колонку Standard monsters в Monsters.txt (Data\MapEdPatch).
c) Если у вашего юнита есть анимация стрелка и вы хотите, чтобы он стрелял – сделайте PBASIL.def с изображением снаряда и загрузить в лод, а также создайте озвучку стрельбы – BAD#SHOT.82M. Количество патронов задаётся в ZCRTRAIT.TXT или скриптом.

Всё, что здесь написал, выяснил сам, ни с кем не советуясь. Поэтому жду поправок и добавлений от участников форума.

С н/п, Master Of Puppets.
Пожалуй, продублирую тут вопрос, на который на дф2 я так и не получил ответ. Ответом была лишь полная тишина.
Почему любое задание характеристик not used-ов через !!MA (будь то уровень, тип города, флаг и т.д.) приводит к невозможности повторной генерации рандомки без перезапуска игры? Как от этого избавиться?
Quote:Почему любое задание характеристик not used-ов через !!MA (будь то уровень, тип города, флаг и т.д.) приводит к невозможности повторной генерации рандомки без перезапуска игры? Как от этого избавиться?

MOP, скажу тебе честно: я не знаю 105!

P.S. Меня ксати этот вопрос озадачил, попробую что-нибудь раскопать по этому поводу...
(09.06.2009 19:25)MOP Wrote: [ -> ]Пожалуй, продублирую тут вопрос, на который на дф2 я так и не получил ответ. Ответом была лишь полная тишина.
Почему любое задание характеристик not used-ов через !!MA (будь то уровень, тип города, флаг и т.д.) приводит к невозможности повторной генерации рандомки без перезапуска игры? Как от этого избавиться?

1. Почему не генерится карта не знаю, но вероятнее всего генератор пытается поставить несуществующих монстров на карту, что не есть хорошо.
2. Перезапуск нужен для обнавления характеристик монстров, которые подгружаются из текстовиков.
3. Как избежать:
    а) написать патч для обновления характеристик монстров при генерации новой карты
    б) не трогать характеристики not used монстров
Quote:1. Почему не генерится карта не знаю, но вероятнее всего генератор пытается поставить несуществующих монстров на карту, что не есть хорошо.
У меня эти монстры прописаны в объектных текстовиках. Во всех.
В Zcrtrait.txt тоже норм - все характеристики заданы.
Но что-то всё равно не в порядке. Недаром их озвучки называются bad1, bad2... Image: boredom.gif
А если пропатчить с помощью Эры на этапе запуска игры? Адреса мне знакомы. Может, если напрямую, то получится? Может, если генератору случаек заранее будут известны тип города, а главное - уровень монстра, он сам поставит not used-ов на карту?
Или, может, просто выставить ему мин. и макс. кол-ве на карте по нулям, чтобы генератор даже не думал его ставить...
Странно, что именно !!MA. Убираешь эту команду - и генерация карты идёт нормально. Абилки not used-ам задать тоже легко.
В коде кроме обычной смены значений в таблице вызывается функция CrIsChanged (существо изменено). Слава помечает изменённые существа, чтобы потом восстановить. Возможно восстановление параметров не обрабатывает not-used-ы или обрабатывает некорректно.
Вопрос отпал. Траблу решил простеньким кодом вроде такого:


Sm
(11.06.2009 05:34)Berserker Wrote:Я гружу сейвы по кнопке "L"
Ну повесить ещё код на номер кнопки 76 и на другие клавиши, которые могут быть "опасны". ЭРА же, етить её... JC_voodoo
Главное, что решение нашёл. Budo
Тогда да Sm
Зы, так решение очевидно, сохранять и восстанавливать параметры. Я же писал, там банальная запись в память.
Уточнения:
1) При выходе в меню или рестарте карты изменения в памяти, касающиеся характеристик not used-ов, не сбрасываются. Поэтому, если изменения с помощью ERM (!!МА) имели место, при попытке сгенерировать рандомную карту (без перезапуска игры) следует вылет. Генератор, судя по всему, пытается поставить на карту этих существ, что и приводит к краху.
Лечение:
1)Сбрасывание характеристик на исходные при клике на кнопке "Системные опции" и нажатии некоторых горячих клавиш (ЭРА). 2)Задание нужных характеристик при любом клике кроме клика на кнопке "Системные опции" и при загрузке игры.
(!)Ошибки не касаются изменения снарядов, дефов и озвучки, так что скрипты, приведённые ниже, можно юзать с лёгкой душой.
(!)Ошибки связаны только с командой !!МА. Другие команды ERM этого не вызывают.
Также с фиксированными картами проблем не возникает. Sm
2) Если вам хочется использовать нормальные дефы с расширением, чтобы исключить проблемы при упаковке в лоды, а также, если вы хотите сменить озвучку - можете воспользоваться следующим скриптом (подходит для WoG3.58f и ТЕ):
Вы также можете использовать этот скрипт для редактирования любого стандартного монстра.

3) Настройка стрельбы:
Чтобы монстр стрелял, в его дефе должна быть анимация стрельбы, установлен флаг стрелка, а также должен быть установлен тип снаряда. В задании типа снаряда вам поможет этот скрипт (для WoG3.58f и ТЕ):
Вы также можете изменять снаряды для любых стандартных монстров (кроме, возможно, пикимена и алебардщика).
Лентяй@df2 Wrote:в SOD такого нового монстра встроить никак нельзя?
В принципе, можно. Не вижу особых проблем - ведь эти not used-ы были и до ВОГ. Память увеличивать не надо. Лишь чуть поправить exe (в каком месте - знаю).
Разве что этот монстр никогда не будет генерироваться РМГ, а вместо этого будет вылет игры (на фиксированных картах с этим всё в порядке).
Ну и спецсвойств у него не будет никаких.

Конкретно, по адресу 00274B00h в Heroes3.exe (SoD) располагается таблица данных для Not-Useda 122. Данные каждого монстра занимают 116 байт, на каждый параметр - 4 байта. Всего 116 / 4 = 29 параметров. То есть, через 232 байта после начала данных 122-го найдешь данные 124-го и т.д.

Таблица данных монстра:

1)Тип города
2)Уровень
3)Ссылка на первые 4 буквы озвучки
4)Ссылка на деф монстра в битве
5)флаг монстра
6)Ссылка на название в единственном числе
7)Ссылка на название в множественном числе
8)Ссылка на описание
9) - 14) Цены в доп. ресурсах. Берётся лишь первое ненулевое значение из цикла.
15)Цена в золоте
16)Fight value
17)AI value
18)Базовый прирост в городе
19)Доп. прирост (Horde Growth)
20)Очки жизни
21)Скорость
22)Атака
23)Защита
24)Мин.урон
25)Макс.Урон
26)Кол-во боеприпасов
27)Кол-во заклинаний (для колдунов)
28)Минимальное кол-во монстра на карте
29)Максимальное кол-во монстра на карте

Синим я выделил пункты, которые нужно править. Остальные сами загрузятся из crtraits.txt, который тоже нужно поправить. В самом exe эти данные нулевые.
Про деф и озвучку уже говорилось в первом посте. Хотя можно для разнообразия найти bad1 и т.д. в exe и переименовать на свой лад (only 4 буквы). Вот только расширение .def туда не впихнуть - некуда. Придётся совать в лод деф без расширения.
Прошу не сильно возмущаться за такой вопрос.
Насколько я понял, монстров в Heroes 3 не больше 196, причем, в реальности их не 196, а меньше, номера 122, 124, 126 и 128 не используются
Вопрос, можно ли вместо не используемых монстров вставить используемые без специальных прог?
Делаю следующее, создаю Def например ZM122z.def и ZMM122z.def, добавляю в игру, в файле ZEOBJTS.txt добавляю строку
Code:
ZMM122Z.def 011111111111111111111111111111111111111111111111 100000000000000000000000000000000000000000000000 111111111 000000001 54 122 2 0
добавляю верху на 1,
монстр в редакторе появляется, но на карте нет, появляется ошибка, что не так?
Вся инфа про "Not used'ов" написана в первом посте, но может ещё что есть и на df2
Здравствуйте, я добавил в not used существ по инструкции от MoP'а, но они не генерируются на карте. Не могли бы вы написать скрипт замены монстров на новые. Так, чтобы их не было больше стандартных.
122 заменяет монстров 5-го уровня
124, 126 и 128 заменяют монстров 2-го уровня (если это возможно, то пусть 124 чаще в подземельях).
(28.04.2012 10:40)Levitator Wrote: [ -> ]Здравствуйте, я добавил в not used существ по инструкции от MoP'а, но они не генерируются на карте. Не могли бы вы написать скрипт замены монстров на новые. Так, чтобы их не было больше стандартных.
122 заменяет монстров 5-го уровня
124, 126 и 128 заменяют монстров 2-го уровня (если это возможно, то пусть 124 чаще в подземельях).
Лучше не использовать not used, т.к. при задании им уровня существа частенько вылетает, а если не задавать то тоже вылетает. Так что пришлось от них отказаться.
Тут есть 2 пути, на сколько мне известно, или сделать в скриптах заплатку, где используется уровень существа на эти номера, либо задать уровень после расстановки существ на карте, но это все тоже гарантии от вылетов не дает.
Замена происходит в script00.erm. Там есть на счет этого соответствующие комментарии. Например строчка !!FU682&v955=111:P195/1; меняет 50% гидр хаоса на огненных лошадей.
Pages: 1 2 3
Reference URL's