RSS

Вопросы и ответы по созданию миссий в редакторе игр серии "В тылу врага"

Сообщений в теме: 128
+2
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
В этой теме можно задавать вопросы по созданию миссий в редакторе.

Задавать вопросы в теме «Общий FAQ по оф. редактору карт „В тылу врага 2“» не рекомендуется во избежание ее засорения. Она предназначена только для ответов на самые часто-задаваемые вопросы. При ее засорении сотнями вопросов и ответов искать в ней что-либо новичкам будет очень трудно.

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

Формулируйте вопрос как можно понятнее — так вам ответят быстрее.
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Ответ на вопрос http://cf-team.ru/forum/findpost/652
Цитата: [Zs6]smoker
Расскажите как сделать такие несложные (я думаю что несложные) штуки:
1. На карте пустить колонну из 4-5 танков, чтобы они проехали по заданному маршруту в режиме с разрешением волного перемещения и с открытой стрельбой по врагам
2. добавить патрули на БТР,
3. Случайным образом на «базе» игрока появлялись машины и бтр с набора, или инвентарь в ящиках — сделать несколько наборов и их спавнить там.
хочу несколько миссий для себя усложнить, если уже гдето на это написаны ответы то покажите пожалуйста)

Чтобы рассказать — надо много писать и делать много скриншотов.
Расскажу пока про п.3.

Дано:
Имеется набор из нескольких танков\ машин\ БТР с экипажами и пассажирами\десантом на броне. Вы создали их в редакторе в режиме редактирования миссии (клавиша F3 на клавиатуре), расставили на карте в нужном месте, посадили в них и на них людей.

Один из вариантов решения задачи:

Чтобы спавнить машины\БТР\танки, в нужном месте или в нужной точке на карте, т.е., для того, чтобы они по команде появлялись в нужном вам месте, сделайте так:

1). Выделите все юниты из вашего набора машин\танков\БТР и присвойте им тэг hidden («спрятан», «неактивен»).
Для этого после выделения юнитов нажмите клавишу W, выберите «Tags...» в появившемся меню (или нажмите клавишу 6) и введите тег hidden в появившемся окошке, нажмите Add («добавить»). Таким же образом добавьте всем выделенным юнитам из набора, например, еще и тег «nabor1». Для завершения присвоения тегов нажмите ОК.

Теперь эти юниты после запуска миссии будут невидимыми (неактивными, hidden), а также будут иметь еще и общий тег nabor1. Для отображения или сокрытия присвоенных тегов над юнитами используйте сочетание клавиш Alt+T.

2). Поставьте на карте в том месте, где должны появлятся юниты из вашего набора, точку-вейпоинт (waypoint). Над вейпоинтом будет виден его номер.

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

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

4). Добавьте в триггере команду waypoint.

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

5). Укажите в поле waypoint команды waypoint номер точки-вейпоинта в которой при срабатывании триггера должны появлятся юниты.

6). Установите галочку clone («клонировать») в параметрах команды waypoint.

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

7). Установите в поле approach в параметрах команды waypoint значение teleport («мгновенный перенос», «телепортирование»).

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

8). Укажите на какие юниты будет распространяться команда waypoint:

— в поле who («кто», самое верхнее в окне с параметрами команды) установите actor («юнит»);

— в поле actors > source вместо standart («стандартные настройки») установите advanced («расширенные настройки»);

— кликните по actors правой клавишей мыши и выберите в появившемся меню пункт +group («группа признаков юнита»). В дереве параметров actors появится новый параметр group и параметры select, include, exclude («основные признаки», «дополнительные признаки», «исключающие признаки»);

— кликните по select правой клавишей мыши, выберите tag, укажите общий тег юнитов из вашего набора (в нашем случае — nabor1) в поле tag;

Так мы указали что команда waypoint будет распространятся на юниты с тегом nabor1.

Теперь:

— снова кликните правой клавишей на actors и выберите в появившемся меню пункт "+amount" («количество»).
В дереве actors появится новый параметр amount («количество»).

— в поле параметра amount укажите сколько юнитов из набора должно появляться на карте при срабатывании триггера. В нашем случае должно быть amount=1. Т.е. должен появляться 1 юнит.

Если будет указано amount=0, то в этом случае на карте будут одновременно и кучей появляться все юниты из набора. Нам такая свалка не нужна.

— опять кликните правой клавишей на actors и выберите в появившемся меню пункт "+sort" («сортировка»).
В дереве actors появится новый параметр sort («сортировка»).

— в поле sort установите shuffle («случайно»).

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

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



Триггер готов. Для его проверки можно запустить миссию в редакторе.
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Цитата: John Doe
Ответ на вопрос http://cf-team.ru/forum/findpost/652
Цитата: [Zs6]smoker
Расскажите как сделать такие несложные (я думаю что несложные) штуки:
1. На карте пустить колонну из 4-5 танков, чтобы они проехали по заданному маршруту в режиме с разрешением волного перемещения и с открытой стрельбой по врагам
2. добавить патрули на БТР,
3. Случайным образом на «базе» игрока появлялись машины и бтр с набора, или инвентарь в ящиках — сделать несколько наборов и их спавнить там.
хочу несколько миссий для себя усложнить, если уже гдето на это написаны ответы то покажите пожалуйста)


Все это в редакторе делается за минуту. )) А расписывать приходится час.

Команда waypoint предназначена для работы только с юнитами типа машин, самолетов, кораблей, танков, БТР, пушек, пулеметов, минометов и т.п.

Для спавна в нужную точку других сущностей игры (большинства ящиков, деревьев, кустов, конструкций, предметов антуража и т.п.) используется команда placement.
Репутация: -2
Рейтинг: 34
Кол-во тем: 0
Сообщения: 158
Вопросы задавать здесь? Если да то круто!

Вот вопрос: Сделал я самолету взлет, хочу что бы он атаковал (у вражеского юнита свой таг, и триггер вроде как air atack) но не получается сделать атаку… Как её сделать?
(Это мне поможет доделать карту… Ну такая для замеса в редакторе… Ну и конечно пригодится для других миссий)
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Цитата: shprottt
Вопросы задавать здесь? Если да то круто!

Вот вопрос: Сделал я самолету взлет, хочу что бы он атаковал (у вражеского юнита свой таг, и триггер вроде как air atack) но не получается сделать атаку… Как её сделать?
(Это мне поможет доделать карту… Ну такая для замеса в редакторе… Ну и конечно пригодится для других миссий)


Один из вариантов атаки самолетом заданной цели


Итак, сначала надо:

1). Перейти в редакторе в режим редактирования миссии (клавиша F3).

2). Создать самолет, — например, ИЛ-2, — поставить его на карте, посадить в него экипаж. Тут важно, чтобы экипаж был полным. Иначе может так получится, что летать он будет, а стрелять — нет. )

3). Присвоить самолету тег. Например, il2.

4). Создать точку-вейпоинт, в которую должен возвращаться самолет после атаки. В моем примере это точка с номером «1».

5). Содать и расположить в любом месте на карте объект типа missionwp (его можно найти в списке объектов в разделе service). Затем присвоить этому объекту missionwp свой тег — для него я придумал тег ziel_for_il2. Объект missionwp виден только в редакторе и не виден во время игры.

В принципе можно обойтись и без объекта missionwp, играющего роль цели для атаки самолетом. Подробнее я скажу об этом ниже.



Теперь создаем триггеры атаки самолета. Для этого нам понадобится не один, а несколько триггеров. Зато они простые до невозможности. В моем примере это 3 триггера:



  • il2_attack/01-start — триггер взлета самолета с земли. Поскольку ты говорил, что знаешь как делать триггер взлета, я не буду его дальше расписывать.

  • il2_attack/02-attack — триггер собственно атаки указанной цели.

  • il2_attack/03-go_back — триггер возвращения самолета после атаки в определенную точку. Например, это может быть первая точка траектории посадки самолета на аэродром. Посадку самолета на землю я тоже не буду рассматривать.


