RSS

Примеры по созданию миссий. Как создать миссию.

Сообщений в теме: 16
0
Репутация: 3
Рейтинг: 2
Кол-во тем: 6
Сообщения: 8
Данная тема посвящена в основном новичкам в редакторе игры, поскольку тут будут приводиться несложные примеры миссий, из которых в последующем вы многое для себя откроете.

Основы.
В создании любой миссии самое главное, создать миссию, т.ё. прописать её характеристики во вкладке task, её можно найти щёлкнув F3 => F9:


Открываем вкладку щёлкая по многоточию и видим перед собой список миссий. Изначально он пуст, щёлкаем ПКМ, потом Add и в появившемся окошке вводим название миссии и ОК. После появятся настройки миссии с подпунктами, а именно:



desk — описание миссии, которое будет отображаться по нажатию Tab в игре.
primary — задание будет приоритетным, если выставлена галочка, если нет то задание второстепенное.
state — состояние миссии на момент старта, оно может быть: hidden — скрыто; completed — выполенно; failed — провалено. Изначально лучше выставить параметр hidden, что бы миссия не высвечивалась сразу же после старта. В нужный момент в игре можно вызвать нужную миссию через тригер task.
point — указывает тэг поинтера (срелки) задания. Если тут указанн тэг то в описании миссии в игре появится биноколь, нажав на который можно увидеть объект задания.
Сами поинтеры находятся в serviсe\pointer.
team — единственная вкладка, предназначения которой я не знаю, но без неё миссии работают отлично.
Небольшой пример начальной настройки:



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



Репутация: 3
Рейтинг: 2
Кол-во тем: 6
Сообщения: 8
Задание «Убить персонажа».

Для начала делаем само задание, так, как я писал выше и даём нужному офицеру тэг:




Для интереса усложним задание, пускай убийство офицера должно состояться до того, как он уедет. Ставим машинку, делаем вейпоинты движения, настраиваем их на свой вкус. Т.к. это не суть вопроса, настройку вейпоинтов объяснять не буду, там всё элементарно:



Займёмся настройкой тригеров миссии. Для начала, нужно сделать появление задания, делаем это с небольшой задержкой, секунды хватит. Далее task=> выбираем наше задание и statesnow.



Далее делаем условие победы. В графе Condition ПКМ и берём тригер entitles, настраиваем его таким образом:



Если по-русски, то: если с тэгом офицер в живых будет больше либо равно нулю юнитов, то задание зачтётся.
НО! какая миссия без условия поражения? Делаем новый тригер:
Допустим нам не нужно, что бы офицер уехал, делаем как условие поражения, если офицер сядет в машину. Делаем в Condition тригер crew. В vihicle_selector выбираем тэг или МИД машинки, в units вставляем тэг офицера и, если есть тэг сопровождающих. В нашем случае в машину садится только офицер, посему указываем только его тэг:



Далее добавляем команду task, но в графе state выбираем failed.
Результат:
Офицер убит:



Офицер удрал:



Так же можно добавить команду gameover в конец тригера поражения\победы и выставить там соответствующие настройки и сообщения.
Репутация: 3
Рейтинг: 2
Кол-во тем: 6
Сообщения: 8
Задание «Найти предмет».

Начнем наверное с простого. Поставим любой предмет из графы inventory. У меня это канистра с топливом. Рядом ставим солдата.



Переходим в F3-->F9-->task Создаем задание с именем can. в desk прописываем текст нашего задания. У меня это «Найти канистру с топливом»



Дальше, мы выставляем настройки задания. Ставим галочку на против primary (Задание будет помечено как важное и обязательно к выполнению). Далее выбираем hidden на против state. Это означает, что оно с самого начала будет скрыто. А активироваться задание будет только триггером. Ну а последняя графа, это point. Ее мы оставляем пустой, чтобы не знать где искать канистру.



Далее создаем триггер, который активирует наше задание. Делаем все так же, как написано ранее, в предыдущем посте.
Теперь нажимаем ПКМ на графе commands. Переходим в scene-->task
Открываем скрипт двойным щелчком ЛКМ (Левой кнопки мыши). В графе name, ищем наше задание. В моем случае tank kill. В state ставим show — показывать задание.


