Четверг, 10.07.2025, 23:10
Главная » Статьи » Создание карт » Триггеры

Создание квестов (заданий)
Разберемся с переменными: Давайте решим, какие, и для чего, нам нужны переменные. Поскольку, задания – это своего рода проверка выполнения событий, то и переменные должны быть как-то связаны с событиями, а следовательно логического типа (true/false). Давайте создадим несколько переменных:
Code
QuestCreated (лог.) – переменная, которая будет отвечать за создание квеста.
NewQuest (лог.) – переменная типа "квест". Это ваш какой-то квест.
GameOver (лог.) – переменная, которая будет отвечать за конец игры.

1. Вот, с переменными мы справились, теперь приступим к подготовке самой системы. Начнем с первой ступени: создадим триггер, который будет проверять наличие квеста: если нет, то создавать его. И после этого помещать созданный квест в переменную - NewQuest:

Триггер QuestCreate:

Code
События:
Условия:
--- [u]QuestCreated[/u] равно Нет
Действия:
--- Set [u]QuestCreated[/u] = Да
--- Задание - Create a [u]Основное[/u], не получено quest titled ... ()
--- Set [u]NewQues[/u]t = (Last created quest)
--- Задание - [u]Create[/u] a quest requirement for (Last created quest) with description...

2. А теперь создадим триггер отвечающий, за открытие квеста. В нем будут происходить следующие действия: запускать предыдущий триггер, проверяя все условия, помечать наш квест NewQuest как полученное задание, а так же выводить на дисплей информацию о том, что задание получено. Это делается следующими тремя строками:

Триггер Quest Discover:

Code
События:
Условия:
Действия:
--- Триггер - Run [u]QuestCreate[/u] <gen> (checking conditions)
--- Задание - Mark [u]NewQuest[/u] as [u]Получено[/u]
--- Задание - Display to (All players) the Задание получено message: [u]ЗАДАНИЕ ПОЛУЧЕНО[/u]: ...

4. Ну вот. Основные триггеры для работы с квестами мы получили. В принципе, это не самая сложная система. Видали, как говориться, и посложней. Теперь давайте разберемся с добавлением. А именно: предположим, что в нашей RPG, на карте есть герой, который не должен погибнуть! Что мы должны сделать, чтобы задать это условие в коде. Первое, решим, что будет, если герой все-таки погиб: тогда у нас запустится триггер, который проверит состояние героя на гибель, проверит переменную, отвечающую за конец игры (значение которой должно быть к тому моменту сравнительно с «нет»), и завершит игру с надписью: «Вы проиграли!». Вот, с общим понятием разобрались. Что же нужно сделать? Создадим первый триггер, который отображает на экран игроку сообщение, гласящее проигрыш.

MissionFailed:

Code
События:
Условия:
Действия:
--- Задание - Display to (All Players) the ЗАДАНИЕ ПРОВАЛЕНО: ... message: Задание провалено

5. Ну вот, а теперь начнем работу с триггером, проверяющим состояние героя.

[/b]DefeatHero

Code
События:
--- Боевая единица - A unit owned by Игрок 1 (красный) умирает
Условия:
--- (Dying unit) равно Hero
--- GameOver равно Нет
Действия:
--- Триггер - Turn off (This trigger)
--- Set GameOver = Да
--- Триггер - Run MissionFailed <gen> (cheking conditions)
--- Wait 2.00 seconds
--- Игра - Defeat Игрок 1 (красный) with the message: Вы проиграли

6. (эпилог)
А теперь скажу парочку слов об использовании. Дело в том, что эта система хорошо себя показывает в больших картах, где много заданий. Так как когда вы начинаете работать, вы можете инициализировать несколько квестов сразу в одной папке, а после чего постепенно разбрасывать их выполнения/проигрыши по другим триггерам, отвечающим за какие-то определенные события в игре. Эта система работает и в обычных – небольших картах, типа RPG, где мало заданий. Ну, вообще, я думаю это все, что я хотел рассказать. Система, лично для меня удобна. И я ей часто пользуюсь. Думаю, вам она тоже понравится.

Спасибо.

Категория: Триггеры | Добавил: Fainor (04.11.2010)
Просмотров: 882 | Комментарии: 1 | Рейтинг: 5.0/1
Всего комментариев: 1
1 Dimon4iK-ERA   (04.11.2010 08:55) [Материал]
Эм... нашел фатальные ошибки в коде... посмотри по лучше на последний триггер...

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]