IGROMANIA.RU
Registration
MoreLess
Популярные за неделю
Популярные за месяц
«Викинг». The Return of the (Vi)king Кино > «Викинг». The Return of the (Vi)king
«300 спартанцев» Зака Снайдера и «Гладиатор» Ридли Скотта успешны и узнаваемы, но ни капли ни историчны. Российский «Викинг» идет другим путем.
Комментариев: 56
Презентация Nintendo Switch. Самое главное об играх для новой консоли Спец > Презентация Nintendo Switch. Самое главное об играх для новой консоли
Nintendo заявила, что в разработке находится более восьмидесяти игр для консоли Switch. Рассказываем о тех, что выйдут в ближайшее время.
Комментариев: 31
«Труп выглядит здоровее». Четвертый сезон «Шерлока» Кино > «Труп выглядит здоровее». Четвертый сезон «Шерлока»
Сценаристы «Шерлока» обещали, что четвертый сезон станет пугающим и шокирующим. Разбираемся, все ли у них получилось.
Комментариев: 30
«Press X to Win», или История Quick Time Event Спец > «Press X to Win», или История Quick Time Event
История возникновения и развития ваших нелюбимых всплывающих кнопочек.
Комментариев: 12
Выбор имеет значение. Превью Vampyr В разработке > Выбор имеет значение. Превью Vampyr
Смогут ли авторы Remember Me и Life is Strange создать полноценную ролевку с открытым миром? Делайте ваши ставки, господа!
Комментариев: 8
Battlefield 1. Фронтовые записки Спец > Battlefield 1. Фронтовые записки
Делимся опытом выживания в сетевом режиме главного боевика про первую мировую.
Комментариев: 6

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

   Из горсти зерен — поле

   Эврисфей посылал Геракла на подвиги из своего дворца. Геракл выполнял одно задание (квест), возвращался к царю, говорил, что работа сделана, и Эврисфей давал Гераклу новое задание. Подобную преемственность можно создать и в "Героях", но... Не через Quest Hut’ы, которые имеют серьезный недостаток: они в буквальном смысле одноразовые. Если вы выполнили требуемый квест, Quest Hut перестает работать.
    Чтобы обойти подобную "одноразовость", мы будем пользоваться Placed Events. Quest Huts нам тоже пригодятся, но только для создания дополнительных квестов. Использование Placed Events не лишено недостатков, основной из которых — отсутствие записи квестов в журнал. Поэтому всю схему заданий придется построить так, чтобы игрок, получая квест, в дальнейшем не мог забыть, что же ему нужно сделать. Ведь и Геракл не забывал, какой очередной подвиг его ждет...
    Основную роль при создании каждого квеста будут играть Placed Events.

   Блок-схема — основа основ

   Прежде чем создавать любой скрипт,
40 Kb
необходимо построить его блок-схему. Те, кто хоть немного знаком с программированием, поняли, о чем идет речь. Для тех же, кто не штудирует регулярно материалы рубрики "Самопал", поясним на примере.
   Допустим, что квесты может выполнять только определенный герой в вашей армии. Создадим его и назовем Геракл. Гераклу надо выполнить по очереди несколько квестов. Представим, что Квест1 он уже выполнил. Можно выполнять Квест2. Как только это будет сделано, основное задание будет считаться выполненным, Гераклу дадут EXP (очки опыта) и разрешат выполнять Квест3. И пока Геракл его не выполнит, ему будут говорить: "Ты не выполнил задание".
   Согласно стандартному принципу построения блок-схем, скрипт должен выглядеть так:
   Но в этой схеме есть один недостаток. В
