Школа ERM

Post reply

Tavern | Mapsmakers' table

Important message

Pages: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | >> | next | last
Subscribe to our groups:
Go to forum:
Author Subject
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Школа ERM Added: 11.09.2003 21:17
Уважаемые Леди и Сэры! :) Предлагаю свою скромную помощь всем, кто желает научиться использованию ERM-скриптов при создании карт для Heroes 3: WoG, но по каким-либо причинам не может сделать этого самостоятельно. Причиной для открытия этой темы послужило личное сообщение с просьбой о помощи – я посчитал, что подобные вещи слишком сложно будет обсуждать посредством личных сообщений, и решил обсудить их здесь. Сам я, конечно, далеко не великий скриптописец, но кое-что умею. :) Если кому-то интересно, можете посмотреть примеры моих ERM-скриптов в моей карте Struggle For Existence (WoG, XL). А теперь приступим...

Начну с основных понятий. По сути, ERM-скрипт – это мини-программа, встроенная в карту и управляющая геймплеем практически на любом уровне, который потребуется автору. Теоретически, существует два способа записи скриптов: первый – записать скрипт в виде события в спецификациях карты, второй – в отдельном файле с расширением .erm и именем, совпадающим с именем файла карты. Однако второй способ у меня почему-то не выходит – при загрузке такой карты выдаются сообщения об ошибке. Если кто-либо сможет объяснить, почему – буду премного благодарен. А пока что буду подразумевать, что скрипт сохраняется в виде события.

Итак, любой скрипт должен начинаться со строки ZVSE. Это просто метка, указывающая, что это скрипт, а не обычное событие. Однако в игре оно всё равно будет выводится на экран в виде окна с текстом. Чтобы избежать этого, можно запретить получение события всем игрокам, а для перестраховки выставить для него 500-й день первого появления. :)

В скриптах применяется три вида конструкций: trigger, receiver и instruction. Они представляют из себя строки, начинающиеся с !? (trigger), !! (receiver) или !# (instruction). Все строки, начинающиеся с чего-либо другого, игнорируются (этот принцип можно использовать для добавления комментариев).

Trigger – это условие, при котором что-либо нужно сделать. Например, таким условием может быть посещение определённым героем определённого объекта. За trigger’ом должен идти один или несколько receiver’ов.

Receiver – это собственно действие, выполняемое при достижении условия, заданого ближайшим к нему trigger’ом. (ближайшим сверху, естественно). Например, receiver может изменить армию героя, или добавить игроку денег.

Instruction – то же самое, что receiver, но выполняется не при достижении какого-либо условия, а сразу при загрузке карты. Например, можно сразу при загрузке заменить в каком-нибудь жилище нанимаемого монстра.

Теперь процитирую кусок хелпа (в вольном переводе, конечно :) ):

Все trigger’ы, receiver’ы и instruction’ы имеют общий формат: Header [:Body] ;
Header – это заголовок. Он имеет следующий формат:

![?|!|#]AB[Identifier][Conditions]

![?|!|#] – это признак trigger’а, receiver’а или instruction’а (уже объяснялось выше).
AB – двухбуквенный код trigger’а, receiver’а или instruction’а. Полный список этих кодов есть в хелпе, поставляемом вместе с WoG (кажется, в папке erm_help), он довольно длинный, поэтому я его весь приводить не буду. Несколько ниже лишь приведу несколько примеров, а в дальнейшем буду отвечать на конкретные вопросы.
[Identifier] – описывает конкретный объект, к которому относится вся конструкция. Имеет формат N[/N[/N[...]]], где N – числа, количество и значение которых зависит от типа объекта, заданного кодом.
[Conditions] – условия. Имеют следующий формат: &N[/N[/N[...]]] Каждое из N – некое условие. В нём могут использоваться выражения с переменными или номера флажков, про них поговорим чуть позже...

Body – тело receiver’а или instruction’а. Оно зависит от конкретного типа и обозначает производимые действия.

Теперь небольшой пример (взят из хелпа):

!!LE10/33/1&1/-2/5:F5 R4 B2/3;

Это receiver типа LE (локальное событие на карте) с координата
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link продолжение... Added: 11.09.2003 21:19
Это receiver типа LE (локальное событие на карте) с координатами X=10, Y=33, Уровень = подземелье. Тело receiver’а содержит три команды: F, R и B. Они будут выполняться только если в момент выполнения 1-й и 5-й флажок будут установлены, а 2-й – снят. (в условиях положительное число обозначает установленный флажок, а отрицательное – снятый). Иначе тело не будет выполняться.

Значения команд описаны в хелпе. В данном случае я сам не очень понимаю, что имеется в виду, так как в том же хелпе для receiver’а LE команды F и R имеют другое количество параметров, а B вообще не существует. Возможно, это был просто пример. :)

Теперь пример маленького скрипта из карты, которую я сейчас делаю:

ZVSE
!?LE133/37/0;
!!CA133/36/0:O1;
!!MN140/40/0:O1;
!!MN122/43/0:O1;
!!UN:S140/40/0/1/3;
!!UN:S122/43/0/1/3;
!!UN:S111/22/0/1/3;


Первая строка – метка скрипта.
Втораяtrigger, условием является посещение кем-либо локального события в точке 133/37/0 (третья координата – уровень: 0 – верхний, 1 – нижний). Все дальнейшие receiver’ы относятся к этому trigger’у и выполняются только при посещении этого события:

Третья строка – замок в точке 133/36/0 передаётся синему игроку (команда O – установка или проверка владельца, 1 – код синего игрока).
Четвёртая, пятая строки – аналогичные действия, но уже над шахтами в точках 140/40/0 и 122/43/0.
Шестая, седьмая, восьмая строки – снимается туман войны в радиусе трёх клеток от точек 140/40/0, 122/43/0, 111/22/0. Здесь UN – receiver универсальных команд, S – команда открытия карты, четвёртый её параметр – код игрока, для которого она открывается, а пятый – радиус.

Естественно, от автора не требуется всё это помнить, главное знать и понимать основные принципы. Написание скриптов становится очень простым и удобным благодаря приложенному к WoG редактору скриптов (в папку erm_se), в котором конкретные конструкции выбираются из списков, причём для каждой есть комментарии (цитаты из хелпа), объясняющие, что это такое, какие команды для него есть, и в каком формате они записываются. Ещё одно замечание: поскольку все подтипы вроде цвета игрока или вида монстра задаются числами, в редакторе есть отдельная вкладка “Formats”, содержащая в себе ещё некоторое количество вкладок, соответствующих разным форматам, и ведущим к спискам всех возможных значений с объяснениями, что есть что.

В общем, ни в коем случае не стоит пугаться страшного внешнего вида. На самом деле всё очень просто! Особенно с редактором!

Напоследок, о переменных и флажках:
Есть 1000 флажков, которые могут принимать значения 0 (снят) или 1 (установлен). Используются они для хранения любых признаков вроде того, был ли уже посещён какой-нибудь объект. Для установки или снятия флажков используется receiver или instruction типа IF, с командой V. Эта команда имеет два параметра: первый – номер флажка, второй – значение, которое нужно установить (0 или 1).

Есть также переменные:

f ... t : переменные с диапазоном значений от –2147483648 до +2147483647
v1 ... v1000 : переменные с диапазоном значений от -32768 до +32768
w1 ... w100 : переменные героев
z1 ... z500 : строковые переменные
x1 ... x16 : параметры функций (см. trigger FU)
y1 ... y100: локальные переменные функций

Для управления переменными используется receiver или instruction типа VR. Полный список его команд, как всегда, в хелпе. :) Пример:

!!VRh&5/-3; – если флажок №5 установлен, а №3, снят, отнять от переменной h 3.
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Покамест закругляюсь... Added: 11.09.2003 21:20
Пока что я закруглюсь (для более подробного объяснения мне придётся распинаться тут всю ночь, а то и дольше biglol ), и подожду ваших конкретных вопросов. Если у кого-то есть желание написать скрипт, делающий что-то определённое, опишите свою идею, а я постараюсь объяснить, как это сделать.
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Arctic
Arctic

HoMM VI: Landless
HoMM V: Landless
HoMM IV: Landless
HoMM III: Knight (1)
HoMM II: Landless
HoMM I: Landless
Messages: 793
From: Antarctica

Quote link Re: Покамест закругляюсь... Added: 12.09.2003 20:04
Сэр Duke Kirinyale, 11.09.2003 22:20
Пока что я закруглюсь (для более подробного объяснения мне придётся распинаться тут всю ночь, а то и дольше biglol ), и подожду ваших конкретных вопросов. Если у кого-то есть желание написать скрипт, делающий что-то определённое, опишите свою идею, а я постараюсь объяснить, как это сделать.

Я задумал несколько вещей. Я буду задавать вопросы постепенно, пока не приспособлюсь.
Как Господа и Дамы уже вероятно поняли, моё сообщение послужило поводом к созданию этой школы.
Итак, к делу.
Я хотел бы заставить героя полностью исчезнуть(включая существ и арты) при посещении водоворота. Этот водоворот -- единственный на карте. То есть он как бы утонет :D pray
Arcticsharpshooter
Arctic
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Assassin
Assassin

HoMM IV: Landless
HoMM III: Landless
Messages: 65
From: Russian Federation

Quote link Added: 12.09.2003 20:26
Леди и джентельмены!
Где достать WoG? idontknow
Сэр Duke Kirinyale, а как насчет скриптов в четвертых героях? По ним вопросик можно?
Assassin
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Arctic
Arctic

HoMM VI: Landless
HoMM V: Landless
HoMM IV: Landless
HoMM III: Knight (1)
HoMM II: Landless
HoMM I: Landless
Messages: 793
From: Antarctica

Quote link Маленький и не очень скромный вопрос Added: 12.09.2003 21:43
Сэр Duke Kirinyale, 11.09.2003 22:20
Пока что я закруглюсь (для более подробного объяснения мне придётся распинаться тут всю ночь, а то и дольше biglol ), и подожду ваших конкретных вопросов. Если у кого-то есть желание написать скрипт, делающий что-то определённое, опишите свою идею, а я постараюсь объяснить, как это сделать.

Сэр, а вы проходили что-нибудь из кампаний WoGa, если да то что вы прошли и каково ваше мнение?
Пусть Воздушный Щит защитит вас от подлого выстрела в спину.
Arcticsharpshooter
Arctic
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Added: 12.09.2003 23:26
Сэр Assassin, 12.09.2003 21:26
Леди и джентельмены!
Где достать WoG? idontknow
Сэр Duke Kirinyale, а как насчет скриптов в четвертых героях? По ним вопросик можно?

WoG можно купить на рынке у пиратов (как я), или (вроде бы) где-то скачать. Не знаю, где... А насчёт четвёртых героев - извиняюсь, я в них не играю, поэтому и скриптов тамошних не видел. :(
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Re: Маленький и не очень скромный вопрос Added: 12.09.2003 23:28
Сэр arcticsharpshooter, 12.09.2003 22:43
Сэр Duke Kirinyale, 11.09.2003 22:20
Пока что я закруглюсь (для более подробного объяснения мне придётся распинаться тут всю ночь, а то и дольше biglol ), и подожду ваших конкретных вопросов. Если у кого-то есть желание написать скрипт, делающий что-то определённое, опишите свою идею, а я постараюсь объяснить, как это сделать.

Сэр, а вы проходили что-нибудь из кампаний WoGa, если да то что вы прошли и каково ваше мнение?
Пусть Воздушный Щит защитит вас от подлого выстрела в спину.
Arcticsharpshooter

К своему стыду, признаюсь, что не играл в кампании WoGа, равно как и SoDа. sot Просто у меня была идея пройти все кампании третьих героев подряд, не перескакивая. Возрождение Эрафии я прошёл, в Мече Армагеддона прошёл не то две, не то три, а потом поднадоело. :( В основном играл в одиночные сценарии, чаще всего - с друзьями по хот-ситу. :)
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Скрипт Added: 12.09.2003 23:46
Сэр arcticsharpshooter, 12.09.2003 21:04
Я хотел бы заставить героя полностью исчезнуть(включая существ и арты) при посещении водоворота. Этот водоворот -- единственный на карте. То есть он как бы утонет :D pray
Arcticsharpshooter

Это довольно простой пример. :) Для точного описания скрипта необходимо знать координаты входа в водоворот. Поскольку я их не знаю, то предположу, что эти координаты - (100, 100), а уровень - надземный. Тогда скрипт выглядит так:

ZVSE
!?OB100/100/0;
!!HE-1:K;


Здесь trigger OB указывает, что условием выполнения скрипта является посещение любым героем объекта с координатами 100/100/0. Receiver HE указывает, что действия производится над героем, -1 обозначает героя, который активировал событие, а команда K убивает этого героя. Для большей наглядности, можно сопроводить это событие текстовым сообщением. Но перед этим желательно убедиться, что данный герой принадлежит игроку (чтобы не выдавать сообщение во время хода компьютера). Для этого скрипт можно изменить следующим образом:

ZVSE
!?OB100/100/0;
!!HE-1:O?v1;
!!OW:Iv1/?v2;
!!IF&v2=0:M^Вы утонули!^;
!!HE-1:K;


Команда O для receiver'а HE используется для определения или изменения игрока, которому принадлежит герой. В данном случае номер этого игрока сохраняется в переменную v1. Знак вопроса перед её именем обозначает, что нужно именно узнать, кто сейчас владеет героем. Если бы его не было, то в результате выполнения этой строки герой бы перешёл к другому владельцу в зависимости от значения v1. Кстати, насколько я помню, в хелпе предупреждается, что при попытке такой передачи героя могут быть глюки. Так что с этим лучше не рисковать.

