Скрипты в Героях Меча и Магии 4 - Статьи о Героях 4 - Каталог статей - Всё о Героях меча и магии
Суббота, 10.12.2016, 21:28

Приветствую Вас Гость | RSS
Герои Меча и Магии
ГлавнаяРегистрацияВход
Меню сайта

Категории раздела
Статьи о Героях Королевства [52]
Статьи о браузерной игре Меч и Магия: Герои Королевства
Статьи о Героях 6 [18]
Статьи, посвящённые игре Герои Меча и Магии 6 (Heroes of Might and Magic VI)
Статьи о Героях 1 [7]
Статьи, посвящённые игре Герои Меча и Магии 1 (Heroes of Might and Magic I)
Статьи о Героях 2 [8]
Статьи, посвящённые игре Герои Меча и Магии 2 (Heroes of Might and Magic II)
Статьи о Героях 3 [50]
Статьи, посвящённые игре Герои Меча и Магии 2 (Heroes of Might and Magic III)
Статьи о Героях 4 [12]
Статьи, посвящённые игре Герои Меча и Магии 2 (Heroes of Might and Magic IV)
Статьи о Героях 5 [8]
Статьи, посвящённые игре Герои Меча и Магии 2 (Heroes of Might and Magic V)
Статьи о Героях Меча и Магии [7]
Статьи о Героях Меча и Магии
Меч и Магия [5]
Статьи об игре Меч и Магия
Статьи о Героях 7 [6]
Статьи, посвящённые игре Герои Меча и Магии 7 (Heroes of Might and Magic VII)

Наш опрос
На какой сложности вы играете в Героях 3?
Всего ответов: 695

Статистика
Яндекс.Метрика
Онлайн всего: 3
Гостей: 3
Пользователей: 0

Форма входа

Главная » Статьи » Статьи о Героях 4

Скрипты в Героях Меча и Магии 4

Скрипты в Героях Меча и магии 4

В Героях Меча и Магии 4 у картостроителей появилась возможность создавать свои собственные скрипты. Возможность создания скриптов - это одно из нововведений, которые появились в четвёртых героях.

Скрипты в четвёртых героях создаются при помощи стандартного редактора карт, который поставляется вместе с игрой.

При использовании скриптов возможно кардинальное изменение не только сюжета игры, но и баланса сил, стратегии игры. В частности, условия победы и поражения, чётко определяемые и неизменные в меню карты в редакторе карт Героев Меча и Магии 3, в четвёрке могут быть совершенно различными, причём они могут меняться даже по ходу игры и практически зависят только от фантазии и желания создателя карты. Посещение же «квестовых» объектов, а также городов и шахт, если установить событие (например, при входе в объект), может обернуться не только простыми получением-сдачей квеста, но и целым сюжетным приключением. Также в четвёртой части серии имеется возможность создания и управления переменными различных типов, которые обеспечивают разнообразность условий и следствий в процессе игры, возможность согласовывать события в разных местах карты (в некоторых картах по границе, которую герою должен пересечь, выстраивается целая «стена» невидимых объектов-событий), а также специальные «бомбы», срабатывающие по скрипту и удаляющие объекты, на которых они установлены, прямо в процессе игры.

Система скриптов редактора карт Героев 4 позволяет задавать игровые события, которые разнообразят игровой процесс. При создании или редактировании карты можно программировать свои условия победы и поражения, менять владельца объектов, давать и отбирать ресурсы, сопровождать повествование текстом и так далее. Ниже приводится короткие описания различных действий и условий, используемых в скриптах. Далее следует небольшое руководство с примерами написания скриптов.

Типы событий

Событие во времени : Позволяет задавать события, которые должны произойти в указанный день.

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

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

Установленное событие : Позволяет задавать события, которые случаются, когда игрок пересекает объект-'событие', размещенный на карте.

Скрипты события

Построить здание : Строит в указанном городе здание.

Сменить владельца : Указанный объект переходит под начало другого игрока.

Очистить условия поражения : Удаляет текст, указанный в окне Условий поражения меню Информации по сценарию.

Очистить сообщение о поражении : Удаляет текст, который сообщает игроку о поражении.

Очистить условия победы : Удаляет текст, указанный в окне Условий победы меню Информации по сценарию.

Очистить сообщение о победе : Удаляет текст, который сообщает игроку о победе.

Бой : Создает армию, которая вступает в бой с войском указанного игрока.

Условные действия : Создает скрипт условия, например: "Если игрок владеет указанным городом, то он получает 10,000 золотых".

Уменьшить текущий запас очков магии : Уменьшает текущий запас очков магии указанного героя на заданное число единиц.

