Автор | Сообщение | |
---|---|---|
Сэр Dark Elf
HoMM III: Безземельный |
Хмм...раскопал тут свою статью полуторалетней давности. Может кого заинтересует.
|
|
Сэр Dark Elf
HoMM III: Безземельный |
Неофициальный add'on "In The Wake Of Gods", появившийся в конце 2001-начале 2002 года на просторах нашей необъятной родины буквально наступал на пятки свеженьким четвертым "Героям" и про него незаслуженно забыли. Но нельзя упускать из виду потенциально очень богатую вещь – движок Event Revelation Model, позволяющий писать какие угодно скрипты а также вставлять в игру ресурсы извне (видеоролики, картинки и.т.д.). Сегодня мы не будем углубляться в дебри скриптостроительства, а поговорим о мечте большинства картографов – замене характеристик существ на конкретной карте.
Постараюсь, как можно доступнее и всесторонне поведать вам об этой особенности языка ERM. В качестве подопытного кролика возьмем Лучника (Archer). Итак, первым делом у нас должен быть установлен аддон Heroes 3.5, а к нему, соответственно, прилагаться редактор карт H3wmaped.exe. Применять ERM-скрипты можно только на картах версии "Во имя Богов" (в картах SoD, AB, RoE они работать не будут). Существует специальный редактор скриптов, но если их писать вручную, то сэкономится куча времени и сил, т.к. редактор неимоверно наворочен. Для начала запомните несколько прописных истин: · Все ERM-команды записываются в СОБЫТИЯ (инструменты/спецификация карты/события). · Там мы нажимаем кнопку ДОБАВИТЬ. · В строке НАЗВАНИЕ СОБЫТИЯ пишем любое название (назовем наше событие Archer). · В окне ПОСЛАНИЕ мы и будем вписывать команды. · День скрипта задавать ТОЛЬКО от 499 до 666 включительно. · Чтобы ERM-скрипты воспринимались, в начале послания нужно всегда писать ZVSE. Характеристики монстров задаются следующей командой: !#MA:$№/*; где $ - буква, которой обозначается характеристика, которую мы будем менять, № - порядковый номер монстра, * - количественное значение изменяемой характеристики. Сразу же рассмотрим это на примере лучника и поставим нашему лучнику здоровье 5000: · Здоровье обозначается буквой H (пишем H вместо $) · Порядковый номер лучника 2 (пишем 2 вместо №). · Вместо * пишем то значение здоровье, которое мы хотим установить (5000) В итоге, команда, будет выглядеть так: !#MA:H2/5000; (В конце каждой команды обязательно нужно ставить точку с запятой!) По такому же принципу меняем и остальные характеристики: · Атака - A · Защита - D · минимум урона - M · максимум урона - E · Скорость - S · Количество выстрелов - N Сделаем теперь из нашего лучника терминатора, поставим ему здоровье 550, урон 80-120, атаку 40, защиту 35, скорость 12, выстрелов 99. Для этого в нашем послании должно быть записано следущее: ZVSE !#MA:P2/550; !#MA:M2/80; !#MA:E2/120; !#MA:A2/40; !#MA2/35; !#MA:S2/12; !#MA:N2/99; После такой обработки наш лучник любому титану покажет, кто на карте главный! Но и это еще не все. Кроме всех количественных характеристик мы можем изменять и качественные способности юнитов. Например, мы можем лишить стрелков возможности атаковать на расстоянии, тормозных дендроидов заставить летать по всему полю (проходить сквозь препятствия), крестьян сделать устойчивыми к магии - одним словом, наделять воинов различными способностями. Команды, меняющие качественные характеристики, записываются также, как и количественные. Задаются качественные характеристики ($) буквой X, а вместо численного значения пишем цифровой код выбранной характеристики. Например, цифровой код 524288 наделяет юнита способностью атаковать всех стоящих рядом противников (подобно гидре). Чтобы наш лучник в ближнем бою резал всех рядом стоящих врагов, добавим в наше послание следующую строку: !#MA:X2/524288; Вот |
|
Сэр Dark Elf
HoMM III: Безземельный |
Вот список кодов ВСЕХ спецспособностей:
2 - юнит будет летать (забавно смотрится с дендроидами) 8 - юнит будет атаковать две клетки (подобно драконам) 16 - юнит будет причислен к категории ЖИВЫХ (alive) 32 - юнит может ломать стены (как циклопы) 64 - юнит не может двигаться 1024 - юнит не восприимчив к заклинаниям разума (подобно титанам) 2048 - юниты стреляют без пенальти через стены (подобно архимагам и бехолдерам) 4096 - стреляющий юнит не имеет штрафа за ближний бой 16384 - юнит не восприимчив к Огненной магии 32768 - юнит стреляет дважды (подобно гранд-эльфам) 65536 - враг не отвечает на атаки юнита (подобно дьяволам, нагам) 131072 - не имеет морали 262144 - юнит будет причислен к категории МЕРТВЯКОВ (undead) 524288 - юнит атакует всех стоящих рядом врагов (гидры, элементалы разума/магии) 1048576 - стреляющий юнит атакует подобно личам и магогам (задевает всех, стоящих рядом с целью) 2147483648 - причисляет юнитов к категории Драконов, т.е. на них распространяется действие артефакта Vial Of Dragon Blood (+5 к атаке и защите драконам), а также спец. свойство героини Mutar (аналогично действию вышеупомянутого артефакта) Разумеется, это только одна из многочисленных возможностей скриптового движка «Героев». Возможно мы ещё вернемся к этой теме в дальнейшем. ***использованы метриалы какого-то там сайта, только я уже не помню какого |
|
Сэр Master Sandro |
Продолжение то будет?
|
|
Сэр Kirinyale
HoMM V: Рыцарь |
Собственно говоря, вполне независимое продолжение будет на сайте Гильдии Скриптописцев (ссылка в моей анкете), в разделе "школа ERM". Кое-какие материалы там уже есть, в ближайшее время будут выложены ещё.
P.S. Поправочка: ERM = Event Related Model. P.P.S. Те материалы, которые в данный момент уже выложены на сайте, взяты из моей старой темы "Школа ERM", так что, возможно, удобнее будет поглядеть их там: www.heroesportal.net/tavern/?forumid=1&id=17547 |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр Dark Elf, 3.03.2004 20:05 Позволю себе не согласиться с такой позицией. Я до сих пор использую для написания скриптов тот самый старый редактор, несмотря на то, что при его загрузке выскакивает табличка о том, что он устарел. Причина - как раз в той самой "неимоверной наворочености", которую гораздо правильнее было бы назвать неимоверной наглядностью - с помощью этого редактора мне и удалось в своё время научиться писать скрипты почти с нуля - если не знаешь ничего, то хелп мало что прояснит, а редактор позволяет добиваться желаемого, просто выбирая нужные команды из списков, да и, например, порядковые номера тех же монстров там присутствуют - вы ведь не станете утверждать, что помните их все наизусть? Что же касается утверждения, что тот редактор "устарел", то это вообще бред - на мой взгляд, новая его версия абсолютно бесполезна, так как в ней нету никакой автоматизации, и фактически она мало чем отличается от "Блокнота". Конечно, в старом редакторе не учтены некоторые из новых возможностей, но их уже можно подглядывать в последней версии html-хелпа... В общем, для самых простых скриптов (вроде телепортации, изменения характеристик монстров и т.п.) редактор действительно не очень нужен, но в серьёзных случаях просто незаменим. |
|
Сэр Dark Elf
HoMM III: Безземельный |
Сказано же - статья писалась полтора года назад, когда я не слишком хорошо ещё знал ERM.
|
|
Сэр Kirinyale
HoMM V: Рыцарь |
Я это понял, но, уж если есть, что сказать - то почему бы не сказать? Иначе кто-то мог бы судить о ERM и о редакторе именно по старой статье.
|
|
Сэр Berkut
HoMM V: Безземельный |
Друзья мои. Свои скрипты я создаю вручную. Здесь столько хорошего написано о редакторе. Не могли бы Вы рассказать поподробнее как с его помощью создавать грамотные скрипты недетсадовской сложности и проверять их на корректность.
Заранее благодарю. Berkut |
Особый статус: |
Сэр Talarasha
HoMM IV: Безземельный |
Сделаем реку с мостом.
Поместим на карту две горы. Между ними реку, клеточек на 6. И генератор существ Мост Тролля. Поместим героя возле моста. Создадим новое событие и запишем туда следующее (без комментариев): ZVSE !#TR2/5/0:P1; /* !# означает, что идет инструкция. Инструкции выполняются при загрузке карты, то есть без определенного события. TR - это означает, что идет настройка территории. 2/5/ - координаты на карте, замените на ваши. 0 - уровень карты, 0 - земной, 1 - подземный. : - это озачает, что пошли свойства. P - это значит, что мы определяем проходимость. 1 - непроходит, 0 - проходит. ; - это конец скрипта. */ !#TR4/2/0:P1; !#TR4/2/0:P1; !#TR3/2/0:P1; !#TR3/3/0:P0E0; /* E0 означает, что убирается триггер, то есть при заходе на эту клетку ничего не случится. */ !#TR2/2/0:P0; Сохраните карту и загрузите ее в игре. Ваш герой не сможет перейти через реку, но перейдет по мосту. Возможно, у вас появится сообщение о том, что по истечению 7 дней вы проиграете. Чтобы убрать это, необходимо создать следующую инструкцию: !#OW0/254; D означает цвет игрока, 0 - красный, 1 - синий и т.д. 254 означает, что герой сможет играть без замка вечно, но это может принимать еще значения от 0...127. В таком случае, герой не получит сообщения о замке еще 0...127 дней. |
Особый статус: |