Если триггера взлета самолета нет, то для проверки работы остальных триггеров самолет можно просто предварительно «подвесить» над землей. Для этого необходимо указать для самолета параметры chassis > scurrent=airborne, а также высоты altitude и target_altitude:



Рассмотрим теперь второй триггер — il2_attack/02-attack (триггер атаки):



В нем используем команду placement, с помощью которой мы помещаем созданный нами объект-цель с тегом ziel_for_il2 в центр юнита, который должен быть атакован самолетом. В моем примере это танк с тегом pz3. Естественно, для проверки работы триггеров такой танк должен быть предварительно создан и помещен где-нибудь на карте.

Создаем в редакторе самолет с тегом il2 и объект missionwp с тегом ziel_for_il2

После команды placement создаем команду air_attack. С ее помощью мы указываем нашему самолету с тегом il2 цель атаки — объект с тегом ziel_for_il2. А также прочие параметры атаки.



Как я уже говорил можно обойтись и без объекта missionwp. В этом случае в триггере будет не нужна и команда placement. Тогда вместе тега ziel_for_il2 в команде air_attack нужно указать непосредственно тег атакуемого юнита — в нашем случае тег pz3.

Условие срабатывания триггера атаки я не задал, поскольку оно зависит от первого триггера взлета самолета с земли. Раз условия нет — значит триггер атаки в таком виде будет срабатывать сразу после запуска миссии. Для его тестирования этого достаточно.

Третий триггер il2_attack/02-go_back (триггер возвращения самолета после атаки):

Замечание: Если триггера возвращения самолета не будет, то самолет после атаки, пролетев некоторое расстояние, просто мгновенно исчезнет. Что мало похоже на реальность.



В качестве условия срабатывания триггера возвращения используем условие near («близость»).



По этому условию триггер возвращения должен сработать как только самолет с тегом il2 окажется на расстоянии 10 метров от объекта с тегом ziel_for_il2. Напоминаю, что в предыдущем триггере атаки мы поместили этот объект-цель в центр атакуемого юнита! В нашем случае самолет после атаки автоматически пролетит над целью и таким образом обязательно окажется на указанном расстоянии (10 метров) от цели.

Естественно, в том случае, если мы перед этим отказываемся от использования объекта missionwp с тегом ziel_for_il2 в параметрах команды нужно указать тег самого атакуемого объекта — pz3.

В триггере возвращения мы используем команду waypoint:



В параметрах этой команды мы указываем, что наш самолет с тегом il2 после выполнения условия срабатывания триггера должен лететь в точку-вейпоинт с номером «1».

Все. Теперь можно запускать миссию с нашими триггерами атаки самолета и проверять их работу.
Репутация: -2
Рейтинг: 34
Кол-во тем: 0
Сообщения: 158
Вроде простое действие: Атака наземных целей самолетом, а мудрёж какая! Спасибо!
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Цитата: shprottt
Вроде простое действие: Атака наземных целей самолетом, а мудрёж какая! Спасибо!

На самом деле все делается гораздо проще и быстрее, чем кажется после страшного описания. Атаку самолета, в частности, можно сделать минут за 5.

Конечно, хотелось бы еще попроще и более толково. Но… Гениальный юзабилити-аналитик и проектировщик интерфейсов гораздо более редкий зверь, чем гениальный программист.