Уменьшить атаку : Уменьшает значение атаки указанного героя на заданное число единиц.

Уменьшить удачу : Уменьшает удачу указанной армии на заданное число единиц.

Уменьшить защиту : Уменьшает защиту указанного героя на заданное число единиц.

Уменьшить максимум очков магии : Уменьшает максимальное количество очков магии указанного героя на заданное число единиц.

Уменьшить мораль : Уменьшает мораль указанной армии на заданное число единиц.

Уменьшить популяцию жилища : Уменьшает имеющуюся популяцию указанного жилища на заданное число существ.

Уменьшить скорость : Уменьшает скорость указанного героя на заданное число единиц.

Удалить объект : Удаляет с карты указанный объект. Объект-указатель 'Бомба' отмечает, какие объекты будут удалены в ходе игры.

Отключить стандартные условия победы : Отключает для указанного игрока стандартные условия победы.

Показать сообщение : Выводит на экран текстовое сообщение.

Включить стандартные условия победы : Позволяет указанному игроку победить, выполнив стандартные условия победы.

Дать артефакты : Передает указанной армии выбранный артефакт(ы).

Дать воинов : Передает указанной армии выбранное количество существ.

Дать ресурсы : Передает указанному игроку выбранное количество ресурсов.

Дать навык : Обучает указанного героя заданному навыку.

Дать заклинание : Обучает указанного героя заданному заклинанию.

Увеличить подвижность : Увеличивает запас очков хода указанной армии.

Увеличить запас очков магии : Увеличивает текущий запас очков магии указанного героя.

Увеличить атаку : Увеличивает значение атаки указанного героя.

Увеличить опыт : Увеличивает опыт указанного героя на заданное количество очков.

Увеличить уровень опыта : Повышает уровень указанного героя.

Увеличить удачу : Повышает удачу выбранной армии.

Увеличить здоровье : Повышает количество очков здоровья выбранного героя.

Увеличить максимум очков магии : Повышает количество очков магии выбранного героя.

Увеличить мораль : Повышает мораль выбранной армии.

Увеличить прирост существ : Увеличивает прирост существ в заданном жилище.

Увеличить навык : Указанный герой повышает уровень владения заданным навыком.

Увеличить скорость : Повышает значение скорости указанного героя.

Ничего не делать : Ничего не происходит.

Поражение : Приводит к поражению указанного игрока.

Задать вопрос : Позволяет задать вопрос, на который возможно ответить "да" или "нет", прикрепляет скрипты к обоим вариантам ответа.

Убрать скрипт : Удаляет указанный скрипт события.

Удалить объект : Позволяет удалить выбранный объект с карты.

Последовательность : Позволяет создать цепочку связанных скриптов, которые будут выполняться один за другим.

Задать переменную : Позволяет задать переменную типа true/false.

Задать описание поражения : Позволяет задать текст, содержащий описание условий поражения.

Задать сообщение о поражении : Позволяет задать текст, который игрок увидит в случае поражения.

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

Задать описание победы. : Позволяет задать текст, содержащий описание условий победы.

Задать сообщение о победе : Позволяет задать текст, который игрок увидит в случае победы.

Взять артефакты : Забирает у заданной армии определенный артефакт(ы).

Взять воинов : Забирает из указанной армии определенное количество воинов.

Взять ресурсы : Забирает из казны указанного героя заданное количество ресурсов.

Триггер события : Позволяет активировать ранее заданное событие.

Победа : Приводит к победе определенного игрока.

Булевские (условные) выражения

И : Позволяет задавать для одного и того же события несколько условий.

Принадлежит силам: : Проверяет, принадлежит ли данная армия к тем или иным силам.

Обладает героем : Проверяет, есть ли в рядах войска требуемый герой.

Может дать навык : Проверяет, может ли герой обучиться определенному навыку (есть ли свободный слот для обучения).

Равно : Проверяет, можно ли поставить знак равенства между двумя выражениями.

False : Проверяет, ложно ли данное условие.

Больше чем : Проверяет, является ли первое выражение больше второго.

Больше или равно : Проверяет, является ли первое выражение больше или равным второму.

Владеет артефактом : Проверяет, владеет ли данная армия требуемым артефактом.

Определенный герой мертв : Проверяет, мертв ли определенный герой.

Определенный герой в тюрьме : Проверяет, находится ли определенный герой в тюрьме.

Меньше чем : Проверяет, является ли первое выражение меньшим, нежели второе.

Меньше или равно : Проверяет, является ли первое выражение меньше или равным второму.

Не : Позволяет отрицать определенную переменную, так что производится проверка всех условий, кроме специального.

