Таверна | Столик Картостроителей
Автор | Сообщение | |
---|---|---|
Сэр Kirinyale
HoMM V: Рыцарь |
Уважаемые Леди и Сэры! Предлагаю свою скромную помощь всем, кто желает научиться использованию 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
HoMM V: Рыцарь |
Это 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
HoMM V: Рыцарь |
Пока что я закруглюсь (для более подробного объяснения мне придётся распинаться тут всю ночь, а то и дольше ), и подожду ваших конкретных вопросов. Если у кого-то есть желание написать скрипт, делающий что-то определённое, опишите свою идею, а я постараюсь объяснить, как это сделать.
|
|
Сэр Arctic
HoMM VI: Безземельный |
Сэр Duke Kirinyale, 11.09.2003 22:20 Я задумал несколько вещей. Я буду задавать вопросы постепенно, пока не приспособлюсь. Как Господа и Дамы уже вероятно поняли, моё сообщение послужило поводом к созданию этой школы. Итак, к делу. Я хотел бы заставить героя полностью исчезнуть(включая существ и арты) при посещении водоворота. Этот водоворот -- единственный на карте. То есть он как бы утонет Arcticsharpshooter |
|
Сэр Assassin
HoMM IV: Безземельный |
Леди и джентельмены!
Где достать WoG? Сэр Duke Kirinyale, а как насчет скриптов в четвертых героях? По ним вопросик можно? |
|
Сэр Arctic
HoMM VI: Безземельный |
Сэр Duke Kirinyale, 11.09.2003 22:20 Сэр, а вы проходили что-нибудь из кампаний WoGa, если да то что вы прошли и каково ваше мнение? Пусть Воздушный Щит защитит вас от подлого выстрела в спину. Arcticsharpshooter |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр Assassin, 12.09.2003 21:26 WoG можно купить на рынке у пиратов (как я), или (вроде бы) где-то скачать. Не знаю, где... А насчёт четвёртых героев - извиняюсь, я в них не играю, поэтому и скриптов тамошних не видел. |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр arcticsharpshooter, 12.09.2003 22:43Сэр Duke Kirinyale, 11.09.2003 22:20 К своему стыду, признаюсь, что не играл в кампании WoGа, равно как и SoDа. Просто у меня была идея пройти все кампании третьих героев подряд, не перескакивая. Возрождение Эрафии я прошёл, в Мече Армагеддона прошёл не то две, не то три, а потом поднадоело. В основном играл в одиночные сценарии, чаще всего - с друзьями по хот-ситу. |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр arcticsharpshooter, 12.09.2003 21:04 Это довольно простой пример. Для точного описания скрипта необходимо знать координаты входа в водоворот. Поскольку я их не знаю, то предположу, что эти координаты - (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
HoMM V: Рыцарь |
Ещё один момент: если планируется вставить в карту несколько скриптов, относящихся к разным объектам, можно, конечно, все их записать в одном событии, но я считаю, что удобнее всё же разделять их на несколько событий, так удобнее их проверять, редактировать и отлаживать. Однако при этом ни в коем случае нельзя забывать, что переменные и флажки являются общими! То есть, если два скрипта используют одну и ту же переменную, то нужно убедиться, что они её используют только для хранения промежуточных результатов, а не для сохранения какой-либо информации между разными событиями! Иначе могут возникать глюки, если один скрипт случайно поправит информацию, важную для другого! Так что нужно внимательно следить за тем, какие переменные где используются, и в случае необходимости использовать в разных скриптах разные переменные.
|
|
Сэр Arctic
HoMM VI: Безземельный |
Благодарю, я пока пережую, что вы тут написали...
|
|
Сэр Allein
HoMM IV: Безземельный |
Сэр Assassin, 12.09.2003 21:26 Есть еще диск Игромании про HoMM III и IV с картами и разными материалами по поводу, так вот там есть в том числе обновление HoMM III до WoG. |
|
Сэр Assassin
HoMM IV: Безземельный |
Сэр arcticsharpshooter В чей это огород камушек, а? |
|
Сэр Arctic
HoMM VI: Безземельный |
Сэр Allein, 13.09.2003 09:13Сэр Assassin, 12.09.2003 21:26 Кстати прикольная версия! Всё как обычно, но в Random Mapах можно ИЗМЕНЯТЬ ПРАВИЛА ИГРЫ -- около 20 правил. Говорю как обладатель вышеуказанного CD. Если заинтересует -- вопросы на мыло. Пусть великая Лавина снесёт всех ваших нечестных соперников (Намёк НЕ на сэра Assasin!) Arcticsharpshooter |
|
Сэр salemaker
HoMM IV: Безземельный |
Сэр Assassin, 13.09.2003 20:36Сэр arcticsharpshooter А что камешек с 3 карата?.... |
|
Сэр Sector
HoMM IV: Безземельный |
Если у кого-то есть желание написать скрипт, делающий что-то определённое, опишите свою идею, а я постараюсь объяснить, как это сделать. Идея проста. Мне необходимо, чтобы герой подъезжал к монстру но не сражался, а просто происходил диалог с вариантами ответов(три или 4 варианта), после чего происходили различные действия. Например: при 1 - в каком-нибудь жилище меняется монстр(можно каждую неделю скупать другого монстра). При 2 - на половину сокращалась армия героя. При 3 - на половину сокращался опыт героя и убирались вторичные и первичные навыки. При 4 - происходил другой диалог в котором на первые два ответа менялся рельеф местности, на третий происходила битва с этим монстрам, на четвертый происходила битва с другими монстрами, а данный монстр исчезал. Надеюсь, это не слишком сложный скрипт, и вы мне поможете. |
|
Сэр Ermelloth
HoMM VI: Безземельный |
Уважаемые коллеги-любители ВоГ!
Если кто-то из вас хочет скачать полную, оригинальную версию ВоГ (и самую новую) прямо с официального сайта разработчиков, пишите мне в приват. |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр Sector, 14.09.2003 03:30Если у кого-то есть желание написать скрипт, делающий что-то определённое, опишите свою идею, а я постараюсь объяснить, как это сделать. Гм... идея интересная, и не такая уж простая (хотя, думаю, реализуемая). Тут мне нужно подумать и поэкспериментировать... как только что-то придумаю - сразу напишу. |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Ну, сделал я этот скрипт. Должен сказать, немало мне для этого повозиться пришлось. Сейчас попробую его здесь выложить, вместе с комментариями, но, скорее всего, в один пост всё не влезет, придётся делить. Подробности мне пришлось додумывать самому, а тестировал и отлаживал я скрипт на специально созданной для этого мини-карте. Поэтому некоторые цифры в нём (координаты, номера монстров, объектов и т.п.) должны быть подправлены под требования карты, где он реально будет применяться. Итак, скрипт: (перехожу на следующий пост)
|
|
Сэр Kirinyale
HoMM V: Рыцарь |
ZVSE
* Настройка первого диалога: * Параметр №1 (z1) - заголовок окна * Параметр №2 (z2) - заголовок вопроса с вариантами выбора; * Параметры №12-15 (z3-z6) - надписи на кнопках * Остальные параметры команды IF в данном случае не используются. !#VRz1:S^Разговор с монстром^; !#VRz2:S^Что вы выберете?^; !#VRz3:S^Изменить монстра в жилище^; !#VRz4:S^Сократить армию вдвое^; !#VRz5:S^Уменьшить опыт и убрать навыки^; !#VRz6:S^Продолжить разговор^; !#IF1/z1//z2/////////z3/z4/z5/z6; * Настройка второго диалога: !#VRz7:S^Разговор с монстром (продолжение)^; !#VRz8:S^Что вы выберете?^; !#VRz9:S^Убрать гору^; !#VRz10:S^Построить пирамиду^; !#VRz11:S^Драться с горынычами^; !#VRz12:S^Драться с кошмарами, горынычи пускай исчезнут^; !#IF2/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=1681; (отменить бой с горынычами) !!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
HoMM V: Рыцарь |
!?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
HoMM V: Рыцарь |
Извиняюсь, в первой части скрипта забыл отключить смайлики. Теперь уже исправить не могу. Короче, вместо смайла имелась в виду, конечно же, комбинация двоеточия и D.
В общем, это пока что всё... на всякий случай потестируйте - вдруг я чего-то упустил. Если кто-то хочет для удобства получить карту, на которой я его сам тестировал (чтобы не подгонять свою карту под скрипт или скрипт под свою карту ), пишите мне на [email protected] (основной адрес сглючился), и я вам её вышлю. Также можете обращаться в Аську (номер в инфе), но я по будням в сети раньше шести вечера по Киеву не бываю. |
|
Сэр Arctic
HoMM VI: Безземельный |
Покорно благодрю! вчера вечером удалось создать Правильный скрипт с водоворотом. Если будут вопросы, буду задавать
Arcticsharpshooter |
|
Сэр Sector
HoMM IV: Безземельный |
Благодарю, вот только комментарии хотелось бы увидеть более подробные, не хотелось бы вас снова беспокоить по этому скрипту.
Сэр Duke Kirinyale, еще одна просьба. Опишите скрипты, которые вы использовали в своей карте Struggle_for_Existence. Я понимаю, что описания получатся весьма большие, и поэтому прошу вас создать с ними документ и отправить мне по почте. Если не затруднит, пришлите также подробное описание скрипта по предыдущей просьбе. Еще вопросик. Мне необходимо, чтобы герой не исчезал по прошествию 7 дней, если он не имеет замка. Просьба ответ отправить в том же письме. |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр Sector, 15.09.2003 20:56 Хорошо, я постараюсь составить документ со всеми необходимыми описаниями. Но на это потребуется определённое время, поэтому вам придётся немного подождать. К тому же, по будним дням я в сети бываю только с шести часов вечера по Киеву. |
|
Сэр Arctic
HoMM VI: Безземельный |
Сэр Duke Kirinyale, 16.09.2003 18:21 У меня созрел ещё один вопрос. Нужно, чтобы герой зашёл к сфинксу, где ему будет задан вопрос, придуманный мной. В случа правильного ответа сфинкс задаёт второй вопрос, и в случае правильного ответа -- 3й. Если герой правильно отвечает на 3й вопрос, сфинкс исчезает. То есть сфинкс как бы действует в роли стража миссий, только задающего вопросы. Помогите, если есть время. Arcticsharpshooter |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр arcticsharpshooter, 16.09.2003 18:33 Попробую помочь, это, кажется, не очень сложно... только задам встречный вопрос: должно ли что-то происходить, если герой ответит неверно? |
|
Сэр Arctic
HoMM VI: Безземельный |
Сэр Duke Kirinyale, 16.09.2003 19:01Сэр arcticsharpshooter, 16.09.2003 18:33 Нет, просто даётся ещё одна попытка отгадать тот же первый вопрос, если сбой на втором, то всё равно первый -- по моему так легче. Заранее благодарю, Arcticsharpshooter |
|
Сэр Kirinyale
HoMM V: Рыцарь |
Сэр arcticsharpshooter, 16.09.2003 19:50 Скрипт готов, вместо координат 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; |
|
Сэр Arctic
HoMM VI: Безземельный |
Cегодня попробую и расскажу, как получилось -- наверрное завтра.
Arcticsharpshooter |
|