Это как с 3ds MAXом. При первом взгляде его интерфейс кажется неимоверно сложным и непонятным абсолютно. Но если переломить себя )), то уже через несколько сосредоточенный и напряженных занятий приходит общее понимание логики работы с программой и становится гораздо легче.
Репутация: 0
Рейтинг: 1
Кол-во тем: 2
Сообщения: 7
Здраствуйте! Суперские консультации от John Doe, все более чем понятно!
У меня есть тоже вопрос, может он слишком сложный
Хочу немного модернизировать сингловые миссии в Ш2, добавить туда случайных элементов.
Что хочу: чтобы при попадании ряда юнитов игрока на нужные зоны приезжало подкрепление и каждый раз случайное.
Как это можно сделать??
Что я понимаю — нужно создать группы войск, которые мне нужны и скрыть их тегом hidden.
пусть это будет несколько легких или средних танков, БТР с пехотой и тяжелый танк.
Потом создать условие, что наличии пехоты игрока больше 6 человек в зоне такой-то может приехать случайная группа войск.
Как это реализовать?
Репутация: -2
Рейтинг: 34
Кол-во тем: 0
Сообщения: 158
Nurgi2000 — Это ОЧЕНЬ мудрёно, для такого проще новою тему создать «Как делать случайные подкрепления» отвечать на твой вопрос это как написать небольшую книжку…
Репутация: 0
Рейтинг: 1
Кол-во тем: 2
Сообщения: 7
Цитата: shprottt
Nurgi2000 — Это ОЧЕНЬ мудрёно, для такого проще новою тему создать «Как делать случайные подкрепления» отвечать на твой вопрос это как написать небольшую книжку…

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

Тогда упрощу вопрос

Нужно создание подкрепа врага, которые активируются, если в зону А на мосту попадает более 5 пехотинцев игрока.

Набор подкреплений:
Ханомаг с пехами.
Средний танк Pz-III с пехами на броне.
Два легких PZ-II

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

  • Как настроить наборы

  • Каким скриптом запустить рэндом.


ну и совсем классно если кто подскажет про вэйпойнты, по каким подкреп поедет по карте
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Дополнение к посту Один из вариантов атаки самолетом заданной цели

Если самолет при срабатывании триггера ни в какую лететь и атаковать не хочет (бывает, что редактор или игра дурит), то в этом случае для гарантии нужно добавить в триггере il2_attack/02-attack сразу за командой placement еще одну команду action > move («движение»). Эта команду можно найти в разделе команд actor. Параметры команды action > move выглядят вот так:



С помощью этой команды мы приказываем самолету с тегом il2 двигаться к объекту с тегом ziel_for_il2.

Как и прежде, в том случае, если для организации атаки самолетом целе не используется объект missionwp с тегом ziel_for_il2 — в параметрах команды action > move вместо тега ziel_for_il2 нужно использовать тег pz3, т.е. тег атакуемого юнита-танка.
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268


Нужно создание подкрепа врага, которые активируются, если в зону А на мосту попадает более 5 пехотинцев игрока.

Набор подкреплений:
Ханомаг с пехами.
Средний танк Pz-III с пехами на броне.
Два легких PZ-II

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

  • Как настроить наборы

  • Каким скриптом запустить рэндом.


ну и совсем классно если кто подскажет про вэйпойнты, по каким подкреп поедет по карте


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

Вызов случайного подкрепления врага при появлении в определенной зоне юнитов игрока. Часть 1.


1). Перейдите в редакторе в режим редактирования миссии (клавиша F3).

2). Создайте контрольную зону, при появлении в которой юнитов игрока будет вызываться вражеское подкрепление.

Для создания зоны:

а). Перейдите в режим редактирования зон.
Для перехода в режим редактирования зон можно использовать клавишу «5» основной клавиатуры компа или кликнуть по пиктограмме «Зеленый кружок» в левой верхней части панели параметров редактора.

б). Кликните либо по кнопке New circle, если требуется создать зону в виде окружности, либо по кнопке New poly, если требуется создать прямоугольную (многоугольную) зону.

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

Для удаления зоны выделите ее название в списке зон — граница выделенной зоны становится ярко-зеленой — и кликните по кнопке Delete, расположенной рядом с кнопками для создания зон.

г). Задайте размер и местоположение зоны.
Для задания местоположения выделите ее название в списке зон, затем выделите центр зоны и перетащите его в нужное место на карте.

Для задания размера круглой зоны выделите ее название в списке зон, а затем укажите ее радиус в поле Radius, расположенном под списком зон.