Или : Позволяет задать условие на выбор, где достаточно выполнить любую из двух частей.

Игрок принадлежит к определенным силам: : Проверяет, принадлежит ли данный игрок к определенным силам.

Игрок определенного цвета : Определяет, принадлежит ли данный игрок к нужному цвету.

Игрок-компьютер : Проверяет, является ли данный игрок компьютерным.

Игрок уничтожен : Проверяет, полностью ли уничтожены все силы данного игрока.

Игрок-человек : Проверяет, является ли данный игрок игроком-человеком.

Игрок владеет героем : Проверяет, владеет ли данный игрок определенным героем.

Игрок владеет определенным городом : Проверяет, владеет ли данный игрок определенным городом.

True : Проверяет, верно ли данное условие.

Переменная : Позволяет задать имя переменной.

Численные выражения

Количество воинов в армии : Указывает количество воинов определенного типа в данной армии.

Текущий день : Показывает текущую дату, за точку отсчета берется начало игры.

День недели : Показывает текущий день недели, в неделе семь дней, за точку отсчета берется начало игры.

Разделить на : Позволяет разделить первое выражение на второе.

Уровень опыта : Отображает уровень опыта данного героя.

Уровень мастерства : Отражает уровень владения героя тем или иным навыком.

Число : Указывает конкретное число.

Количество ресурсов : Указывает количество единиц ресурсов каждого типа.

Минус : Позволяет вычесть одно выражение из другого.

Месяц : Показывает текущий месяц игры, причем месяц начала игры берется за первый.

Отрицание : Позволяет создать отрицательное выражение.

Игрок : Определяет конкретного игрока.

Плюс : Позволяет сложить два выражения.

Случайное число : Генерирует случайное число. Вы можете задать для него максимальное и минимальное возможное значение.

Напоминание : Указывает, что при делении двух выражений остался остаток.

Умножение : Позволяет умножить одно выражение на другое.

Общее количество воинов в армии : Отображает общее количество существ в данной армии вне зависимости от их типа.

Общее количество героев в армии : Отображает только общее количество героев в данной армии.

Переменная : Позволяет задать имя переменной.

Неделя : Показывает текущую неделю, за точку отсчета берется начало игры.

Неделя месяца : Указывает текущую неделю месяца, причем в каждом месяце четыре недели. 

 

Скрипты для объектов и событий

Хижины провидцев

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

Общее

Название: Позволяет задать имя для Хижины провидца, чтобы игроку было удобно их распознавать. Запись в Журнале заданий: Позволяет задать текст, который появится в журнале заданий героя, а также сообщение, которое появится при щелчке правой клавишей мыши. Здесь удобно указать краткое содержание задания и награду по его выполнении.

Сообщение с предложением

Позволяет задать текст, который появится при первом посещении Хижины. Здесь стоит дать задание и пообещать награду.

Промежуточное сообщение

Позволяет задать текст, который появится при повторном посещении Хижины, пока задание еще не выполнено.

Пустая хижина

Позволяет задать текст, который появится в том случае, если провидец уже выплатил вам награду за выполненное задание.

Вопрос

Позволяет задать текст, который появится при повторном посещении хижины в том случае, если задание выполнено. Иногда (как в примере чуть ниже) имеет смысл предоставить игроку выбор да/нет на случай, если он откажется от награды.

Скрипт триггера

Позволяет записать действие, которое произойдет после того, как герой посетит данный объект. В большинстве случаев этот скрипт не используется.

Скрипт задания

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

Сообщение по выполнении

Позволяет написать скрипт награды провидца. Награда также может быть любой: активация скрипта уничтожения объекта (чтобы расчистить дорогу), получение артефакта или ресурсов.