Receiver OW обозначает действие над игроком. Команда I используется для определения того, кто управляет этим игроком - человек или компьютер. При этом проверяется игрок, заданный первым параметром (в данном случае значением v1), а результат записывается в переменную v2. Результат может быть 0, что означает человека, или 1 - компьютер.

Receiver IF имеет несколько довольно разных применений (управление флажками, переменными героя, выводом сообщений и т.п.). В данном случае он используется как раз для вывода сообщения (команда M). Её параметром является выводимый текст, причём вместо кавычек он заключается в знаки ^ ^. Условие &v2=0 показывает, что данная строка выполняется только тогда, когда переменная v2 равна нулю.

(Заранее извиняюсь, если что-то где-то спутал. Я не тестировал приведенный скрипт, хотя и думаю, что он должен работать без проблем, но лучше всё же проверить - от греха подальше. :) )
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Да, кстати... Added: 12.09.2003 23:57
Ещё один момент: если планируется вставить в карту несколько скриптов, относящихся к разным объектам, можно, конечно, все их записать в одном событии, но я считаю, что удобнее всё же разделять их на несколько событий, так удобнее их проверять, редактировать и отлаживать. Однако при этом ни в коем случае нельзя забывать, что переменные и флажки являются общими! То есть, если два скрипта используют одну и ту же переменную, то нужно убедиться, что они её используют только для хранения промежуточных результатов, а не для сохранения какой-либо информации между разными событиями! Иначе могут возникать глюки, если один скрипт случайно поправит информацию, важную для другого! Так что нужно внимательно следить за тем, какие переменные где используются, и в случае необходимости использовать в разных скриптах разные переменные.
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Arctic
Arctic

HoMM VI: Landless
HoMM V: Landless
HoMM IV: Landless
HoMM III: Knight (1)
HoMM II: Landless
HoMM I: Landless
Messages: 793
From: Antarctica

Quote link Re: Да, кстати... Added: 13.09.2003 07:53
Благодарю, я пока пережую, что вы тут написали...
Arctic
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Allein
Allein

HoMM IV: Landless
HoMM III: Landless
Messages: 17
From: Russian Federation

Quote link WoG Added: 13.09.2003 08:13
Сэр Assassin, 12.09.2003 21:26
Леди и джентельмены!
Где достать WoG? idontknow
Сэр Duke Kirinyale, а как насчет скриптов в четвертых героях? По ним вопросик можно?


Есть еще диск Игромании про HoMM III и IV с картами и разными материалами по поводу, так вот там есть в том числе обновление HoMM III до WoG.
Allein
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Assassin
Assassin

HoMM IV: Landless
HoMM III: Landless
Messages: 65
From: Russian Federation

Quote link Re: Маленький и не очень скромный вопрос Added: 13.09.2003 19:36
Сэр arcticsharpshooter
Пусть Воздушный Щит защитит вас от подлого выстрела в спину.


В чей это огород  камушек, а?
Assassin
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Arctic
Arctic

HoMM VI: Landless
HoMM V: Landless
HoMM IV: Landless
HoMM III: Knight (1)
HoMM II: Landless
HoMM I: Landless
Messages: 793
From: Antarctica

Quote link Re: WoG Added: 13.09.2003 21:04
Сэр Allein, 13.09.2003 09:13
Сэр Assassin, 12.09.2003 21:26
Леди и джентельмены!
Где достать WoG? idontknow
Сэр Duke Kirinyale, а как насчет скриптов в четвертых героях? По ним вопросик можно?


Есть еще диск Игромании про HoMM III и IV с картами и разными материалами по поводу, так вот там есть в том числе обновление HoMM III до WoG.

Кстати прикольная версия! Всё как обычно, но в Random Mapах можно ИЗМЕНЯТЬ ПРАВИЛА ИГРЫ -- около 20 правил. Говорю как обладатель вышеуказанного CD. Если заинтересует -- вопросы на мыло.
Пусть великая Лавина снесёт всех ваших нечестных соперников (Намёк НЕ на сэра Assasin!)
Arcticsharpshooter
Arctic
Profile Hero history PM E-mail
Go to reply form Go to top
Sir salemaker

HoMM IV: Landless
HoMM III: Landless
Messages: 75
From: Ukraine

Quote link Re: Маленький и не очень скромный вопрос Added: 14.09.2003 01:24
Сэр Assassin, 13.09.2003 20:36
Сэр arcticsharpshooter
Пусть Воздушный Щит защитит вас от подлого выстрела в спину.