Для изменения размеров и формы прямоугольной\многоугольной зоны выделите название зоны в списке зон и перетащите в нужные места угловые маркеры зоны. Для добавления вершин прямоугольной\многоугольной зоны выделите выбранное ребро зоны, а затем кликните по кнопке Add («Добавить»). Для удаления вершины многоугольной зоны выделите ее и кликните по кнопке Delete («Удалить»), расположенной рядом с кнопкой Add.

Многоугольная зона (зона у которой 5 или более углов) обязательно должна иметь вид выпуклого многоугольника! Геометрию в школе проходили? Если многоугольник зоны не выпуклый, то граница зоны становится красной. Для исправления этого нужно переместить один или несколько углов зоны наружу так, чтобы граница зоны снова стала зеленой.

Для своего триггера я создал пятиугольную зону с названием zone1:



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

Для создания пути:

а). Перейдите в режим редактирования путей и вейпоинтов.
Для перехода в этот режим можно использовать клавишу «4» основной клавиатуры компа или кликнуть по пиктограмме «Флажок» в левой верхней части панели параметров редактора.

б). Создайте и последовательно расположите цепочкой по маршруту движения подкрепления точки-вейпоинты и последовательно соедините их в виде пути.
Для создания вейпоинта кликните по кнопке Add («Добавить»). Для удаления вейпоинта выделите его и кликните кнопку Delete. Для соединения вейпоинтов выделите два или несколько последовательно расположенных вейпоинтов и кликните по кнопке Link («Связать»). Обратите внимание, важно, направление движения юнитов вдоль пути, образованного соединенными вейпоинтами, отображается в виде стрелок на концах соединительных линий между вейпоинтами. Все стрелки пути должны указывать в одном направлении.
Для удаления связи между вейпоинтами выделите их, а затем кликните по кнопке Unlink («Разорвать связь»).

4). Создайте юниты, которые будут играть роль вражеского подкрепления и разместите их на карте в любом удобном месте. Задайте для юнитов подкрепления теги для их вызова в триггере, а также общий тег hidden.

В качестве подкреплений в моем примере будут использоваться пехотинцы, броневик SdKfz 222 и легкий танк Pz1 Ausf. B с десантом на броне. В качестве игрока в параметрах этих юнитов я указал Player1.



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

Для всех пехотинцев я задал общий тег peh. Для броневика — btr. А для танка с десантом — pz1.
Тег hidden задается юнитам для того, чтобы они после запуска миссии оставались невидимыми (были неактивны) до момента срабатывания триггера вызова подкрепления врага.

5). Создайте триггер появления вражеского подкрепления.
В своем примере я назвал его enemy_reinf. В завершенном виде он выглядит следующим образом:



Теперь подробно распишу содержимое и порядок создания триггера:

6). Задайте условие срабатывания (выполнения) триггера.
В качестве условия (Condition) триггера используйте условие Entity («объект»). Параметры этого условия выглядят следующим образом:



Согласно этому условию и его параметрам наш триггер сработает как только в зоне с названием zone1 появится более трех живых (не убитых) юнитов-людей, являющихся врагами для Player1 (красного). Причем, эти юниты, появившиеся в зоне, должны быть активны (видимы). Не важно под управлением кого и какого Player'а они будут находиться — это могут быть и юниты игрока, проходящего миссию в режиме одиночного прохождения, и юниты его союзников. Например, юниты игроков, совместно проходящих миссию в кооперативном режиме.
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268

Вызов случайного подкрепления врага при появлении в определенной зоне юнитов игрока. Часть 2.


Для того, чтобы при срабатывании триггера появлялись разные подкрепления используем команду switch/ («Переключатель»). Ее можно найти разделе команд generic. Команда switch служит для задания разнообразных критериев исполнения альтернативных цепочек последующих команд. Т.е. это некий командный «разветвитель» — если исполняется такое-то условие, то далее выполняются такие-то команды, если же выполняется такое-то условие, то далее исполняются другие команды и т.д. Итак:

7). Добавьте в триггер команду switch.

8). Кликните по заголовку switch правой клавишей мыши и выберите в появившемся меню пункт +/..default.
В команде switch появится параметр default — условие по-умолчанию.

9). Кликните по заголовку условия default правой клавишей мыши, выберите в появившемся меню пункт Add inside («Добавить внутри») и добавьте к условию команду waypoint.



10). Задайте для команды waypoint условия default следующие параметры:



Теперь расскажу, что это мы тут понаделали в пунктах 8-10. Мы определили, что при выполнении команды switch в том случае, если не будут выполнены никакие другие специальные условия (которые мы напишем далее), т.е. по-умолчанию после выполнения условия срабатывания триггера будет выполнятся команда waypoint из п. 10 и все следующие за ней команды условия default.

При выполнении этой команды waypoint в точке-вейпоинте с номером 2 появятся точные копии наших скрытых юнитов-пехотинцев с тегами peh и побегут по заданному маршруту, началом которого является точка-вейпоинт с номером 2. Галочка в параметре make_squad говорит о том, что после появления эти юниты будут объединены в группу (сквад). Объединение в группу служит, в основном, для того, чтобы пехотинцы не бежали плотной кучей, и чтобы поддерживали друг друга при обнаружении врага изображая некое отрядное взаимодействие.

11). Кликните по заголовку условия default правой клавишей мыши, выберите в появившемся меню пункт Add inside («Добавить внутри») и добавьте к условию команду actor_state.

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

Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268

Вызов случайного подкрепления врага при появлении в определенной зоне юнитов игрока. Часть 3.


Теперь переходим к самому интересному.

12). Кликните по заголовку команды switch правой клавишей мыши, выберите в появившемся меню пункт +/..case («Специальное условие»\«Вариант»).

11). С помощью двойного клика по заголовку условия case команды switch откройте окно параметров условия (Properties for «case»).



12). Установите значение rand («Вероятность») в поле type («Тип условия») окна параметров условия.

13). Установите значение 0,5 в поле value («Величина») окна параметров условия.

C помощью задания данного специального условия case мы определили, что при срабатывании триггера и выполнения команды switch с 50% вероятностью будут выполнятся команды, которые мы напишем для условия case чуть ниже по тексту. Т.е. при двух случаях срабатывания триггера цепочка программ этого условия case будет случайно выполнена только один раз, при 4 случаях срабатывания — 2 раза и т.д.

14). Кликните по заголовку условия case правой клавишей мыши, выберите в появившемся меню пункт Add inside («Добавить внутри»), добавьте к условию команду waypoint и задайте для этой команды waypoint следующие параметры:

Команда switch. Добавляем команду waypoint в case

15). Кликните по заголовку условия case правой клавишей мыши, выберите в появившемся меню пункт Add inside («Добавить внутри»), добавьте к условию команду actor_state и задайте для этой команды actor_state следующие параметры:



16). Кликните по заголовку условия case правой клавишей мыши, выберите в появившемся меню пункт Add inside («Добавить внутри»), добавьте к условию команду delay («Задержка») и задайте для этой команды параметр time=3.

17). Кликните по заголовку условия case правой клавишей мыши, выберите в появившемся меню пункт Add inside («Добавить внутри»), добавьте к условию команду waypoint и задайте для этой команды waypoint следующие параметры:



18). Кликните по заголовку условия case правой клавишей мыши, выберите в появившемся меню пункт Add inside («Добавить внутри»), добавьте к условию команду actor_state и задайте для этой команды actor_state следующие параметры:



В итоге при срабатывании триггера с 50% вероятностью в качестве подкрепления будет появляться и ехать по заданному маршруту сначала броневик SdKfz 222, а затем, через 3 секунды после броневика — еще и отряд пехоты.
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268

Вызов случайного подкрепления врага при появлении в определенной зоне юнитов игрока. Часть 4.