49 Kb
Так выглядит
правильная схема.
начале все правильно, но как только мы активируем Placed Event снова, нам сначала покажут брифинг и лишь потом произойдет проверка его выполнения. То есть Геракл мог и не выполнить квеста, а брифинг с поздравлением ему уже покажут. Хорошо если брифинг небольшой, а если это целая история? Игрок будет удивлен.
   Чтобы избежать казуса, нужно добавить еще одно условие перед брифингом, которое разделит скрипт на две части. Выглядеть условие должно так:
   — Если брифинга не было — запустить брифинг, отметить, что его показ состоялся, и продолжить выполнение.
   — Если брифинг был — произвести проверку на выполнение.

   Рассмотрим, как наша блок-схема может быть реализована в конечном скрипте, в редакторе.
   1. Первая переменная, определяющая, выполнен ли Квест1. Назовем ее Quest1_Completed. Так как Геракл выполнил Квест1, переменная имеет статус True.
    2. Переменную, отвечающую за брифинг, назовем Q2_Briefed.
    3. Последняя переменная, которая завершит выполнение квеста, будет называться Quest2_Completed.
   Правильную блок-схему мы построили и даже разобрались, как она в общих чертах должна быть реализована в редакторе. Теперь нужно перевести условные значки блок-схемы в реальные квесты в игре.

   Квестовая чехарда

   Ставим на карту дом (Quest Hut), в котором Гераклу будут выдавать квест. Перед входом помещаем Placed Event, который сработает, когда герой войдет в дом. Скрипт, прописанный в Placed Event, очень похож на тот, что используется в соответствующем Quest Hut, но его можно будет использовать снова и снова.
    В дом можно войти с разных сторон, поэтому не забудьте закрыть все входы, кроме главного, где установлен Event. Назовите Event, например, Quests. Зайдите в Map Properties и создайте Placed Event под тем же именем Quests. Перейдите в подраздел Script, где нужно создать Conditional Action. Дальше необходимо выполнить следующую последовательность действий:
   1. Проверяем, имеет ли переменная Quest1_Completed статус True. В поле If выбираем Variable, далее из списка берем Quest1_Completed. По умолчанию переменная имеет значение True. Поле Else оставляем пустым.
   2. Делаем проверку. В поле Then выбираем Conditional Action. В поле If находим Has certain Hero, после чего выбираем героя с именем Геракл. В поле Else нужно ввести текст: "Только Геракл может выполнить этот квест" или другой текст с похожим смыслом.
   3. Проведем проверку брифинга. Выставляем Conditional Action. Герой получает квест в первый раз, поэтому ему надо пояснить, что, где и как он должен сделать. Выбираем If NOT Q2_Briefed. В разделе Then создаем Sequence. Присваиваем переменной Q2_Briefed статус True и вводим текст самого брифинга, например: "Геракл, ты должен убить Немейского Льва". Не забудьте создать соответствующего врага — в нашем случае Льва — в редакторе.
   4. В Sequence идет проверка на выполнение квеста. Создаем Conditional Action и выбираем If/Certain Hero is Dead. Для условия "Немейский Лев умер" в поле Then создаем Sequence, где от всей души поздравим Геракла с пройденным квестом. Дадим Гераклу EXP, объявим переменную Quest2_Completed и сделаем Remove Script.
   Если же Лев жив, сообщаем игроку, что он не убил Льва, после чего:
   5. Возвращаемся к пункту 3. Раздел Else будет пуст. Подразумевается, что игрок проинструктирован и переменная Q2_Briefed имеет статус True. Проводим проверку квеста на выполнение так же, как описано в пункте 4.
    Если вы будете создавать сюжет вашего уровня по описанному выше образцу, то получите дерево из квестов, количество ветвей которого будет равно 2 в степени n, где n — число последовательных квестов. Работать по такому принципу довольно долго. Можно упростить задачу, создавая не отдельные маленькие квесты, а один большой квест с несколькими заданиями. Каждый последующий квест будет автоматически запускаться после срабатывания предыдущего (когда Questn_Completed примет
значение True).
   Вы спросите, как в таком случае объединить все локации, где будут выдаваться квесты, в одну. Мы ведь решили, что Эврисфей дает Гераклу задание только в своем дворце. Проблема решается просто: мы ведь можем накладывать Placed Events на карте один на другой! Это значительно проще, чем строить огромное ветвистое квестовое дерево, повторяя процедуру создания много-много раз. Главное без ошибок создать первый квест. Ведь если в нем будет ошибка, то она повторится во всех "размноженных" квестах. Файл с примером правильного построения квестового дерева вы можете взять с нашего компакта.

   В плену багов

   Мы создали разветвленную систему квестов. К сожалению, редактор четвертых "Героев" содержит в себе большое количество багов, некоторые из них не позволяют без проблем нашей схемой воспользоваться. Но почти все баги можно обойти.
   Самый коварный огрех редактора — неработающая команда Remove Script в Continuous Event определенного героя в армии. Все команды скриптов благополучно функционируют, если их создать в разделе Events ЦЕЛОЙ армии. Если же перейти на определенного героя в этой армии и там создавать Continuous Events, то ничего не получится. Поэтому оперировать нужно именно целыми армиями.
    Еще один баг — некорректное функционирование раздела Branches в команде Combat. Неважно, выиграл или проиграл герой эту битву, но после нее сработает либо раздел Victorious, либо Defeated, причем в случайном (Random) порядке. Данный баг иногда себя не проявляет, и все работает нормально. Если же проблема возникла, то ее можно обойти. Combat помещается в Sequence, чтобы мы могли добавить еще пару команд. Раздел Branches оставляете пустым. Сразу после команды Combat надо создать новую переменную, например LookforDeath со статусом True. Данная переменная будет запускать проверку на смерть героя и (или) его армии. Заходите в раздел Continuous Events той армии, где находится ваш герой. Создаете новый скрипт, а в нем Conditional Action. Условием его активации будет наша переменная LookforDeath. Прикидываете все возможные последствия боя и прописываете их. Еще придется "поколдовать" с командами IfHeroIsDead (NOT Dead) и Total number of creatures in army. Не забудьте отключить переменную проверки LookforDeath, поменяв ее статус на False, иначе компьютер каждую секунду будет постоянно проверять вашего героя, не скончался ли он.
    При обращении к разделу Continuous Events вы можете натолкнуться еще на один баг. Так как вы применили Continuous Event ко всей армии, а не к определенному герою, то при перетаскивании героя в другую армию проверка перестает работать. Так что заранее предупредите игрока, например в брифинге, что передавать армию другому игроку не следует. Можно даже это как-то обосновать с точки зрения сюжета. И обязательно отключите караван в городе. Ведь когда герой путешествует в караване, то в городе, куда этот караван направляется, создается армия-клон той, что была у игрока в городе, откуда вышел караван. А исходная армия просто исчезает со всеми скриптами. Игроку также следует в ненавязчивой форме сообщить, что при смерти героя необходимо, чтобы кто-то из его армии обязательно выжил. Иначе герой не сможет воскреснуть, ведь перетаскивать армию погибшего героя нельзя.
   Один из ближайших патчей к "Героям" должен исправить описанные выше ошибки, и вам не придется делать так много лишней работы по их обхождению.
   * * *

   Свои работы с оригинальной системой квестов присылайте на gamezone@igromania.ru с пометкой "Работа читателя Мании". Лучшие уровни займут достойное место на нашем компакте.