В чей это огород  камушек, а?

А что камешек с 3 карата?.... biglol
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Sector
Sector

HoMM IV: Landless
HoMM III: Landless
Messages: 49
From: Belarus

Quote link Re: Покамест закругляюсь... Added: 14.09.2003 02:30
Если у кого-то есть желание написать скрипт, делающий что-то определённое, опишите свою идею, а я постараюсь объяснить, как это сделать.


Идея проста. Мне необходимо, чтобы герой подъезжал к монстру но не сражался, а просто происходил диалог с вариантами ответов(три или 4 варианта), после чего происходили различные действия. Например: при 1 - в каком-нибудь жилище меняется монстр(можно каждую неделю скупать другого монстра).
При 2 - на половину сокращалась армия героя.
При 3 - на половину сокращался опыт героя и убирались вторичные и первичные навыки.
При 4 - происходил другой диалог в котором на первые два ответа менялся рельеф местности, на третий происходила битва с этим монстрам, на четвертый происходила битва с другими монстрами, а данный монстр исчезал.

Надеюсь, это не слишком сложный скрипт, и вы мне поможете.
Sector
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Ermelloth
+ + +
Ermelloth

HoMM VI: Landless
HoMM V: Landless
HoMM IV: Knight
HoMM III: Count (1)
HoMM II: Landless
HoMM I: Landless
Messages: 5821
From: Israel

Quote link Added: 14.09.2003 10:12
Уважаемые коллеги-любители ВоГ!

Если кто-то из вас хочет скачать полную, оригинальную версию ВоГ (и самую новую) прямо с официального сайта разработчиков, пишите мне в приват.
Ermelloth
Special status:
MagisterDiplomatist of "HeroesLands" in 2003Journalist of "HeroesLands" in 2004
Legend of "HeroesLands" in 2006Cenzor mapsGold Sponsor Portal 2016
Hand of Light
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Re: Покамест закругляюсь... Added: 14.09.2003 15:10
Сэр Sector, 14.09.2003 03:30
Если у кого-то есть желание написать скрипт, делающий что-то определённое, опишите свою идею, а я постараюсь объяснить, как это сделать.


Идея проста...

Гм... идея интересная, и не такая уж простая (хотя, думаю, реализуемая). Тут мне нужно подумать и поэкспериментировать... как только что-то придумаю - сразу напишу. :)
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link ...Скриптёра вызывали? :)) Added: 14.09.2003 19:32
Ну, сделал я этот скрипт. smoke Должен сказать, немало мне для этого повозиться пришлось. biglol Сейчас попробую его здесь выложить, вместе с комментариями, но, скорее всего, в один пост всё не влезет, придётся делить.  Подробности мне пришлось додумывать самому, а тестировал и отлаживал я скрипт на специально созданной для этого мини-карте. Поэтому некоторые цифры в нём (координаты, номера монстров, объектов и т.п.) должны быть подправлены под требования карты, где он реально будет применяться. Итак, скрипт: (перехожу на следующий пост)
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link ...Скриптёра вызывали? :)) Added: 14.09.2003 19:33
ZVSE

* Настройка первого диалога:
* Параметр  №1     (z1)    - заголовок окна
* Параметр  №2     (z2)    - заголовок вопроса с вариантами выбора;
* Параметры №12-15 (z3-z6) - надписи на кнопках
* Остальные параметры команды IF:D в данном случае не используются.

!#VRz1:S^Разговор с монстром^;
!#VRz2:S^Что вы выберете?^;
!#VRz3:S^Изменить монстра в жилище^;
!#VRz4:S^Сократить армию вдвое^;
!#VRz5:S^Уменьшить опыт и убрать навыки^;
!#VRz6:S^Продолжить разговор^;
!#IF:D1/z1//z2/////////z3/z4/z5/z6;

* Настройка второго диалога:

!#VRz7:S^Разговор с монстром (продолжение)^;
!#VRz8:S^Что вы выберете?^;
!#VRz9:S^Убрать гору^;
!#VRz10:S^Построить пирамиду^;
!#VRz11:S^Драться с горынычами^;
!#VRz12:S^Драться с кошмарами, горынычи пускай исчезнут^;
!#IF:D2/z7//z8/////////z9/z10/z11/z12;

*------------------------------------------------

!?BA0; (ПЕРЕД НАЧАЛОМ ЛЮБОЙ БИТВЫ)
!!BA:P?v1/?v2/?v3;                                (Определить координаты битвы)
!!OB15/10/0&v1=15/v2=10/v3=0:T?v4 U?v5;           (определить тип и подтип объекта с этими координатами)
* в дальнейшем условие &v1=15/v2=10/v3=0/v4=54/v5=168 обозначает, что координаты
* битвы - 15/10/0, а тип и подтип объекта - 54/168 (монстры, горынычи)
!!IF&v1=15/v2=10/v3=0/v4=54/v5=168:E6/1;          (вызвать первый диалог)
!!BA&v1=15/v2=10/v3=0/v4=54/v5=168:D1;            (отменить бой с горынычами)
!!FU1&v1=15/v2=10/v3=0/v4=54/v5=168/v6=1:P;       (если первый вариант, вызвать функцию №1)
!!DO2/0/6/1&v1=15/v2=10/v3=0/v4=54/v5=168/v6=2:P; (если второй вариант - вызвать функцию №2 7 раз, по очереди передавая ей в качестве параметра №16 числа от 0 до 6)
!!FU3&v1=15/v2=10/v3=0/v4=54/v5=168/v6=3:P;       (если третий вариант - вызвать функцию №3)
!!FU4&v1=15/v2=10/v3=0/v4=54/v5=168/v6=4:P;       (если четвёртый вариант - вызвать функцию №4)

!?FU1; (ФУНКЦИЯ №1)
!!VRy1:S0;               (обнулить локальную переменную y1)
!!VRy1:T164;             (прибавить к y1 случайное число от 0 до 168 включительно)
* следующие семь строчек сделаны для того, чтобы исключить возможность случайного
* выбора для y1 значений 122, 124, 126, 128, 159-163 - номер монстра должен
* быть в пределах от 0 до 172, но вышеперечисленные номера не задействованы.
!!VRy2:S0;               (обнулить локальную переменную y2)
!!VRy2&y1=122:S1;        (если y1=122,     то y2=1)
!!VRy2&y1=123:S2;        (если y1=123,     то y2=2)
!!VRy2&y1=124:S3;        (если y1=124,     то y2=3)
!!VRy2&y1>124y1!!154:S5;        (если y1>154,     то y2=5)
!!VRy1:+y2;              (прибавить y2 к y1)
!!DW15/5/0:M0/y1/5;      (поселить в жилище с координатами 15/5/0 пять монстров выбранного типа)
!!UN:N3/13/y1/1;         (определить название выбранных монстров в множественном числе)
!!IF:M^Теперь в жилище поселились %Z13!^; (Выдать сообщение игроку - вообще-то, неплохо бы сначала убедиться, что ходит не компьютер, но мне уже лень :) )

!?FU2; (ФУНКЦИЯ №2)
!!HE-1:C0/x16/d/?y1; (определить количество монстров в армии текущего героя, в слоте, заданном параметром x16)
!!VRy1::2;           (разделить полученное количество на два)
!!HE-1:C0/x16/d/y1;  (установить новое количество монстров в том же слоте)

(продолжение следует...)
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link ...Скриптёра вызывали? :)) Added: 14.09.2003 19:35
!?FU3; (ФУНКЦИЯ №3)
!!DO5/0/27/1:P;  (вызвать функцию №5 28 раз, по очереди передавая в качестве 16-го параметра числа от 0 до 27)
!!HE-1:F0/0/1/1; (установить первичные навыки текущего героя на минимум - 0/0/1/1)
!!HE-1:E?y1;     (определить количество опыта текущего героя)
!!VRy1::2;       (разделить опыт на два)
!!HE-1:Ey1;      (установить новое количество опыта)

!?FU5; (ФУНКЦИЯ №5)
!!HE-1:Sx16/0; (если у текущего героя был вторичный навык, указанный параметром x16, убрать его)

!?FU4; (ФУНКЦИЯ №4)
!!IF:E7/2;               (вызвать второй диалог)
!!UN&v7=1:O14/15/0/0/1;  (если первый вариант - убрать гору с координатами правого нижнего угла 14/15/0)
!!UN&v7=2:I20/10/0/63/0; (если второй вариант - поставить в точке с координатами объект в виде пирамиды)
!!BA&v7=3:D0;            (если третий вариант - заново разрешить бой с горынычами)
!!FU6&v7=4:P;            (если четвёртый вариант - вызвать функцию №6)

!?FU6; (ФУНКЦИЯ №6)
* Поменять армию монстров, с которыми собираемся драться:
!!BA:M1/0/172/1; (первый слот    - 1 кошмар)
!!BA:M1/1/172/2; (второй слот    - 2 кошмара)
!!BA:M1/2/172/3; (третий слот    - 3 кошмара)
!!BA:M1/3/172/4; (четвёртый слот - 4 кошмара)
!!BA:M1/4/172/5; (пятый слот     - 5 кошмаров)
!!BA:M1/5/172/6; (шестой слот    - 6 кошмаров)
!!BA:M1/6/172/7; (седьмой слот   - 7 кошмаров)
!!BA:D0; (разрешить бой)
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Ой, промашка вышла... Added: 14.09.2003 19:41
Извиняюсь, в первой части скрипта забыл отключить смайлики. Теперь уже исправить не могу. idontknow Короче, вместо смайла :D имелась в виду, конечно же, комбинация двоеточия и D.

В общем, это пока что всё... на всякий случай потестируйте - вдруг я чего-то упустил. Если кто-то хочет для удобства получить карту, на которой я его сам тестировал (чтобы не подгонять свою карту под скрипт или скрипт под свою карту :) ), пишите мне на [email protected] (основной адрес сглючился), и я вам её вышлю. Также можете обращаться в Аську (номер в инфе), но я по будням в сети раньше шести вечера по Киеву не бываю.
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Arctic
Arctic

HoMM VI: Landless
HoMM V: Landless
HoMM IV: Landless
HoMM III: Knight (1)
HoMM II: Landless
HoMM I: Landless
Messages: 793
From: Antarctica

Quote link Added: 15.09.2003 11:11
Покорно благодрю! вчера вечером удалось создать Правильный  скрипт с водоворотом.  Если будут вопросы, буду задавать
Arcticsharpshooter
Arctic
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Sector
Sector

HoMM IV: Landless
HoMM III: Landless
Messages: 49
From: Belarus

Quote link Added: 15.09.2003 19:56
Благодарю,  вот только комментарии хотелось бы увидеть более подробные, не хотелось бы вас снова беспокоить по этому скрипту.

Сэр Duke Kirinyale, еще одна просьба. Опишите скрипты, которые вы использовали в своей карте Struggle_for_Existence. Я понимаю, что описания получатся весьма большие, и поэтому прошу вас создать с ними документ и отправить мне по почте. Если не затруднит, пришлите также подробное описание скрипта по предыдущей просьбе.

Еще вопросик. Мне необходимо, чтобы герой не исчезал по прошествию 7 дней, если он не имеет замка. Просьба ответ отправить в том же письме.
Sector
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Added: 16.09.2003 17:21
Сэр Sector, 15.09.2003 20:56
Благодарю,  вот только комментарии хотелось бы увидеть более подробные, не хотелось бы вас снова беспокоить по этому скрипту.

Сэр Duke Kirinyale, еще одна просьба. Опишите скрипты, которые вы использовали в своей карте Struggle_for_Existence. Я понимаю, что описания получатся весьма большие, и поэтому прошу вас создать с ними документ и отправить мне по почте. Если не затруднит, пришлите также подробное описание скрипта по предыдущей просьбе.

Еще вопросик. Мне необходимо, чтобы герой не исчезал по прошествию 7 дней, если он не имеет замка. Просьба ответ отправить в том же письме.

Хорошо, я постараюсь составить документ со всеми необходимыми описаниями. Но на это потребуется определённое время, поэтому вам придётся немного подождать. :) К тому же, по будним дням я в сети бываю только с шести часов вечера по Киеву.
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Arctic
Arctic

HoMM VI: Landless
HoMM V: Landless
HoMM IV: Landless
HoMM III: Knight (1)
HoMM II: Landless
HoMM I: Landless
Messages: 793
From: Antarctica

Quote link Added: 16.09.2003 17:33
Сэр Duke Kirinyale, 16.09.2003 18:21
Хорошо, я постараюсь составить документ со всеми необходимыми описаниями. Но на это потребуется определённое время, поэтому вам придётся немного подождать. :) К тому же, по будним дням я в сети бываю только с шести часов вечера по Киеву.

У меня созрел ещё один вопрос. Нужно, чтобы герой зашёл к сфинксу, где ему будет задан вопрос, придуманный мной. В случа правильного ответа сфинкс задаёт второй вопрос, и в случае правильного ответа -- 3й. Если герой правильно отвечает на 3й вопрос, сфинкс исчезает. То есть сфинкс как бы действует в роли стража миссий, только задающего вопросы.
Помогите, если есть время.
Arcticsharpshooter
Arctic
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Added: 16.09.2003 18:01
Сэр arcticsharpshooter, 16.09.2003 18:33
У меня созрел ещё один вопрос. Нужно, чтобы герой зашёл к сфинксу, где ему будет задан вопрос, придуманный мной. В случа правильного ответа сфинкс задаёт второй вопрос, и в случае правильного ответа -- 3й. Если герой правильно отвечает на 3й вопрос, сфинкс исчезает. То есть сфинкс как бы действует в роли стража миссий, только задающего вопросы.
Помогите, если есть время.
Arcticsharpshooter

Попробую помочь, это, кажется, не очень сложно... только задам встречный вопрос: должно ли что-то происходить, если герой ответит неверно?
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Arctic
Arctic

HoMM VI: Landless
HoMM V: Landless
HoMM IV: Landless
HoMM III: Knight (1)
HoMM II: Landless
HoMM I: Landless
Messages: 793
From: Antarctica

Quote link Added: 16.09.2003 18:50
Сэр Duke Kirinyale, 16.09.2003 19:01
Сэр arcticsharpshooter, 16.09.2003 18:33
У меня созрел ещё один вопрос. Нужно, чтобы герой зашёл к сфинксу, где ему будет задан вопрос, придуманный мной. В случа правильного ответа сфинкс задаёт второй вопрос, и в случае правильного ответа -- 3й. Если герой правильно отвечает на 3й вопрос, сфинкс исчезает. То есть сфинкс как бы действует в роли стража миссий, только задающего вопросы.
Помогите, если есть время.
Arcticsharpshooter

Попробую помочь, это, кажется, не очень сложно... только задам встречный вопрос: должно ли что-то происходить, если герой ответит неверно?

Нет, просто даётся ещё одна попытка отгадать тот же первый вопрос, если сбой на втором, то всё равно первый -- по моему так легче.
Заранее благодарю,
Arcticsharpshooter
Arctic
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Kirinyale
+ + +
Kirinyale

HoMM V: Knight
HoMM IV: Knight
HoMM III: Count (7)
HoMM II: Count (4)
Messages: 5442
From: Ukraine

Quote link Added: 16.09.2003 20:19
Сэр arcticsharpshooter, 16.09.2003 19:50
сто даётся ещё одна попытка отгадать тот же первый вопрос, если сбой на втором, то всё равно первый -- по моему так легче.
Заранее благодарю,
Arcticsharpshooter

Скрипт готов, вместо координат 13/6/0 всюду подставите координаты вашего сфинкса, а тексты вопросов, ответов и т.п. замените на такие, как вам нужны. К сожалению, в данный момент у меня нету времени, чтобы расписать комментарии для каждой строчки - если надо, напишу завтра.

ZVSE

!?OB13/6/0;
!!OB13/6/0:M-1/1/1;
!!HE-1:O?v1;
!!OW:Iv1/?v2;
!!FU1&v2=0:P;

!?FU1;
!!VRz2:S^Сфинкс задаёт вам вопрос:^;
!!VRz3:S^Вопрос №1^;
!!IF:D1/z2/z3;
!!IF:E3/1;
!!VRz4:S^ответ №1^;
!!IF&z1z4:M^Вы ответили неверно.^;
!!IF&z1=z4:M^Вы ответили правильно. Приготовьтесь к следующему вопросу.^;
!!FU2&z1=z4:P;

!?FU2;
!!VRz3:S^Вопрос №2^;
!!IF:E3/1;
!!VRz4:S^ответ №2^;
!!IF&z1z4:M^Вы ответили неверно.^;
!!IF&z1=z4:M^Вы ответили правильно. Приготовьтесь к следующему вопросу.^;
!!FU3&z1=z4:P;

!?FU3;
!!VRz3:S^Вопрос №3^;
!!IF:E3/1;
!!VRz4:S^ответ №3^;
!!IF&z1z4:M^Вы ответили неверно.^;
!!IF&z1=z4:M^Вы ответили правильно. Теперь вы можете пройти!^;
!!UN&z1=z4:O13/6/0/0/1;
Kirinyale
Special status:
Knight of the Round Table of the 1 convocationKnight of the Round Table of the 2 convocationKnight of the Round Table of the 3 convocation
Journalist of "HeroesLands" in 2005Cenzor mapsArtist-Lunar (HoMM-III)
Duelist year 2011Former MagisterGateway of burnt hopes
Profile Hero history PM E-mail
Go to reply form Go to top
Sir Arctic
Arctic

HoMM VI: Landless
HoMM V: Landless
HoMM IV: Landless
HoMM III: Knight (1)
HoMM II: Landless
HoMM I: Landless
Messages: 793
From: Antarctica

Quote link Попробуем... Added: 16.09.2003 21:14
Cегодня попробую и расскажу, как получилось -- наверрное завтра.
Arcticsharpshooter
Arctic
Profile Hero history PM E-mail
Go to reply form Go to top
Go to forum:
Pages: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | >> | next | last

Important message

Post reply

Tavern | Mapsmakers' table