Создаем еще один триггер can win. В графе condition, выбираем inventory. Появляется вот такое окошко:



В графу item, вписываем название нашего предмета can. Открываем selector. Туда вписываем mid или tag солдата (Для солдатов надо ставить tag). Я вписываю mid 1.



А в конечном счете получится это:

Репутация: 3
Рейтинг: 2
Кол-во тем: 6
Сообщения: 8
Задание «Продержаться определённое время до победы».

Переходим в F3-->F9-->task. Создаем новое задание, пишем текст для нашего задания. Пусть это будет «Сдержаться до поступления войск». Ставим галочку на против primary. В графе state мы меняем с show, на -. В этом случае, задание активно с самого начала игры.



Далее создаем ветку триггеров. Ищем в scene скрипт timer.



Открываем его двойным нажатием ПКМ. И выставляем в графе time время. (Внимание! Этот таймер работает только на секундах! Писать кол-во минут надо в секундах! К примеру для 5 минут, надо писать 300 секунд). Я для примера написал 30 секунд. (Это для примера!)



Далее создаем еще одну ветку триггеров. Создаем скрипт delay. В нем только одна графа, time. В которой мы указываем кол-во секунд. (Внимание! Если вы хотите сделать, чтобы сразу после окончания времени на таймере, было выполнено задание, ставьте время не меньше указанного в скрипте timer.



Теперь, после скрипта delay, создаем еще один скрипт timer. В нем мы ставим только галочку на против графы hide. То есть по окончанию времени таймер скроется.



Далее, создаем скрипт task. В нем мы указываем наше задание, и ставим на против statecomplete.



Снова делаем скрипт delay, ставим задержку 5 секунд.
Теперь заключительная часть. Создаем Game Over. Ищем в scene скрипт gameover. Создаем его. Открываем его двойным нажатием ПКМ. В result, выбираем win (win — победа, lose — поражение). А в messege, пишем победный текст.




Ссылки на примеры заданий. Разархивировать в папку mods, подключать в настройках игры.
Перечисленные уроки (Всего 4)
— Привезти персонажа в определённое место
— Добраться до определённого места.
— Найти предмет.
— Продержаться определённое время до победы.
Скачать с Яндекс. Диска
После подключения в игре, выйдите в редактор карт. Нажмите CTRL+ О, в списке карт появится новая категория, primers. Заходим в нее (В режиме F3 конечно же), и видим 4 миссии. 0.mi, 1.mi, 2.mi, 3.mi
Сделал это, дабы и новичкам не мучатся с текстами в этой теме, и самому не путаться.
Репутация: 0
Рейтинг: 0
Кол-во тем: 2
Сообщения: 22
Здравствуйте, не могу просмотреть скрины. Отсылает на live.cnews.ru, а там скрина нет, одна белибирда.
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Цитата: Brydude
Здравствуйте, не могу просмотреть скрины. Отсылает на live.cnews.ru, а там скрина нет, одна белибирда.

Увы, хозяева cnews.ru и rbc.ru решили прихлопнуть форум и сайт про игры. sorry Игры им не интересны, они играются в деньги и ценные бумаги. Картинки вставленные в сообщения Milovich'а в этой теме хранились на закрываюшемся форуме «Боевого народа».

Если есть какие-то конкретные вопросы по конкретным темам, касающимся создания миссий, то по мере возможности могу отвечать на них.
Репутация: 0
Рейтинг: 0
Кол-во тем: 2
Сообщения: 22
Очень жаль(
Без скинов нет понимания и примеров.
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Цитата: Brydude
Очень жаль(
Без скинов нет понимания и примеров.

Восстановил изображения из первых сообщений темы с помощью сайта глобального веб-архива (да будут благославенны, безаварийны и бесконечны дни его!). Не в исходном разрешении, но все же надписи можно различить. Теперь можно читать.
Архив с примером для редактора — увы, нет.
Репутация: 0
Рейтинг: 0
Кол-во тем: 2
Сообщения: 22
Ещё, подскажите, как сделать, чтобы офицер сел в машину?
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Цитата: Brydude
Ещё, подскажите, как сделать, чтобы офицер сел в машину?

Способ 1:
Для посадки человека\человеков в машину используется команда board («посадка», «загрузка»). В ее параметрах нужно указать mid офицера (см. параметры\свойства конкретного юнита после его выделения в редакторе) или тег офицера. И указать mid или тег (если он есть) машины, в которую он должен сесть.
При выполнении этой команды посадка будет происходить по всем правилам, с анимацией — человек подойдет к машине, откроет дверь\люк, сядет внутрь машины (или залезет в кузов\на броню).

Команда board действует только на людей. С ее помошью нельзя «посадить» в машину предметы и «не живые» юниты (для подобного имеется другая команда).

В качестве условия срабатывания триггера посадки офицера в машину, наверное, лучше всего использовать условие near («близость»). В параметрах условия нужно указать, опять же, mid или тег офицера, mid или тег машины, а также расстояние (в игровых метрах) между офицером и машиной. Если офицер и машина окажутся на этом расстоянии друг от друга — триггер сработает и офицер по команде board сядет в машину (в спокойной обстановке, если ему никто при этом не будет мешать :)).

Кстати, расстояние отсчитывается от центров (!) юнитов, а не от их краев, надо помнить об этом при задании расстояния в параметрах условия.

Получится простейший триггер с одним условием и одной командой.

В боевой обстановке, — например, когда офицер шел к машине и в это время уже начался бабах, но он должен ускориться, чтобы удрать и еще быстрее рвануть к машине не взирая и не отвлекаясь на стрельбу, — нужно немножко добавить еще кое-чего в триггеры. Например, добавить офицеру шустрости, временно отключить «мозги» (AI) с помощью команды actor_state («состояние юнита») и т.п.

Способ 2:
Также, в качестве второго способа посадки офицера в машину, можно просто вставит команду board в вейпоинт у машины, в который должен прийти офицер при выполнении команды waypoint. В этом случае в параметрах команды board нужно указать только mid или тег машины. Собственно, садиться в машину будет любой юнит, пришедший в эту точку (waypoint) по команде waypoint или подобной ей команде.

Отвечаю кратко, без скриншотов, под рукой пока нет редактора. А они нужны?
Репутация: 0
Рейтинг: 0
Кол-во тем: 2
Сообщения: 22
John Doe,
Спасибо, пока все понятно, скриншоты не нужны.
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 2
Вопрос. У меня миссия, где нужно успеть всё сделать до того как начнётся авианалёт. Взять базу, держать оборону до определённого скрипта и в конце уничтожить конвой и всё это с масштабностью штурма. Поэтому как человек, который ни разу миссии не делал, хочу задать два вопроса.
1. Как сделать так, что-бы эти три задания ограничивались одним таймером?
2. Как вообще работает механика получения очков и подкреплений в серии штурм?
Репутация: 0
Рейтинг: 0
Кол-во тем: 2
Сообщения: 22
Цитата: Vediano
2. Как вообще работает механика получения очков и подкреплений в серии штурм?


Про подкрепления советую почитать вот это: боевой-народ.рф/forum/index.php?showtopic=44134

Насколько я знаю, она не сильно менялась
Репутация: 0
Рейтинг: 0
Кол-во тем: 2
Сообщения: 22
Цитата: Vediano
1. Как сделать так, что-бы эти три задания ограничивались одним таймером?


Ну, самый прямой и нерациональный способ — высчитать задержку (команда delay). Это значит, что ты делаешь условие, какое сделал команду для появления таймера. Потом delay на время, выставленное в таймер + пару секунд на погрешность (на усмотрение). А потом команду провала (как я понял, по истечению таймера игра кончается).

Так как сам новичек, не совсем понимаю работу условия trigger, может оно как-то поможет.
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 2
Brydude, на счёт второго пункта спасибо. А на счёт первого, не знаю получится ли, но в мыслях сделать таймер для третьего задания, а так как задания идут последовательно, то предыдущие 2 тоже попадают под таймер.
Репутация: 0
Рейтинг: 0
Кол-во тем: 2
Сообщения: 22
Цитата: Vediano
Brydude, на счёт второго пункта спасибо. А на счёт первого, не знаю получится ли, но в мыслях сделать таймер для третьего задания, а так как задания идут последовательно, то предыдущие 2 тоже попадают под таймер.


Лады.
Будут ещё вопросы — обращайся.
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Цитата: Vediano
Вопрос. У меня миссия, где нужно успеть всё сделать до того как начнётся авианалёт. Взять базу, держать оборону до определённого скрипта и в конце уничтожить конвой и всё это с масштабностью штурма. Поэтому как человек, который ни разу миссии не делал, хочу задать два вопроса.
1. Как сделать так, что-бы эти три задания ограничивались одним таймером?

Можно несколькими способами. Например, с помощью «событий» (events). В триггере запуска самолетов и авианалета можно вставить команду delay («задержка») и в качестве его параметра указать время в секундах, в течение которого игрок должен выполнить задания до авианалета. После delay вставить команду event («событие»). С помощью этой команды event можно для какого-либо придуманного события, — например, события «avianalet» — задать значение set=on (галочка, «состоялось»). А в условиях срабатывания триггера появления самолетов и авианалета не вставлять никаких условий. Тогда время начала авианалета будет отсчитываться от момента запуска миссии.

Потом для каждого из заданий миссии, которые необходимо выполнить до авианалета, придумать по отдельному триггеру выполнения и невыполнения задания. Среди условий этих триггеров задать условие event и в качестве параметра этого условия указать событие «авианалет» со значением «состоялся»\«не состоялся». При выполнении этого и других условий триггеров выполнения\невыполнения заданий на экране могут появлятся сообщения о том, что такое-то задание провалено и\или миссия провалена или, наоборот, о том, что задание выполнено до авианалета.

По сути, событие — это некая переменная, которую можно ввести в миссии и название которой можно придумать самому (например, «avianalet»). Как в программировании. Эта переменная может иметь только одно из двух значений — «состоялось» и «не состоялось» (true или false).

Если время авианаета четко не определено и будет зависеть от других условий и событий в миссии, условием срабатывания триггера с командой event, присваивающей событию «avianalet» значение «состоялось», может быть условие появления самолетов, участвующих в авианалете — условие entity. В параметрах этого условия entity можно указать теги самолетов или их MIDы. Этом случае команду delay и огромную задержку в триггере авианалета можно не использовать.

2. Как вообще работает механика получения очков и подкреплений в серии штурм?

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

Зона флага — круглая зона, в центре которой стоит 2 флага — флаг врага (он видим при запуске миссии) и флаг игрока (он невидим до захвата зоны этого флага, имеет тег «hidden»). Зоны флагов (в которых контролируется наличие и отсутствие юнитов игрока и врага) задаются игроком при редактировании миссии самостоятельно, как обычные зоны.

Захват флага — это выполнение условия, когда количество юнитов врага в зоне флага оказалось, например, равным нулю, а количество юнитов игрока — больше нуля (для определения этого используются условия entity). После выполнения этого условия флаг врага мгновенно меняется на флаг игрока — флаг врага прячется, делается невидимым, а флаг игрока — видимым (оба действия производятся с помощью команд entity). Запускается анимация поднятия флага для флага игрока, по окончании анимации флагу игрока автоматически присваивается служебный тег captured («захвачен»). Как только во время игры появляется определенный флаг игрока с тегом captured — срабатывает еще один триггер, который делает доступным для игрока указанные, заранее заданные подкрепления.

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

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

Вообще в системе триггеров захвата флагов и вложенных (раскрывающихся) меню подкреплений в одиночных скирмиш-миссиях «Штурма 1\2» для начинающего будет довольно сложно разобраться. Рекомендую в начале создания своих миссий ограничиться простым меню подкреплений (без вложенности). ) А также делать классические, обычные миссии без поднимающихся флагов. Потом, когда станет понятно, что такое триггеры, условия триггеров, события, зоны и т.д. можно приступить к изучению всего этого в миссиях разработчиков.
Модераторы темы • MilovichJohn Doe
Для того, чтобы отвечать в темах на форуме необходимо войти на сайт или зарегистрироваться.