И, наконец, создаем еще одно, третье для команды switch и последнее условие case. Подробно разбирать его создание не буду — оно полностью аналогично порядку создания предыдущего условия case.

Для него мы также задаем type=rand, задаем value=0.51. Но это условие будет содержать только одну команду waypoint и одну команду actor_state. В параметрах обоих этих команд вместо тега btr, необходимо указать тег pz1, присвоенный нами ранее легкому танку с десантом на броне.

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

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

Для увеличения\уменьшения вероятности появления какого-либо типа подкрепления необходимо увеличить\уменьшить значение value параметра rand соответствующего условия case. Однако слишком сильно увеличивать\уменьшать это значение не рекомендуется. В общем случае оно может иметь значение от 0 до 1. Однако, например, при значении value=1 юнит будет появляться со 100% вероятностью. При этом другие типы подкреплений могут, практически, вообще никогда не появляться.

На этом я заканчиваю свою попытку описания триггера. И надеюсь что стало понятно, хоть что-нибудь. )

Для тестирования и отладки триггера в редакторе без постоянного перезапуска миссии рекомендую установить галочку Autoreset.



После установки галочки, триггер должен срабатывать при каждом событии увеличения количества юнитов-людей, враждебных Player1, в зоне zone1 до 4 и более штук. Таким образом перемещая и удаляя из зоны после запуска миссии соответствующие юниты можно заставлять срабатывать триггер бесконечное число раз, пока не надоест.
Репутация: 3
Рейтинг: 2
Кол-во тем: 6
Сообщения: 8
Мне бы интересно было узнать, как можно реализовать такой скрипт: я сделал уже задание, по которому если солдаты с моим тэгом берут немецкий кейс, оно выполнено. Мне нужно, чтобы после взятия кейса, через некоторое время (delay) произошел диалог и появился таймер, говорящий о том, что скоро пройдет немецкая колонна.

Проще говоря, представим ситуацию. Американцы захватили дом, убили офицера, на столе лежал кейс, из которого они узнали что в такое-то время проедет немецкая колонна. Им нужно остановить ее любой ценой.
Репутация: 0
Рейтинг: 1
Кол-во тем: 2
Сообщения: 7
Цитата: John Doe, АФИГЕТЬ! Спасибо огромное, попробую на практике сделать задуманное )))я думал меня сейчас пошлют читать какойнибудь мануал из старых))))
Репутация: 0
Рейтинг: 2
Кол-во тем: 0
Сообщения: 2
Цитата: Milovich
Мне бы интересно было узнать, как можно реализовать такой скрипт: я сделал уже задание, по которому если солдаты с моим тэгом берут немецкий кейс, оно выполнено. Мне нужно, чтобы после взятия кейса, через некоторое время (delay) произошел диалог и появился таймер, говорящий о том, что скоро пройдет немецкая колонна.

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


Думаю, здесь я смогу помочь. Итак, делаем триггер для взятия кейса и появления таймера. Создаем триггер, сначала открываем condition, там inventory в selector tag — таг американцев where — all holders ну или right hand, item — название этого кейса, по-английски. Ну там secret_doc_bag или что-то подобное. Как он называется можно узнать при нажатии W — Inventory и там его найти. Теперь переходим к командам. Первая — это delay, сколько Вы там решили задержку поставить. затем диалог с помощью команд talk и delay. В talk в selector указываем таг говорящего и text — там пишем текст, открыв текстовый редактор, ну там на три точки где нажимаешь и открывается такая фигня для текста. Там надо написать текст, затем нажать enter и save the changes. После delay команда timer, ну там думаю понятно все, время указывается и title, там «До приезда немецкой колонны». Затем ставится delay такой же как и в таймере. Ну и затем просто отправить эту колонну по нужным вейпойнтам.
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 11
1. Как скриптом заставить солдат прятаться в укрытии?
2. Почему когда идёт атака на врага, мои союзники начинают ложиться на землю и лежат пока их не выкосят? т.е они не атакуют, хотя режим «Отступать» отключен?
3. Как сделать скрипт на захват зоны/Флага и чтобы еще когда мои солдаты захватили этот флаг — нпс пытались отбить его и захватить обратно?
4. Бесконечны ли патроны у нпс? А то у меня огромная сборка арты и будет обидно если ззакончатся снаряды… Резко упростит миссию.
Вроде всё)
Заранее спасибо)
Репутация: 9
Рейтинг: 57
Кол-во тем: 14
Сообщения: 268
Цитата: CaTBaT
1. Как скриптом заставить солдат прятаться в укрытии?
2. Почему когда идёт атака на врага, мои союзники начинают ложиться на землю и лежат пока их не выкосят? т.е они не атакуют, хотя режим «Отступать» отключен?
3. Как сделать скрипт на захват зоны/Флага и чтобы еще когда мои солдаты захватили этот флаг — нпс пытались отбить его и захватить обратно?
4. Бесконечны ли патроны у нпс? А то у меня огромная сборка арты и будет обидно если ззакончатся снаряды… Резко упростит миссию.
Вроде всё)
Заранее спасибо)

1). Чтобы прятались нужно сначала организовать эти укрытия и присвоить им теги\названия. Потом командой actor > actor_to_cover cкомандовать юнитам занять укрытия\позиции с определенными именами. В принципе, можно даже создать «укрытие» в любой точке карты. Хоть на голом поле. Для созданного самостоятельно укрытия в голом поле можно указать его тип, в соответствии с которым солдат будет стоять, лежать или находится в позе «стрельба с колена».

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

2). Ложатся и не наступают, но не отступают, заметтьте! ) Значит огонь противника слишком силен, а мозги у них не отключены. )) Наступательное рвение и склонность к отступлению регулируется цифрами, соответственно, в полях advance_ratio (коэффециент продвижения вперед) и retreat_ratio (коэффециент отступления) в свойствах юнитов-солдат. По умолчанию в обоих этих полях стоит цифра 2.

Если в advance_ratio поставить, допустим, 0.1, а в retreat_ratio — 10, то солдаты при наступлении под огнем противника будут заметно более отмороженными и будут, в основном бежать вперед, выполняя команду триггера. Но при этом и меньше маневрировать и стрелять.
Если у солдат в свойствах указать еще и ai_move (контроль поведения «искусственным интеллектом») = disable (отключено), то они будут вообще вести себя как роботы. Будут выполнять команду триггера не смотря ни на что. Например, будут бежать куда указано, не стреляя, не укрываясь, не ложась и не маневрируя.

При значении 2 в обоих полях они ведут себя более компромиссно — юлят, отстреливаются, отползают, наползают и т.п. Если огонь слишком силен — залегают и т.д.

Если сделать наоборот — в advance_ratio поставить цифру побольше, а в retreat_ratio — поменьше, то в этом случае юниты-солдаты, наоборот, будут больше трусить, будут отстреливаться, но в основном стараясь отползти\отбежать от противника.

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


4). Если у юнита в свойствах (Properties) указан для brain > control значение AI (по умолчанию стоит именно такое), то патроны, снаряды, бомбы, минометные мины, огнесмесь в огнемете и топливо у юнита бесконечны. Ручные гранаты конечны. )

Если для control указано user — все расходуется. И не важно кто контролирует этот юнит — живой игрок или «искусственный интеллект» (AI) (компьютер).

Все довольно просто, кроме п.3 — для него одного триггера будет мало, нужно несколько. Чуть позже отвечу поподробнее на первый и третий вопрос. Поспать надо. )
Репутация: 0
Рейтинг: 0
Кол-во тем: 0
Сообщения: 11
Спасибо большое) Буду ждать ответа))))
Модераторы темы • MilovichJohn Doe
← Предыдущая Следующая → 1 2 3 4 Последняя
Показаны 1-20 из 128
Для того, чтобы отвечать в темах на форуме необходимо войти на сайт или зарегистрироваться.