Current time: 24.03.2024, 07:37 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Общая тема по NOT USED монстрам
» 4 свободных слота монстров = 122/124/126/128
Author Message
MOP Offline
Moderators

Posts: 1467
Post: #1
Лампочка 
Возможно, некоторые будут удивлены, но для данной операции не нужно 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.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
08.05.2009 20:52
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1467
Post: #2

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


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
09.06.2009 19:25
Find all posts by this user Quote this message in a reply
Astaroth Offline

Posts: 94
Post: #3

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

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

P.S. Меня ксати этот вопрос озадачил, попробую что-нибудь раскопать по этому поводу...
09.06.2009 20:43
Find all posts by this user Quote this message in a reply
Дьякон Offline

Posts: 392
Post: #4

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

1. Почему не генерится карта не знаю, но вероятнее всего генератор пытается поставить несуществующих монстров на карту, что не есть хорошо.
2. Перезапуск нужен для обнавления характеристик монстров, которые подгружаются из текстовиков.
3. Как избежать:
    а) написать патч для обновления характеристик монстров при генерации новой карты
    б) не трогать характеристики not used монстров


Страус труп (с) Бьерн
(This post was last modified: 09.06.2009 23:48 by Дьякон.)
09.06.2009 23:47
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1467
Post: #5

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


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 10.06.2009 13:18 by MOP.)
10.06.2009 03:44
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16449
Post: #6

В коде кроме обычной смены значений в таблице вызывается функция CrIsChanged (существо изменено). Слава помечает изменённые существа, чтобы потом восстановить. Возможно восстановление параметров не обрабатывает not-used-ы или обрабатывает некорректно.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.06.2009 06:25
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1467
Post: #7

Вопрос отпал. Траблу решил простеньким кодом вроде такого:


Sm


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
11.06.2009 05:25
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1467
Post: #8

(11.06.2009 05:34)Berserker Wrote:Я гружу сейвы по кнопке "L"
Ну повесить ещё код на номер кнопки 76 и на другие клавиши, которые могут быть "опасны". ЭРА же, етить её... JC_voodoo
Главное, что решение нашёл. Budo


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 11.06.2009 09:27 by MOP.)
11.06.2009 08:58
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16449
Post: #9

Тогда да Sm
Зы, так решение очевидно, сохранять и восстанавливать параметры. Я же писал, там банальная запись в память.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.06.2009 11:51
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1467
Post: #10

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

3) Настройка стрельбы:
Чтобы монстр стрелял, в его дефе должна быть анимация стрельбы, установлен флаг стрелка, а также должен быть установлен тип снаряда. В задании типа снаряда вам поможет этот скрипт (для WoG3.58f и ТЕ):
Вы также можете изменять снаряды для любых стандартных монстров (кроме, возможно, пикимена и алебардщика).


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
10.07.2009 00:05
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1467
Post: #11

Лентяй@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 туда не впихнуть - некуда. Придётся совать в лод деф без расширения.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
08.08.2009 06:21
Find all posts by this user Quote this message in a reply
M.A.K.C. Offline

Posts: 472
Post: #12

Прошу не сильно возмущаться за такой вопрос.
Насколько я понял, монстров в 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,
монстр в редакторе появляется, но на карте нет, появляется ошибка, что не так?


Все свежие обновления я выкладываю на своем сайте здесь.
(This post was last modified: 30.03.2011 22:25 by M.A.K.C..)
30.03.2011 21:30
Find all posts by this user Quote this message in a reply
etoprostoya Offline

Posts: 1809
Post: #13

Вся инфа про "Not used'ов" написана в первом посте, но может ещё что есть и на df2
31.03.2011 00:54
Find all posts by this user Quote this message in a reply
Levitator Offline

Posts: 9
Post: #14

Здравствуйте, я добавил в not used существ по инструкции от MoP'а, но они не генерируются на карте. Не могли бы вы написать скрипт замены монстров на новые. Так, чтобы их не было больше стандартных.
122 заменяет монстров 5-го уровня
124, 126 и 128 заменяют монстров 2-го уровня (если это возможно, то пусть 124 чаще в подземельях).
28.04.2012 10:40
Find all posts by this user Quote this message in a reply
totkotoriy Offline

Posts: 873
Post: #15

(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% гидр хаоса на огненных лошадей.


Ты роешься в моих паках, но ты делаешь это без уважения...
(This post was last modified: 28.04.2012 13:07 by totkotoriy.)
28.04.2012 13:02
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group