В следующем примере мы разберем, как задать для Хижины требование принести 5000 золотых в обмен на Шлем власти.

  1. Откройте вкладку Общее и введите имя Хижины. Назовем ее, скажем, "Торговец на пенсии".
  2. Во вкладке Общее введите текст для Журнала заданий. К примеру, "Принесите мне 5000 золотых, и я отдам вам Шлем власти".
  3. Введите текст Начального сообщения. Скажем, "Здесь живет бродячий торговец на пенсии. Он продаст вам свой Шлем власти за 5000 золотых".
  4. Введите текст Промежуточного сообщения. У нас он будет звучать так: "Торговец не отдаст вам шлем меньше чем за 5000 золотых".
  5. Введите Вопрос по выполнении, к примеру: "Жадно улыбаясь, торговец протягивает вам Шлем власти. Хотите купить его за 5000 золотых?"
  6. Создайте скрипт Задания. Нам нужно что-то вроде "Если запас золота данного героя больше или равен 5000 золотых". Окончание предложения прозвучит в Вопросе по выполнении, но сначала разберем, как создать скрипт.
    1. Щелкните по маленькой стрелочке справа. В открывшемся меню выберите условие 'БОЛЬШЕ ИЛИ РАВНО': нам надо узнать, есть ли у игрока хотя бы 5000 золотых. Откроются два окна, выше и ниже строки 'БОЛЬШЕ ИЛИ РАВНО'.
    2. Щелкните по клавише 'Правка' справа от верхнего окна. Откройте верхнее меню и щелкните по строке 'КОЛИЧЕСТВО РЕСУРСОВ'. Целью будет данный игрок, типом ресурса - золото.
    3. Щелкните по кнопке 'Ok'. Осталось указать количество золота.
    4. Щелкните по кнопке 'Правка' справа от нижнего окна. Откройте верхнее меню и щелкните по строке 'КОЛИЧЕСТВО'. Установите курсор в окошке снизу и впечатайте: 5000. Обратите внимание: очень важно, чтобы число было указано именно в нижнем окне, иначе скрипт не будет работать.
    5. Щелкните по кнопке 'Ok'.
  7. Напишите Сообщение по выполнении. У нас оно будет звучать так: "Тогда взять у игрока 5000 золотых и дать ему Шлем власти."
    1. Щелкните по маленькой стрелочке справа и выберите в появившемся меню вкладку 'ПОСЛЕДОВАТЕЛЬНОСТЬ': нам предстоит указать цепочку действий.
    2. Щелкните по кнопке 'Новое', чтобы создать первое действие. В нашем случае требуется забрать у игрока 5000 золотых (иначе торговец отдаст свой Шлем бесплатно, а ему это вряд ли понравится). Откройте меню и щелкните по строке ЗАБРАТЬ РЕСУРСЫ. В качестве Цели укажите текущего игрока, а в окошке для цифры поставьте 5000.
    3. Щелкните 'Ok'. Обратите внимание на строку, которая появится при этом в окне последовательности.
    4. Снова щелкните по кнопке 'Новое', чтобы создать следующее действие. Откройте меню и щелкните по строке ДАТЬ АРТЕФАКТЫ, цель - данная армия. Щелкните по кнопке 'Новое' и выберите из списка Шлем власти.
    5. Щелкните 'Ok'. Под первой строкой появится новая. В этой последовательности будут происходить два наших действия. Если вы хотите поменять порядок действий, щелкните по строке и перетащите ее на нужное место. Чтобы внести изменения, щелкните по кнопке 'Правка'.
  8. Снова щелкните 'Ok': мы закончили написание скрипта для Хижины провидца!  

Врата заданий

Врата заданий в четвёртых героях преграждают дорогу герою до тех пор, пока он не выполнит их требование. После этого герой может беспрепятственно проходить сквозь врата, тогда как прочим игрокам придется дождаться, пока они не смогут также выполнить их требование. Написание скриптов для Врат заданий во многом сходно с написанием скриптов для Хижин провидцев. Отличие в том, что вместо золота или ресурсов в качестве награды предлагается беспрепятственный проход.

Разберем написание скриптов для Врат на примере, где пройти разрешается только зеленому игроку.

  1. Откройте вкладку Общее и задайте имя для Врат. В этом примере мы назовем их просто: "Зеленые врата."
  2. Введите текст для журнала заданий, например: "Здесь пройдет только зеленый игрок."
  3. Введите текст Сообщения с предложением, к примеру: "К сожалению, стража пропустит лишь того, над чьей головой реет зеленый флаг. Вам еще повезло остаться в живых!"
  4. Введите текст Промежуточного сообщения. Для нашего примера подойдет следующее: "Со стражей никак не договориться. Она верна зеленому игроку."
  5. Напишите скрипт задания. Для наших Врат требуется что-то вроде "Если данный игрок зеленый, его надо пропустить."
    1. Щелкните по маленькой стрелочке справа, чтобы открыть меню. Выберите условие 'ИГРОК ОПРЕДЕЛЕННОГО ЦВЕТА': нам предстоит проверить, зеленый ли игрок подошел к Вратам. В качестве цели укажите - данный игрок, в качестве цвета (из списка) - зеленый.
    2. Щелкните 'Ok'.
  6. Снова щелкните 'Ok': мы закончили написание скрипта к Вратам задания! Учтите, что Сообщение по выполнении здесь не требуется, поскольку наградой герою станет проход сквозь Врата. 

Хранители задания

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

Разберем следующий пример: напишем скрипт для Хранителя задания, который исчезнет после того, как герой захватит требуемый город.

  1. Откройте вкладку Общее и введите имя для Хранителя задания. Давайте назовем его "Голливудская башня".
  2. В той же вкладке укажите текст для журнала заданий, к примеру, "Нужно завладеть городом Голливуд".
  3. Введите текст для вкладки Сообщения с предложением, например: "Стража этой башни откроет врата лишь правителю славного Голливуда".
  4. Введите текст Промежуточного сообщения, скажем: "Вам не удастся пройти: вы пока не правитель Голливуда".
  5. Введите текст Вопроса. Поскольку игрок не может знать, что потребует от него Хранитель, пока не посетит его, может случиться так, что он не захочет немедленно открыть доступ в новые земли (к примеру, решит сначала собрать армию побольше). Поэтому имеет смысл спрашивать героя, хочет ли он открыть врата. Допустим, наш вопрос звучит так: "Стража готова пропустить вас. Более того: им не терпится покинуть пост и вернуться в родной Голливуд. Вы хотите пройти?"
  6. Напишите скрипт задания. Для нашего Хранителя следует написать что-то вроде "Если данный герой владеет городом Голливуд, он может пройти." Здесь стоит проверить, не забыли ли вы построить в вашем мире город под названием 'Голливуд'.
    1. Щелкните по маленькой стрелочке, чтобы вызвать новое меню; выберите условие 'ИГРОК ВЛАДЕЕТ ОПРЕДЕЛЕННЫМ ГОРОДОМ': нам предстоит проверить, кому принадлежит указанный город. В качестве Цели укажите - данный игрок. Если вы назначаете городам на карте конкретные имена, они появляются в списке названий городов. Выберите из него имя 'Голливуд'.
    2. Щелкните 'Ok'.
    3. Как видно, скрипты задания Хранителей аналогичны скриптам задания Хижин провидцев. Для того, чтобы Хранитель исчез, отдельный скрипт не требуется; Хранитель исчезает автоматически. В дополнение к этому вы можете вручить герою награду (артефакт, скажем), или записать переменную для другого скрипта.  

Армии, существа и герои

Дважды щелкните по любому существу или герою на карте, чтобы вывести окно его свойств. В меню Стандартных событий имеются три строки:

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

Поражение: Все события, указанные в этой строке, произойдут после того, как указанный отряд потерпит поражение в битве.

Победа: Все события, указанные в этой строке, произойдут после того, как отряд выиграет битву.

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

Чтобы написать скрипт события для определенного героя, дважды щелкните по его изображению; появится окно специфических свойств. Откройте вкладку События и запишите желаемый скрипт. Если записать скрипт в свойствах армии, а не самого героя противника (т.е. играющего под одним из флагов), есть риск, что скрипт вообще не сработает.

В следующем примере мы попробуем написать скрипт события для вражеского героя по имени Грендель. Если игрок победит Гренделя, он выиграет сценарий.

  1. Откройте меню Кампании в верхней части экрана и выберите опцию Свойства карты. Выберите вкладку Победа/Поражение и снимите флажок слева напротив строки 'Разрешить стандартное условие победы'. Это очень важно: не хотим же мы, чтобы игрок мог победить, всего-навсего захватив все города на карте. Закройте окно, нажав 'Ok'.
  2. Двойным щелчком по изображению Гренделя на карте вызовите окно свойств данной армии. Дважды щелкните на слоте с ее именем, чтобы вызвать окно свойств героя. Это также очень важно: Грендель вполне может перейти в другую армию, и все скрипты, которые мы укажем для ее отряда, потеряют смысл.
  3. Щелкните по вкладке События, выделите строку 'Поражение' и щелкните по кнопке 'Правка'.
  4. Перейдите к вкладке Скрипт и выберите из меню строку Победа. В меню 'Какой игрок?' выберите: Противник и щелкните 'Ok'. Это означает, что любой игрок, победивший Гренделя, становится победителем всей игры. Если вы хотите, чтобы победителем мог стать только игрок-человек, вернитесь к вкладке Общее и снимите флажок напротив строки 'Компьютерный игрок'. Если вы хотите сопроводить сообщение о победе каким-либо текстом, создайте последовательность, в которой сначала будет идти текст, а затем уже - собственно победа.
  5. Щелкните 'Ok'. Готово! 

Города

Для каждого города можно назначить то или иное событие. Более того, в картах, где город выступает в качестве игровой цели, событие должно быть непременно указано: возможно, при захвате города будет выведен какой-либо текст; возможно, будет выполнено условие, необходимое для победы. В качестве примера приведем Стандартное событие, которое можно привязать к городу, а также пример скрипта. Триггерные и длительные события, а также события во времени будут рассмотрены нами позже.

Нападение: Позволяет задать скрипт события, которое произойдет, если на город нападут враги.

Захват: Позволяет задать скрипт события, которое произойдет, если враг захватит город.

Победа: Позволяет задать скрипт события, которое произойдет, если враг нападет на город, но будет отбит.

Встреча: Позволяет задать скрипт события, которое произойдет, если город посетит герой игрока или его союзника.

В следующем примере мы разберем, как задать текстовое сообщение и повысить мораль игрока, когда он нападает на указанный город.

  1. Дважды щелкните по изображению города, чтобы открыть его свойства; выберите вкладку События. В категории Стандартных событий найдите строку 'Нападение'. Выделите эту строку и щелкните по кнопке 'Правка'.
  2. В данном примере нам не понадобится редактировать вкладки Общее и Эффект, просто обратите внимание на то, что вкладка Общее позволяет вам указать, к какому игроку применимо данное событие, а вкладка Эффект с легкостью позволяет написать текстовое сообщение или установить для игрока награду без написания скрипта.
  3. Откройте вкладку Скрипт и выберите строку ПОСЛЕДОВАТЕЛЬНОСТЬ.
  4. Щелкните по кнопке 'Новое' и выберите строку ПОКАЗАТЬ СООБЩЕНИЕ. В появившемся окне введите текстовое сообщение, которое будет доступно игроку. Например: "В атаку! - кричите вы, и войска отвечают вам троекратным "ура!". Ваша боевая раскраска так воодушевляет солдат, что мораль войска растет на глазах."
  5. Щелкните 'Ok'.
  6. Щелкните по кнопке 'Новое' и выберите строку 'ПОВЫСИТЬ МОРАЛЬ'. Укажите цель - нападающая армия. Затем введите в окно Количества цифру '2'.
  7. Щелкните 'Ok'.
  8. Щелкните по кнопке 'Новое', выберите строку УБРАТЬ СКРИПТ и щелкните 'Ok'. Помните, это очень важный момент. Если вы не укажете в конце последовательности необходимость УБРАТЬ СКРИПТ, данный скрипт будет повторяться каждый раз, когда кто-либо нападает на город.
  9. Щелкните 'Ok' и закройте окно Свойств города. 

Последовательность скриптов

Последовательность скриптов используется довольно часто, ведь с помощью нее удается записать сразу несколько действий, следующих друг за другом. Последовательность скриптов удобно применять тогда, когда требуется, к примеру, забрать у игрока некоторое количество золота, объяснив при этом, в результате чего случилась эта неприятность; или вручить игроку немного золота, затем артефакт, а затем открыть проход на карте; и так далее. Количество пунктов в последовательности ограничено лишь вашим собственным желанием.

В следующем примере мы рассмотрим случай, когда игрок-человек побеждает большой отряд магов, получает за это 20 самоцветов, очки магии героя увеличиваются на 5 единиц, а затем появляется текстовое пояснение.

  1. Дважды щелкните на отряде магов, чтобы вывести окно свойств.
  2. Выберите вкладку События и выделите строку 'Поражение' в меню Стандартных событий. Щелкните по кнопке 'Правка'.
  3. Откройте вкладку Общее и снимите флажок напротив строки 'Компьютерный игрок'. Поскольку мы задаем особое событие, совершенно необязательно, чтобы им воспользовался компьютерный противник.
  4. Откройте вкладку Скрипты и выберите строку Последовательность.
  5. Щелкните по кнопке 'Новое', чтобы задать первое событие. В этом примере мы хотим вручить игроку 20 самоцветов. Откройте меню и выберите строку ДАТЬ РЕСУРСЫ. Укажите в качестве Цели - владелец; напротив строки "самоцветы" поставьте число 20.
  6. Щелкните 'Ok'. Обратите внимание, что в окне последовательности появилась первая строка.
  7. Снова щелкните по кнопке 'Новое', чтобы задать второе событие. Откройте меню и выберите строку УВЕЛИЧИТЬ МАКСИМУМ ОЧКОВ МАГИИ. В результате этого повысится статистика очков магии героя, а не его текущее количество очков магии. В противном случае герой лишь восстановил бы некоторое количество потраченных очков. Естественно, первый вариант нам подходит гораздо больше. Укажите Цель - самый сильный герой противника. В окне количества поставьте цифру 5, в окне продолжительности действия выберите строку 'Постоянно'.
  8. Щелкните 'Ok'. Под первой строкой возникнет вторая. Описанные события будут происходить в установленной последовательности. Если вы решите поменять их местами, щелкните по строке и перетащите ее в нужное место. Чтобы отредактировать событие, щелкните по кнопке 'Правка'.
  9. Снова щелкните по кнопке 'Новое'. Откройте меню и выберите строку ПОКАЗАТЬ СООБЩЕНИЕ. Впишите нужный текст в предложенное окно. В нашем примере подойдет примерно следующее: "Вы победили темных магов, забрали их сокровища и впитали часть их силы (получив 5 очков магии)."
  10. В последний раз щелкните по кнопке 'Новое', выберите строку УБРАТЬ СКРИПТ и щелкните 'Ok'. Снова щелкните 'Ok'. Готово! 

Скрипт события во времени

События во времени удобно задавать тогда, когда вы четко представляете себе, в какой день должно случится то или иное игровое событие. К примеру, если в начале игры вам надо вывести на экран некий вступительный текст, откройте свойства карты и задайте текстовое сообщение в качестве игрового события для первого дня. Помните, события во времени можно указывать лишь тогда, когда вы точно знаете, в какой день они должны произойти.

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

  1. Войдите в меню Кампании в верхней части экрана, откройте Свойства карты и перейдите к вкладке Событий.
  2. В меню уже выбрана строка События во времени. Остается щелкнуть по кнопке 'Новое' в нижней части окна.
  3. Откройте вкладку Общее и задайте для события имя, чтобы как-то отличить его от других. Назовем его "Пособие для синего игрока."
  4. Не пишите ничего в окне 'Первый раз', а в меню 'Последующие разы' выберите строку 'Каждые' и укажите в окне число 7. Теперь компьютерный игрок будет получать помощь каждую неделю.
  5. Перейдите в раздел 'Только если игрок' и снимите все флажки кроме тех, которые стоят напротив строк Синий и Компьютерный.
  6. Откройте вкладку 'Эффекты'. Здесь удобно записывать простенькие скрипты вроде этого. Поскольку готовить для компьютерного игрока текстовое сообщение не имеет смысла, мы ограничимся передачей ресурсов. Пожалуй, дадим ему 1000 золотых и по 2 единицы каждого типа ресурсов. Щелкните 'Оk'.
  7. Обратите внимание, что имя, назначенное данному событию, появилось в большом окне под строкой События во времени вместе с датой, указывающей, когда оно должно произойти в первый раз. Если вы хотите изменить количество выдаваемых ресурсов, выберите событие из списка, щелкните по кнопке 'Правка' и внесите необходимые изменения. Щелкните 'Ok'. 

Скрипт триггерного события

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

В следующем примере мы попробуем написать скрипт триггерного события, где игрок побеждает отряд крестоносцев и получает доступ к мосту.

  1. Найдите отряд крестоносцев и откройте панель свойств. Выберите строку 'Поражение' в меню Стандартных событий.
  2. Откройте вкладку Скрипт и выберите строку ТРИГГЕРНОЕ СОБЫТИЕ. Назовите его, скажем, "Доступ к мосту" и щелкните 'Ok'.
  3. Откройте меню Свойства карты и перейдите к вкладке События. Выберите из списка строку Триггерные события и щелкните по кнопке 'Новое'.
  4. Имя данного события должно совпадать с указанным для отряда крестоносцев, то есть, в нашем случае, "Доступ к мосту."
  5. Перейдите к вкладке Скрипт и выберите строку ПОСЛЕДОВАТЕЛЬНОСТЬ. Щелкните по кнопке 'Новое.'
  6. Выберите строку ВЫВЕСТИ СООБЩЕНИЕ и добавьте текст, который объяснит игроку, что путь к мосту свободен - что-то вроде "Рыцари повержены, больше ничто не преграждает дорогу через мост." Щелкните 'Ok'.
  7. Щелкните по кнопке 'Новое' и выберите строку УДАЛИТЬ ОБЪЕКТ. Теперь нужно поместить поверх преграды объект под названием 'Бомба'. Бомба должна иметь то же имя, что и Указатель. Для наших целей вполне подойдет имя "Мост." Щелкните 'Ok'.
  8. Щелкните по кнопке 'Новое' и выберите строку УБРАТЬ СКРИПТ. Щелкните 'Ok'. Готово! 

Скрипт установленного события

В группе объектов приключений есть категория 'разное', которая содержит объект, похожий на золотой шар. Это и есть так называемое 'Установленное событие'. Шар незаметен для игрока. Он отмечает место на карте, при прохождении через которое происходит задуманное автором событие. Установленные события можно считать разновидностью триггерных с тем отличием, что они привязывают действие к определенному месту на карте и не зависят от времени или прочих игровых событий.

В следующем примере мы попробуем разобрать простенькое установленное событие: при прохождении игрока через точку на карте появляется текстовое сообщение.

  1. Откройте меню Кампании в верхней части экрана, выберите Свойства карты и перейдите к вкладке События.
  2. В меню 'Категория' выберите строку Установленное событие. Щелкните по кнопке 'Новое', чтобы задать новое событие.
  3. Для каждого установленного события необходимо задать имя. Для удобства называйте их так, чтобы было понятно, к чему они относятся. Наше событие будет называться "Спрашиваем дорогу."
  4. Откройте вкладку Общее и снимите флажок слева от строки Компьютерный игрок, чтобы случайный герой компьютера не сбил событие раньше, чем к нему доберется наш герой.
  5. Откройте вкладку Эффекты и введите текст, предназначенный для игрока. Скажем, так: "По дороге бредет путник. Вы спрашиваете у него дорогу к замку Повелителя. Путник указывает рукой на север и исчезает вдали."
  6. Щелкните 'Ok', чтобы закрыть окно.
  7. Теперь надо поместить золотой шар на карту. Постарайтесь разместить его так, чтобы игрок не сумел его миновать. Для этого включите проверку проходимости карты и уберите все зазоры, которые могут позволить игроку обойти событие. Наконец, дважды щелкните на золотом шаре, чтобы вывести Свойства события. Щелкните по маленькой стрелочке справа, чтобы открыть список событий. В нем должна быть строка с именем "Спрашиваем дорогу". Выделите эту строку и щелкните Ok'. Готово! 

Скрипт длительного события

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

Переменные

Переменные достаточно удобны и интересны в использовании. Разберем использование переменных на следующем примере: провидец дает задание уничтожить вражеский отряд.

Создание переменной

  1. Откройте Свойства карты и выберите строку Событие во времени. Щелкните по кнопке 'Новое'. Прежде чем приступать к работе с переменной, следует задать ее свойства, иначе редактор может сам назначить переменной уже существующее у игрока численное выражение.
  2. Откройте вкладку Общее и задайте имя переменной. Мы назовем ее просто: "Охота на волков." Затем перейдите к вкладке Скрипты и выберите строку ПОСЛЕДОВАТЕЛЬНОСТЬ. Щелкните по кнопке 'Новое'.
  3. Выберите из списка пункт УСТАНОВИТЬ ЧИСЛЕННУЮ ПЕРЕМЕННУЮ и назначьте ей имя, например, "Победитель волков". Затем щелкните по кнопке 'Правка' справа от окна значений, выделите строку ЧИСЛО и введите значение 99999. Теперь отметьте флажком строку 'запрет'. В результате этого за переменной резервируется это число. Щелкните 'Ok', чтобы закрыть окно.

    Настройка переменной

  4. Перейдите к отряду волков и откройте окно свойств войска с помощью двойного щелчка. Откройте вкладку События и выберите пункт 'Поражение'.
  5. Перейдите на вкладку Скрипты и выберите из списка строку УСТАНОВИТЬ ЧИСЛЕННУЮ ПЕРЕМЕННУЮ. Щелкните по стрелке справа под именем переменной и выберите только что созданную переменную "Победитель волков".
  6. Затем щелкните по кнопке 'Правка' справа от окна значений и выберите из списка строку ИГРОК. Укажите Цель - противник. Это значит, что компьютер будет считать игрока, который уничтожит этот отряд, победителем волков (по имени переменной).
  7. Нажимайте 'Ok' в каждом меню, пока окно свойств не будет закрыто.

    Использование переменной

  8. Теперь перейдем к Хижине провидца, где надо настроить задание. Откройте окно свойств Хижины.
  9. Откройте закладку Скрипт задания и выберите строку РАВНО. Нам надо будет определить, является ли игрок победителем волков (точнее говоря, присвоена ли ему переменная "Победитель волков"). Щелкните по кнопке 'Правка' справа от верхнего окна и выберите из списка строку ИГРОК. Укажите Цель - данный игрок (тот, который посещает Хижину). Щелкните 'Ok'.
  10. Теперь щелкните по кнопке 'Правка' справа от нижнего окна. Выберите из списка строку ПЕРЕМЕННАЯ, затем "Победитель волков". Здесь происходит проверка того, равна ли переменная, присвоенная игроку, той, которая была задана в первый игровой день. Если герой действительно победил нужный отряд волков, эти переменные совпадут.
  11. Щелкните 'Ok', чтобы закрыть окно.
  12. Откройте закладку Сообщения по выполнении задания и назначьте игроку награду. 

 

Категория: Статьи о Героях 4 | Добавил: Montik (09.07.2015)
Просмотров: 642 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск


Copyright MyCorp © 2016Создать бесплатный сайт с uCoz