Смогут ли авторы Remember Me и Life is Strange создать полноценную ролевку с открытым миром? Делайте ваши ставки, господа!
Рассказываем о самых разрекламированных играх, которые не оправдали ожиданий.
История возникновения и развития ваших нелюбимых всплывающих кнопочек.
Делимся опытом выживания в сетевом режиме главного боевика про первую мировую.
Комментарии к статьям
Войти и прокомментировать                Войти под логином игромании | Зарегистрироваться
Самые комментируемые статьи за месяц:
Кино > «Викинг». The Return of the (Vi)king
Кино > Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы»
Спец > Лучший мой подарочек — это Xbox One S!
Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Спец > Презентация Nintendo Switch. Самое главное об играх для новой консоли
Кино > «Труп выглядит здоровее». Четвертый сезон «Шерлока»
Рецензии > Соборы в небесах. Обзор Space Hulk: Deathwing
Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
Спец > На скорости 160 км/ч, или Как работают гоночные игры
Прямым текстом > Darksiders: Warmastered Edition — жизнеспособное чудище Франкенштейна
Поиск по сайту Игровые платформы: PC  |   X360  |   XONE  |   PS3  |   PS4  |   Wii  |   Wii U  |   PSP  |   Vita  |   NDS  |   3DS  |   Android  |   iOS
1997-2017 ООО «Игромедиа». Мнение авторов и посетителей сайта может не совпадать с мнением редакции. Полное или частичное воспроизведение материалов сайта и журнала допускается только с согласия редакции. Для прямого контакта с редакцией пишите на основную почту «Игромании.ру».
Пользовательское соглашение

КОММЕРЧЕСКИЕ ССЫЛКИ:
Механизм выбора платформы позволяет отображать на страницах информационного портала материалы, относящиеся строго к выбранным платформам.

Каждый пользователь индивидуально выбирает для себя интересующие его игровые платформы.
 
Rambler's Top100 Яндекс цитирования