Title 1Title 2Title 3Title 4
Title 1

Title 2

Title 3

Title 4

назад вперед
Информер
Главная » Статьи » Редакторы игрового контента » Статьи редактор WarCraft

Создание квестов
Грамотное создание и управление системой заданий (с проверками):

Предисловие: Прежде всего, хочу сказать о том, откуда брался материал. В этом мне помогла карта Blizzard-ов. Официальная кампания Орды из Regin of Chaos. Самая первая миссия. Я ее выложу как пример. Если внимательно посмотреть в систему триггеров других официальных карт кампании warcraftа, то там вы увидите ровно тоже самое, что я сейчас вам предложу. Поэтому и посему, приятного чтения!

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

Code
QuestCreated (лог.) – переменная, которая будет отвечать за создание квеста.
NewQuest (лог.) – переменная типа "квест". Это ваш какой-то квест.
GameOver (лог.) – переменная, которая будет отвечать за конец игры.

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

Триггер QuestCreate:

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

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

Триггер Quest Discover:

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

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

Quest Complete:

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

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

MissionFailed

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

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

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, где мало заданий. Ну, вообще, я думаю это все, что я хотел рассказать.


Исходник на форуме

Категория: Статьи редактор WarCraft | Добавил: DrKirc (17.03.2009)
Просмотров: 1352 | Комментарии: 2 | Рейтинг: 3.0/1
Всего комментариев: 2
2 дМИИЙ  
0
что такое квесты?

1 Night elf  
0
У меня полностью русский редактор триггов пожалуйста разжуй мне индивидуально)

Имя *:
Email *:
Код *: