IPB

Здравствуйте, гость ( Вход | Регистрация )

> Обучение ERM, ERM для чайников :)
SnoRT
сообщение 04 Jun 2006, 09:48 (Сообщение отредактировал Bourn - 23 Jul 2006, 21:34)
Сообщение #1

Супер-злодей
Сообщений: 1 431
Спасибо сказали: 16 раз




Здесь будут разбираться разные скрипты (сложные и не очень) и объясняться сам процесс ЕРМ'ирования с самого начало и со всеми деталями и подробностями. Soul Reaver у нас назначается главным по обучению новичков laugh.gif
Таааккссс... Поработаю на благо настоящих героев. Что бы такое бы написать интересное?? Щас, полазию по своим картам, может чё-нить вспомню... Ничё интересного... Ну ладно, давайте например, создадим из пустого артефакта номер 168 (такая кожаная бронька из Диабло 2), к примеру, плащ глины. А лучше плащ в глине smile.gif А то грязный он какой-то... Будет, например, приносить носящему герою по 13 земляных элементалей в неделю, прибавлять ко всем первичным параметрам по 3, давать герою экспертную магию земли и защищать всё войско героя заклинанием Защита от земли. Предупреждаю сразу, скрипт не для новичков, а так, для более менее среднего уровня. Для самых новеньких в ЕРМ должен писать Soul Reaver. Следующим постом посмотрим smile.gif И так, приступим:

ZVSE (Ну как вы должны знать, без этого не обходится ни один скрипт)
Настройки самого артефакта
!#VRz10:S^Плащ из глины^; (Запомним в переменную z10 название артефакта)
!#VRz11:S^Приносит герою по 13 земляных элементалей в неделю, прибавляет ко всем первичным параметрам по 3, даёт герою экспертную магию земли и защищает всё его войско заклинанием Защита от земли.^; (Запомним в переменную z11 описние плаща)
!#UN:A168/1/5000; (Даём нашему артефакту цену 5000 золотых)
!#UN:A168/3/16; (Ценность нашего плаща. Он у нас реликт. Это 16)
!#UN:A168/9/10; (Присвоим нашему плащу название, запомненное в z10)
!#UN:A168/10/11; (Присвоим нашему плащу описание, запомненное в z11)

Установка прибавления земляных элементалей
!#VRv20:S13*65536+113; (Дадим заранее перенной v20 такое значение. Если вставить его в окно !!IF:Q под подтип картинки, то у нас под картинкой будет написано не просто элементали земли, а будет указано их точное колличество. 13.)
!#TM10:S1/999/7/255; (Сперва создадим таймер. Пронумеруем его 10-тым номером. 1 - это день первого появления, 999 - последнего, 7 - это интервал появлений (т.е. неделя), 255 - значит, что появляется для игроков каждого цвета.)
!?TM10; (Всё что будет написано дальше - это условия, выполняющиеся после пояления нашего таймера.)
!!OW:I-1/?v10; (Проверяем, игрок текущего цвета AI или человек. Если v10=0, значит человек. Если v10=1, то компьютер.)
!!VRv11:S0; (Ставим переменной v10 значение 0. Позже объясню зачем.)
!!DO10/0/155/1&v10=0:P; (Если текущий игок - человек, а не ИИ, то запускаем функцию номер 10. Приёмник !!DO отличается от !!FU тем, что одну и ту же функцию выполняет несколько раз подряд. Мы поставили 155. Именно столько в игре существует героев.)
!?FU10; (Так, теперь сама эта функция 10. Которая повторится 155 раз.)
!!HEv11:A2/168/d/?v12; (Проверяем, надет ли плащ у героя под номером v11 (v11 изначально мы установили на 0). Если v12=1, то надет.)
!!HEv11&v12=1:С2/113/13/0; (Если плащ одет, то даём этому герою 13 элементалей. 113 - это номер земляных элементалей.)
!!HEv11&v12=1:O?v13; (Теперь узнаем, какому цвету принадлежит герой, получивший войско.)
!!OW&v12=1:Iv13/?v14; (Определяем полученный цвет на AI или игрока.)
!!HEv11&v12=1/v14=0:B0/?z10; (Если игрок, который получил элементалей, человек, а не ИИ, то определяем его имя.)
!!IF&v12=1/v14=0:Q1/21/v20/1^К герою по имени %Z10 присоединяются земляные элементали благодаря плащу из глины.^; (Сообщение с текстом и картинкой элементалей. Выводится только если героем, которому даются существа, владеет игрок, а не компьютер. Вместо "%Z10" будет отображаться имя героя, которое мы узнали чуть раньше.)
!!VRv11:Sd1; (После всего этого в любом случае увеличиваем переменную v11 на 1, чтобы при следующем повторе функции проверялся уже герой не под номером 0, а следующий по списку. И так все 155 героев.)

Прибавление к параметрам первичных навыков
(Здесь вообще всё просто.)
!?AE1&v998=168; (Триггер на одевание артефакта номер 168 (наш плащ).)
!!HE-1:Fd3/d3/d3/d3; (Когда герой его одевает - получает по три ко всем параметрам.)
!?AE0&v998=168; (Триггер на снятие артефакта номер 168 (наш плащ).)
!!HE-1:Fd-3/d-3/d-3/d-3; (Когда герой его снимает - теряет по три ко всем параметрам.)

Экспертная магия земли.
!?AE1&v998=168; (Триггер на одевание артефакта номер 168 (наш плащ).)
!!HE-1:S17/?v21; (Запоминаем наличие у героя навыка магии земли до артефакта (v21=0 - нет навыка, v21=1 - базовый, v21=2 - продвинутый, v21=3 - эксперт)
!!HE-1:S17/3; (В любом случае даём герою эксперт земли.Если был базовый или продвинутый уровень, то он заменяется на экспертный.)
!?AE0&v998=168; (Триггер на снятие артефакта номер 168 (наш плащ).)
!!HE-1:S17/v21; (При снятии плаща возвращаем ему его старое значение навыка земли.)

Защита от земли во время боя.
!?BA0; (Триггер на начало битвы.)
!!BA:H0/?v30; (Определяем номер героя-нападающего (слева).)
!!BA:H1/?v31; (Определяем номер героя-защищающегося (справа).)
!!HEv30&v30<>-2:A2/168/d/?v32; (Если герой слева присутствует (v30<>-2), то проверяем у него наличие плаща.)
!!HEv31&v31<>-2:A2/168/d/?v33; (Если герой справа присутствует (v31<>-2), то проверяем у него наличие плаща.)
!!VRv25&v30<>-2/v32=1:S0; (Если плащ надет у левого героя, ставим v25 на 0.)
!!DO23/0/20/1&v30<>-2/v32=1:P; (Если плащ надет, запускаем функцию 23 на 20 раз.)
!!VRv25&v31<>-2/v33=1:S21; (Если плащ надет у правого героя, ставим v25 на 21.)
!!DO23/0/20/1&v31<>-2/v33=1:P; (Если плащ надет, запускаем функцию 23 на 20 раз.)
!?FU23; (Функция 23.)
!!BMv25:M33/99/3; (Ставим монстру v25 (если он есть) заклинание защита от земли экспертного уровня на 99 раундов.)
!!VRv25:Sd1; (Увеличиваем переменную v25 на один, чтобы при следующем обороте наложить заклинание уже на следующего монстра. Заметьте, что у правого и у левого героя переменная v25 будет принимать разные значения.)


Вот как будет выглядеть рабочий скрипт:
Код
ZVSE
!#VRz10:S^Плащ из глины^;
!#VRz11:S^Приносит герою по 13 земляных элементалей в неделю, прибавляет ко всем первичным параметрам по 3, даёт герою экспертную магию земли и защищает всё его войско заклинанием Защита от земли.^;
!#UN:A168/1/5000;
!#UN:A168/3/16;
!#UN:A168/9/10;
!#UN:A168/10/11;
!#VRv20:S13*65536+113;
!#TM10:S1/999/7/255;

!?TM10;
!!OW:I-1/?v10;
!!VRv11:S0;
!!DO10/0/155/1&v10=0:P;
!?FU10;
!!HEv11:A2/168/d/?v12;
!!HEv11&v12=1:С2/113/13/0;
!!HEv11&v12=1:O?v13;
!!OW&v12=1:Iv13/?v14;
!!HEv11&v12=1/v14=0:B0/?z10;
!!IF&v12=1/v14=0:Q1/21/v20/1^К герою по имени %Z10 присоединяются земляные элементали благодаря плащу из глины.^;
!!VRv11:Sd1;

!?AE1&v998=168;
!!HE-1:Fd3/d3/d3/d3;
!?AE0&v998=168;
!!HE-1:Fd-3/d-3/d-3/d-3;

!?AE1&v998=168;
!!HE-1:S17/?v21;
!!HE-1:S17/3;
!?AE0&v998=168;
!!HE-1:S17/v21;

!?BA0;
!!BA:H0/?v30;
!!BA:H1/?v31;
!!HEv30&v30<>-2:A2/168/d/?v32;
!!HEv31&v31<>-2:A2/168/d/?v33;
!!VRv25&v30<>-2/v32=1:S0;
!!DO23/0/20/1&v30<>-2/v32=1:P;
!!VRv25&v31<>-2/v33=1:S21;
!!DO23/0/20/1&v31<>-2/v33=1:P;
!?FU23;
!!BMv25:M33/99/3;
!!VRv25:Sd1;


Вот, вроде всё sorry.gif
Вообще кому интересно, могут зайти сюда. Здесь (на форуме WST spiteful.gif) есть эти же скрипты и плюс ещё другие всякие-разные. В общем, там их побольше. Для всех уровней.


--------------------
Ничего себе сходил за хлебушком о_О

Просьба начинающим скриптерам не обращаться за помощью в ERM. Не помню ни капли. Если только помочь с логической задачей на примерах.
В создания городов не вступаю. WST возрождать не буду. Скорее всего..


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
 
Start new topic
Ответов
DracoLich
сообщение 05 Oct 2006, 15:05
Сообщение #2

Banished
Сообщений: 1 782
Спасибо сказали: 116 раз




Как создать свой первый скрипт (часть3)
Erm для чайников, by Qurqirish Dragon


До сих пор скрипт, который мы спроектировали, активизирует герой, когда посещает северо-западный угол карты. Зачем кто-либо отправил бы туда героя?

Конечно, вы могли всегда помещать событие на карту, уведомляя об игрока, но я не стану следовать этим путем.
Вместо этого я собираюсь создать нечто, что привлечет игрока. Если вы зайдете в редактор карт, посмотрите на страницу городов.
Если вы не смотрели здесь прежде, то увидите, что здесь много объектов после этих 10 (9 типов и случайный) городов.
Большинство этих объектов незаскриптованно, т.е. даже если вы поместите их на карту, они ничего не делают, даже при WoG-ификации.
Мы используем один из них.

Для этого скрипта я собираюсь использовать 4ый объект в 3ем ряду. Это похоже на пентаграмму с маленькими обелисками на лучах, и большим обелиском в середине.
Поместите это на карту максимально близко к углу, не отключая никакого изображения. Если вы этого обычно не делали, включите инструмент "проходимость" (Ctrl+P) - разбивку карты на красные и желтые площади. Любой красный квадрат герой не может посетить или пройти сквозь него. Любой желтый квадрат - это квадрат триггера объекта.
Если C=свободно, R=красный, и Y=желтый, тогда этот объект в редакторе будет выглядеть так:
CCCCC
CRCRC
RCYCR
CCRCC
Как я предполагаю, желтый квадрат должен быть расположен в (2,2,0).

Теперь давайте изменять скрипт, чтобы использовать этот объект вместо события, помещенного ранее. Если вы сделали эту часть обучения, вы можете удалить участок события - я не буду снова использвать его.

Теперь мы собираемся заменить линию !?LE, чтобы чтобы подогнать наш скрипт к желтому квадрату. Помните, старая линия была:
!?LE0/0/0; [когда событие в северо-западном углу поверхности посещено]
Теперь мы просто изменяем местоположение на желтый квадрат (2,2,0) и изменяем команду LE на OB:
!?OB2/2/0; [когда объект в (2,2,0) посещен]

Заметьте, что фактически триггер OB похож на триггер LE. Если вы не имели никаких проблем с LE, значит у вас не будет проблем и с OB.

Только помните, что LE поддерживает только события, а OB поддерживает любые объекты, и вы будете знать, когда и какой нужен триггер.
Теперь скрипт будет работать так же, как и прежде, кроме точки запуска. Но я собираюсь сделать еще одно изменение линии:
!$OB2/2/0; [ПОСЛЕ того, как объект (2,2,0) посещен]

Я изменил эту строку из триггера предпосещения (!?) на пост-посещение (!$). Сейчас это не имеет никаких последствий для скрипта, но теперь скрипт сработает после того, что мы еще добавим: мы сделаем дополнительную возможность, что когда вы посетите магический счетчик, за 100 золота вы сможете получить сразу пять посещений вместо одного.
Далее мы собираемся поместить существующий туда - так как есть смысл заменить пентаграмму на Звездную Ось.
Это только мой выбор, если хотите, заменяйте на какой-либо другой объект, имеющий свою функцию. Только убедитесь, что помещенный объект имеет лишь одну точку входа, и этот вход расположен в (2,2,0).

Если вы теперь запустите карту, то когда вы посещаете эту Звездную ось (и только ЭТУ!), вы получите, как обычно, +1 к силе магии (или ничего, если ваш герой уже посетил ось ранее), и затем счетчки увеличится.

Теперь давайте скрипт с "мистическим солшебным колесом" установим вне звездной оси. Я думаю, что из-за природы скрипта нам подойдет Сказочный дракон.

Так или иначе, давайте начинать скриптинг:
!?OB2/2/0; [Когда объект в (2,2,0) посещается]
Это простой триггер предпосещения.

Теперь мы должны закодировать вопрос да или нет.
Первое, что мы должны понять - мы собираемся задать вопрос, на который нужно ответить. Это вызывает проблему, если ИИ посылает героя, чтобы посетить точку.
Так что мы должны посмотреть, является ли текущий игрок человеком или ИИ. Мы делаем эту операцию ресейвером OW. OW позволяет нам проверять или устанавливать почти все параметры игрока (но не героя).
Ну, пишем:

!!OW:C?y1; [Получить цвет текущего игрока]
!!OW:Iy1/?y2; [текущий игрок - ИИ?]
Опция C? проверяет цвет текущего игрока. Вы не можете изменить текущего игрока, так что знак ? - это часть кода.
Я записываю этот цвет в y1. Следующей линией я использую опцию I. Эта команда проверяет цвет на управляющего: человек это или игрок ИИ. Первое число - это цвет игрока для проверки, в нашем случае - y1. Второе число - значение: 1, если ИИ, или 0, если человек.
Вы можете установить этот параметр, чтобы добавить или удалить игрока-человека с карты! Но сейчас мы хотим лишь узнать это значение. Если это герой ИИ, то y2 получит значение 1, иначе - 0.

Теперь мы можем задать вопрос.
Так как мы должны показать вопрос, нам понадобится ресейвер IF:
!!IF&y2=0:Q1/6/0/21/134/33/0/2^Вы замечаете маленький стенд, настроенный около Зведной Оси. Сказочных Дракон подзывает вас:
- Позабавьтесь с магией! За сто золота счетчик магии прыгнет на целых пять единиц посещений!
Вы согласны?^;

Как вы видите, здесь я добавил условие y2=0. Если ИИ посетит ось, то вопрос не будет задаваться!
В любом случае, в этой команде много чисел, не так ли? Их восемь. Я собираюсь разобрать их ниже по частям.
Если у вас есть ERM-помощь, зайдите в раздел !!IF и найдите опцию Q#1/#2/#3/#4/#5/#6/#7/#8^текст^; для точной информации.

Сначала опция: Q. Это стандартный вопрос. Дальше - число 1. Это флаг, в который занесется ваш ответ. Флаги похожи на переменные, но могут принимать только два значения: 0 (ложь) и 1 (истина). В отличие от переменных, здесь нет указателя переменной. Например, v-переменная 1 пишется как "v1", z-переменная 1 как "z1", а флаг 1 просто 1. Я еще вернусь к этому моменту позднее.

Следующие шесть чисел добавляют картинки к диалогу под написанным текстом. Каждая пара чисел обозначает одну картинку. Первое число - ТИП картинки, а второе число - ПОДТИП. Все возможные картинки для использования можно найти внизу страницы !!IF-ресейвера.
В этом случае мы описали первое изображение как 6/0. Тип 6 - это ресурс, золото. Подтип для ресурса - это его количество, которое будет показано.
Так как я установил подтип 0, то количество не будет отображаться - просто картинка.
Второе изображение - 21/134. Тип 21 - это монстр, подтип - номер монстра. Если вы нажмете на гиперссылку в файле помощи по !!IF:Q, вы получите таблицу их номеров. В данном случае подтип 134 - это Сказочный дракон.
Третье изображение - это 33/0. Тип 33 это один из первичных навыков, в данном случае - колдовская сила. Опять же подтип ставим 0, то есть без какого-либо количества.
Когда скрипт будет запущен, под текстом будут изображения золота, Сказочного Дракона и Колдовской силы.

Последнее число 2 говорит о том, что эта команда - вопрос да или нет. Когда скрипт запустится, внизу картинок будут привычные кнопки да или нет. Если вы выберете "Да", флаг флаг установится на "Истина" (1), если вы выбрали "Нет", флаг установится на "Ложь" (0).

Теперь мы должны проверить, имеет ли игрок 100 золота для оплаты. Используем ресейвер !!OW. Вот код следующей линии:

!!OW:R-1/6/?y3; [узнать, сколько золота имеет текущий игрок]
Опция R означает, что мы хотим сделать что-либо с ресурсами игрока. Первое число - цвет игрока, у которого мы будем менять ресурсы. Это значение не-побитно, т.е. 0 для красного, 1 для синего, и так далее. Также можете посмотреть цвета в разделе помощи, но все они пронумерованы от 0 до 7 в порядке том же, что и в игре.
Для этого скрипта я устанавливаю игрока -1. Это значит, что мы узнаем опции текущего игрока, кто бы это ни был.
Мы уже проверили цвет текущего игрока выше (он сохранен в y1, если вы забыли), но я хотел использовать именно -1, чтобы показать эту возможность.
Вы должны проверить синтаксис для каждой опции, чтобы узнать, может ли -1 использоваться для текущего игрока. Хотя это может обратиться к нейтральному игроку, т.е. никому.
Число 6 - номер ресурса, здесь - золото. Последнее чесло - переменная, в которую мы хотим записать количество.
В этом случае мы используем переменную y3, и перед ней ставим знак ? , что означает "Записать значение в эту переменную".

Затем мы проверяем, что ответил игрок, и может ли он позволить себе покупку. Мы покажем соответствующий ответ для каждого случая. Для этого используем 3 команды IF -первая, если нажата кнопка "Нет", еще одна для "Да" и если игрок может позводить себе покупку, и последняя, если "Да" и игрок не может позволить себе покупку:
!!IF&y2=0/-1:M^Дракон разочарованно поворачивается к другому потенциальному клиенту.^;
!!IF&y2=0/1/y3>=100:M^"Отлично! Я знал, что вам понравится предложение!"^;
!!IF&y2=0/1/y3<100:M^"Я рад, что вы заинтересовались, но у вас недостаточно золота для покупки. Возвращайтесь позднее!"^;

Здесь условие "Это именно человеческий игрок" находится во всех трех командах. Второе условие проверяет флаг 1, который устанавливается в зависимости от ответа игрока
В первой линии число флага отрицательно. Это означает, что мы делаем условие "Если флаг - Ложь, то проверка пройдена". В двух других линиях
флаг положителен, что означает "Если флаг - Истина, то проверка пройдена"?
Еще во второй и третьей линии есть проверка на количество золота "Значение больше или меньше?". Прежде чем вычесть 100 золота у игрока, мы должны решить, что сделает ИИ.
Позвольте ИИ тоже купить пять посещений - 50%-ый шанс, что он сделает это. Мы сделаем это двумя командами:
!!VRy4:S0R1; [генерируем значение от 0 до 1 включительно]
!!IF&y2=1:V1/y4; [установить флаг в y4]

Здесь вы признаете первую линию, но с новой опцией, которую мы прежде не использовали - R. Опция R генерирует случайное значение между 0 и числом после R (в нашем случае 1), и добавляет его к старому значению. Данный ресейвер VR устанавливает y4 на 0, и затем добавляет 0 или 1.
Это и является нашим генерируемым шансом.
Следующая линия - наш старый знакомый, ресейвер IF. На этот раз условие состоит в том, что ходит игрок-ИИ. Опция V шспользуется для установки значения флага. В данном случае, флаг 1 устанавливается на результат генерации.

Теперь, когда мы сделали все возможные пути, мы кодируем вычитание золота командой OW.
!!OW&1/y3>=100:R-1/6/d-100; [вычесть 100 золота, если все правильно: игрок согласился, золота хватает]

Эти два условия должны быть ясны, но мы все равно резюмируем: первое условие для флага, т.е. если он Истина, независимо от того, был ли это сгенерированный флаг или сам игрок выбрал его.
Второе условие - проверка, достаточно ли золота у игрока. Как и с колдовской силой, мы используем оператор d для вычитания 100 от текущего значения золота
(ну, фактически мы добавляем -100).

Мы должны сделать еще несколько строк - сейчас, например, добавление счетчика при оплате. Так как мы не использовали v2, я сделаю это здесь:
!!VRv2:S0; [установить v2 на 0]
!!VRv2&1/y3>=100:+4; [установить v2 на 4 если оплата была произведена]

Заметьте, что хотя золота игрока и изменилось, y3 все еще содержит значение золота до оплаты. Таким образом, та же самая проверка, которую мы делали в команде OW, будет работать и здесь.
Эта часть кода теперь сделана. Но мы еще должны изменить часть кода, который мы уже написали, так как мы должны добавить эти четыре посещения и получить соответствующее сообщение.

Вспомните следующие линии из начала скрипта:
!!VRv1:+1; [Добавить 1 к v1]
!!VRy1:Sv1%10; [v1 делится на 10?]

В этой части скрипта y1 - значение счетчика посещений. Для начала мы изменим первую линию:
!!VRv1:+1+v2; [добавить 1+v2 к v1]

Если опалта была произведена, то это добавит 5 к v1, иначе - только 1.
Далее добавим линию после вычисления y1:
!!VRy1&y1<=v2:S0; [сброс y1, если число уже не кратно 10]

Если дополнительные пять посещений перескочили через число, кратное десяти, то означает, что v2 была равна 4, таким образом y1 между 1 и 4.
Так, если y1 меньше или равен v2, это означает, что магический статус должен сработать - таким образом мы устанавливаем y1 на 0.
Оставшаяся часть кода может оставаться без изменений!

Теперь, после небольших изменений скрипт выглядит так:
ZVSE
!#VRv1:S0; [установить v1 на 0]

** триггер пост-посещения

!$OB2/2/0; [ПОСЛЕ посещения объекта в (2,2,0)]
!!VRv1:+1+v2; [добавить 1+v2 к v1]
!!VRy1:Sv1%10; [v1 делится на 10?]
!!VRy1&y1<=v2:S0; [сброс y1, если число, кратное 10 уже перепрыгнули]
!!IF&y1<>0:M^Добро пожаловать на звездную ось. Магический счетчик показывает значение %V1^; [Показать сообщение, если ничего не произошло]
!!VRy2:Sv1:10%3; [найти тип изменения магии]
!!VRz-1&y2=0:S^return to normal.^; [для визита 30, 60, 90, ...]
!!VRz-1&y2=1:S^strengthen.^; [для визита 10, 40, 70,...]
!!VRz-1&y2=2:S^weaken.^; [для визита 20, 50, 80, ...]
!!IF&y1=0:M^Магический счетчик теперь равен %V1... Вы чувствуете, что магия %Z-1.^; [показать измененное сообщение]

** эффект скрипта в битве

!?BA0;
!!BA:E?y1; [это сетевая битва?]
!!FU1&y1=0:Pv1; [если нет, запускаем скрипт]

** за миг до битвы

!?FU1;
!!BA:H0/?v5; [получить номер героя - атакующего]
!!BA:H1/?v6; [получить номер героя - защитника]
!!VRx1::10%3; [получить тип изменения магии]
!!HEv5:F?y5/?y6/?y3/?y7; [получить параметры атакующего]
!!HEv6&v6>0:F?y5/?y6/?y4/?y7; [получить параметры защищающегося]
!!VRv3&x1=1:Sy3; [если магия усилена, увеличить значение]
!!VRv3&x1=2:S1-y3; [если магия ослаблена, установить на 1]
!!VRv4&x1=1/v6>=0:Sy4; [если магия усилена, увеличить значение]
!!VRv4&x1=2/v6>=0:S1-y4; [если магия ослаблена, установить на 1]
!!HEv5&x1<>0:Fd0/d0/dv3/d0; [изменить силу магии]
!!HEv6&x1<>0/v6>=0:Fd0/d0/dv4/d0; [то же для защитника]

** пост-битвенный триггер

!?BA1;
!!BA:E?y1; [это сетевая битва?]
!!FU2&y1=0:Pv1; [если нет, продолжить]

!?FU2;
!!VRx1::10%3; [получить тип изменений]
!!VRv3:*-1; [изменим параметр атакующего на отрицательный]
!!VRv4:*-1; [изменим параметр защищающегося на отрицательный]
!!HEv5&x1<>0:Fd0/d0/dv3/d0; [восстановим силу атакубщего]
!!HEv6&x1<>0/v6>=0:Fd0/d0/dv4/d0; [восстановим силу защищающегося]

** триггер посещения объекта
!?OB2/2/0; [объект (2,2,0) посещен]
!!OW:C?y1; [получить текущий цвет]
!!OW:Iy1/?y2; [текущий игрок - ИИ?]
!!IF&y2=0:Q1/6/0/21/134/33/0/2^Вы замечаете маленький стенд, настроенный около Зведной Оси. Сказочных Дракон подзывает вас:
- Позабавьтесь с магией! За сто золота счетчик магии прыгнет на целых пять единиц посещений!
Вы согласны?^;
!!OW:R-1/6/?y3; [Найти количество золота игрока]
!!IF&y2=0/-1:M^Дракон разочарованно поворачивается к другому потенциальному клиенту.^;
!!IF&y2=0/1/y3>=100:M^"Отлично! Я знал, что вам понравится предложение!"^;
!!IF&y2=0/1/y3<100:M^"Я рад, что вы заинтересовались, но у вас недостаточно золота для покупки. Возвращайтесь позднее!"^;
!!VRy4:S0R1; [генерируем значение]
!!IF&y2=1:V1/y4; [устанавливаем флаг в значение]
!!OW&1/y3>=100:R-1/6/d-100; [забираем 100 золота, если согласны]
!!VRv2:S0; [устанавливаем v2 на 0]
!!VRv2&1/y3>=100:+4; [устанавливаем v2 на 4, если плата произведена]


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post

Сообщений в этой теме
- SnoRT   Обучение ERM   04 Jun 2006, 09:48
- - Soul Reaver   Здесь же будем выкладывать простенькие и не очень ...   04 Jun 2006, 09:57
- - BloodPhoeniX   Я здесь вот скрипт доработал по созданию Драколича...   08 Jun 2006, 11:31
- - Horn   Есть скрипты вогификации (scriptNN.erm, лежат в па...   08 Jun 2006, 16:33
- - Soul Reaver   Писал письмо Гудвину. Он просил сделать так чтоб в...   16 Jun 2006, 15:07
- - Soul Reaver   А откуда ещё? Прикол я бы всё писал это сам? Каждо...   16 Jun 2006, 17:36
|- - gamecreator   Цитата(Soul Reaver @ 16 Jun 2006, 18:36)Объяс...   18 Jun 2006, 20:32
- - DracoLich   Теперь разберем создание артефактов. Возьмем, напр...   02 Jul 2006, 18:43
- - DracoLich   При посещении объекта используются в основном его ...   03 Jul 2006, 13:03
- - SnoRT   Наверно что-нибудь напишу ещё. Наверное, многие хо...   04 Jul 2006, 16:00
- - DracoLich   Рассмотрим использование переменных Основные типы ...   11 Jul 2006, 12:10
- - DracoLich   y$ - переменная функции, уникальная для каждо...   11 Jul 2006, 18:53
- - DracoLich   Введение Флаги и переменные - это главнейшая особ...   13 Jul 2006, 17:34
- - DracoLich   Синтаксис проверки - значение ИЛИ: | !(!|?...   14 Jul 2006, 10:42
- - DracoLich   Вот все про флаги и переменные: PS. Стоит писать ...   14 Jul 2006, 11:05
- - DracoLich   Введение Если игрок активирует триггер, это вызыва...   21 Jul 2006, 08:48
- - DracoLich   Разберем простенький скрипт с участием монстра - к...   21 Jul 2006, 14:50
- - DracoLich   Так... Сейчас мы разберем способ заставить убежать...   23 Jul 2006, 14:54
- - Soul Reaver   Вот решил наскоро объяснить переменные. Они уже ко...   23 Aug 2006, 14:01
|- - gamecreator   Цитата(Soul Reaver @ 23 Aug 2006, 15:01)...   28 Aug 2006, 15:59
- - Рогатый Змий   ЦитатаSoul Reaver:А если вам хочется чтоб после по...   23 Aug 2006, 14:34
- - Ennin   Кодвсе команды делятся на две принципиальные части...   27 Aug 2006, 12:28
- - DracoLich   Как создать свой первый скрипт Erm для чайников, b...   23 Sep 2006, 11:03
- - DracoLich   Как создать свой первый скрипт (часть 2) Erm для ч...   23 Sep 2006, 18:58
- - DracoLich   Как создать свой первый скрипт (часть3) Erm для ча...   05 Oct 2006, 15:05
- - Demiurg   Получение/Определение/Установка типа артефакта у у...   13 Jun 2007, 23:54
- - sergroj   КодВ: Как установить, что имеется в "Облом...   09 Sep 2007, 12:45
- - Demiurg   Как управлять содержимым пандоры? Для пандоры рабо...   11 Sep 2007, 20:31
- - Demiurg   Как пользоваться !!UN:C? !!UN:C#/#...   15 Sep 2007, 14:25
- - Demiurg   MR2 Trigger features Для понимания дальнейшего по...   27 Sep 2007, 22:46
- - sergroj   Передача переменных между картами компании Для пер...   07 Oct 2007, 18:17
- - DracoLich   Документы ERS Если вы создаете новый скрипт для W...   18 Oct 2007, 13:04
- - Bes   В справке не совсем понятно, как работает арсширен...   30 Oct 2007, 20:14
- - DracoLich   2Bes Ну, раз мы имеем ПОИСК линии бонуса, то логич...   31 Oct 2007, 10:31
- - gamecreator   так: $1 - номер способности (формат SE1) ...   31 Oct 2007, 16:05
- - Д'якон   Решил поделиться небольшим опытом в использовании ...   09 Nov 2007, 15:48
- - Д'якон   Задача2: найти адрес содержащий стоимость постройк...   09 Nov 2007, 16:21
- - Д'якон   Задача3: заменить ресивер MR:N . Задача стоит в т...   09 Nov 2007, 21:26
- - Aнгeл   ЦитатаНо, оказалось, что понятия номер стэка вообщ...   01 Dec 2008, 15:06
- - Master Of Puppets   Просто открыл для себя, когда делал кнопки передач...   19 Feb 2009, 12:39
- - Ньюб   Здравствуйте уважаемые. А не могли бы вы подсказат...   25 Feb 2009, 16:27
- - Master Of Puppets   Операция удаления бит из переменной не вопринимает...   01 Mar 2009, 10:07
- - Master Of Puppets   В подавляющем большинстве случаев индекс z-перемен...   08 Mar 2009, 06:07
- - major   Попробуй через статические переменные названия арт...   08 Mar 2009, 17:37
- - G.I.   Пытаюсь вспомнить ерм... не получается... а ведь к...   21 Mar 2009, 13:16
|- - Virsavia   Надо так наверное !#UN:G1/170/0/S^Наёмные стре...   21 Mar 2009, 14:32
- - major   наверно так надо !#VRz178:S^Наёмный стрелок^; ...   21 Mar 2009, 18:22
|- - G.I.   Цитата(major @ 21 Mar 2009, 19:22)наверно так...   21 Mar 2009, 21:47
- - hippocamus   Да, переменные будут использоваться. Есть выход - ...   21 Mar 2009, 22:46
|- - G.I.   Цитата(hippocamus @ 21 Mar 2009, 23:46)Да, пе...   22 Mar 2009, 23:03
- - major   !!UN статические переменные не берет зараз...   22 Mar 2009, 20:06
- - hippocamus   Опытным путём Скачай новый ERM Editor (в полезных...   23 Mar 2009, 01:23
- - ShadowDF2   erm-manual читать не хотим? И чего хотИм?   23 Mar 2009, 18:33
|- - G.I.   Цитата(ShadowDF2 @ 23 Mar 2009, 19:33)erm-man...   24 Mar 2009, 13:59
- - izrukvruki   G.I. если тебе хелп по ЭРМ нуно посмотри тут http:...   24 Mar 2009, 14:57
- - G.I.   Спасибо! правда, это у меня уже есть, но всё р...   24 Mar 2009, 18:59
- - Faustalive   RE: Обучение ERM   24 Mar 2009, 23:46
- - hippocamus   Хм... Граали строятся функцией 717 в цикле DO. Но ...   25 Mar 2009, 00:16
- - Сатарыч   Гипо, привет! Нужно в 282 строке в скрипте ...   25 Mar 2009, 10:09
- - ShadowDF2   ЦитатаСпасибо! правда, это у меня уже есть, но...   25 Mar 2009, 12:59
|- - G.I.   Цитата(ShadowDF2 @ 25 Mar 2009, 13:59)Так а ч...   25 Mar 2009, 14:33
- - Сатарыч   Цитата(ShadowDF2 @ 25 Mar 2009, 13:59)Так а ч...   25 Mar 2009, 13:11
|- - ShadowDF2   Цитата(Сатарыч @ 25 Mar 2009, 13:11)Цитата(Sh...   27 Mar 2009, 14:08
|- - G.I.   Цитата(ShadowDF2 @ 27 Mar 2009, 15:08)Потруди...   27 Mar 2009, 17:42
- - Faustalive   ЦитатаНужно в 282 строке в скрипте !!DO717...   25 Mar 2009, 14:20
- - G.I.   Upd. т.е. это всё-таки справочник, а не учебник. ...   25 Mar 2009, 19:34
- - major   "естесственным" - напрямую в экзешке. эм...   25 Mar 2009, 19:42
|- - G.I.   Цитата(major @ 25 Mar 2009, 20:42)"естес...   26 Mar 2009, 00:14
- - G.I.   И вот ещё вопрос, как поставить свойство (и, желат...   26 Mar 2009, 08:44
- - izrukvruki   а модеры могли бы пост этот длинный отредактироват...   26 Mar 2009, 12:17
- - ShadowDF2   ЦитатаС объяснениями всё в порядке, понятно и подр...   26 Mar 2009, 17:29
|- - G.I.   Цитата(ShadowDF2 @ 26 Mar 2009, 18:29)ЦитатаС...   26 Mar 2009, 19:09
- - major   Цитата(G.I. @ 26 Mar 2009, 11:44)И вот ещё во...   26 Mar 2009, 17:49
- - Сатарыч   Цитата(major @ 26 Mar 2009, 18:49)Цитата(G.I....   26 Mar 2009, 19:48
- - hippocamus   Когда случается вот такое: Íà ï...   26 Mar 2009, 20:31
|- - asm   Цитата(hippocamus @ 26 Mar 2009, 22:31)Когда ...   26 Mar 2009, 20:50
- - hippocamus   Не думаю, что поможет...   26 Mar 2009, 21:10
|- - Iv   Цитата(hippocamus @ 26 Mar 2009, 21:10)Не дум...   27 Mar 2009, 09:26
- - major   Цитата(Сатарыч @ 26 Mar 2009, 22:48)Цитата(ma...   26 Mar 2009, 21:13
- - ShadowDF2   chm = пак .html файлов. Забацай плз страничку с тв...   27 Mar 2009, 18:22
- - G.I.   Пробовал с опытом !#EA7:B0/1/114/100/100/100/...   27 Mar 2009, 21:06
- - hippocamus   Попробуй так: !#EA7:F114/?v1 Bv1/1/114/100/10...   27 Mar 2009, 21:29
- - G.I.   Да нет, я просто не знал, что систему опыта надо ч...   27 Mar 2009, 21:48
- - G.I.   И снова вопрос: как вызвать анимацию атаки или стр...   28 Mar 2009, 01:39
- - hippocamus   Через стандартные функции ЕРМ - никак.   28 Mar 2009, 12:44
- - G.I.   Понятно Похоже я ставлю задачи нерешаемые... Лад...   28 Mar 2009, 14:19
- - ShadowDF2   Не видел подобного.   29 Mar 2009, 18:10
- - G.I.   Не получается управлять силой магии в бою!...   01 Apr 2009, 16:50
- - major   Я тоже менял этот параметр через Артмани, и тоже н...   01 Apr 2009, 17:13
|- - G.I.   Цитата(major @ 01 Apr 2009, 18:13)Я тоже меня...   01 Apr 2009, 20:18
- - G.I.   Ссори, просто совпадение чисел... сила магии не за...   02 Apr 2009, 17:41
- - ShadowDF2   Цитата(G.I.)взрыв сработает несмотря на иммунитет ...   03 Apr 2009, 16:47
|- - G.I.   [quote=ERM-Help]F$ The final (corrected) dam...   05 Apr 2009, 13:04
- - Сатарыч   Цитата(G.I. @ 05 Apr 2009, 14:04)Вопрос. Пыта...   05 Apr 2009, 21:09
- - ShadowDF2   Проще кастуй на юнита Берсерк. И гемора нет, и сов...   06 Apr 2009, 17:30
- - Vade Parvis   ShadowDF2, а разве имелась в виду не автоматическа...   06 Apr 2009, 17:32
- - ShadowDF2   Цитатаюниты атакуют ближайшую цель вне зависимости...   06 Apr 2009, 17:38
- - Master Of Puppets   Особенность статических стрингов – привязанность к...   08 Apr 2009, 07:12
- - ShadowDF2   ^Представь себе процесс дебага или совместной рабо...   08 Apr 2009, 17:25
- - major   Интересно, я вот буквально на днях экспериментиров...   08 Apr 2009, 17:30
3 страниц V   1 2 3 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 8 November 2025 - 21:51
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика