Добро пожаловать Гость, Вы в разделе: Вход

Энциклопедия по редактору Arma, Arma 2, Arma 3 и Operation Flashpoint

VKRSSRSS
На главную

Навигация


Искать в энциклопедии:
»


Важная информация




Сайт управляется

Учебник по написанию скриптов
Изображение



Учебник по созданию роликов


Изображение



Наши партнеры



ArmA 3, ArmA 2 news Russian community, SARMAT community

Практика и теория по игровому редактору  Arma


Я решил написать этот учебник для тех, кто решил разобраться в редакторе Arma, но так и не смог найти адекватную информацию по простым, как показалась бы, моментам. Я сталкивался с таким не раз. Уже с появлением Operation Flashpoint я начал проявлять к редактору повышенный интерес, да только вот кроме как расставить что-то на карте у меня больше ничего и не получалось. Доступ к интернету тогда был ограничен, поэтому приходилось разбираться во всем самому. Далеко я так и не ушел. 
Прошло достаточно много лет, мой интерес к серии угас ( в Arma 1 я даже не играл), но с выходом Arma 2 я вновь решил вспомнить былое и первое, что я запустил был редактор. Помню, разработка первой простой миссии заняла у меня очень много времени, я днями и ночами сидел на различных форумах в поисках необходимой информации.
Боюсь, что мое отступление слишком затянулось. Я представляю вам учебник для новичков и уже опытных редакторов, базированный на моей кампании "Дорогами войны".



Глава 1: Основы

1.1 Игровой редактор

Для того, чтобы запустить редактор - запустите игру Arma 2  - Одиночный режим - Редактор.

Вид игрового редактора

Клавиши быстрого вызова
ЮнитыF1
ГруппыF3
ТриггерыF3
Контрольный точкиF4
СинхронизацияF5
МаркерыF6
МодулиF7
Новая миссияR
ЗагрузитьCtrl + O
Сохранить какS
СохранитьCtrl + S
СовместитьM
Показать текстурыT
PreviewПредосмотр
EscapeВыход
EnterПредосмотр

1.1.1 Режимы миссий

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

  • Миссия (Mission) - это стандартный режим и единственная неотъемлемая составляющая часть всего задания.. В нем задается интерактивный элемент миссии.
  • Интро (Intro) проигрывается до экрана с брифингом.
  • Оутро-Победа (Outro - Win) проигрывается после экрана дебрифинга в случае активации одной из шести победных концовок в триггере.
  • Оутро-Поражение (Outro - Loose) проигрывается после экрана дебрифинга в случае активации концовки "Поражение" в триггере.

1.1.2 Юниты

Меню редактирования юнита
Режим редактирования юнита (F1)  используется для добавления отдельных боевых единиц, транспортных средств и объектов на игровую карту. Чтобы сделать это, необходимо дважды кликнуть на любом свободном месте карты, где вы хотите разместить юнита. Нам откроется меню редактирования юнита. Можно также открыть меню уже созданного юнита лишь два раза щелкнув по нему. 

В представленном примере, мы размещпем стрелка стороны Россия ранга Рядовой, выбранного в качестве игрока и  находящегося в строю. Что это значит:
Сторона: Тут вы выбираете сторону вашего юнита, в данном случае Красные. 
Фракция: Выбор той армии, к которой будет принадлежить ваш юнит.
Класс: Выбираете класс вашего юнита: Люди, Воздух, Бронетехника, Машины, Поддержка, Статичный и т.д.
Контроль: Используется для установления над юнитом контроля игроком или его выбора как "Играет"
Ранг: Используется для установления иерархии в вашем отряде. Т.е если погибает капитан, то командование принимат на себя лейтенант и т.д.
Отряд: Тут вы выбираете конкретную боевую единица. В примере: Стрелок.
Особенности: Юнит может находиться "В строю", "В воздухе", либо  иметь статус "Нет" (отсутствие особых функций)
Поле инициализации:Это поле предназначено для введения стандартных параметров, которые вступает в силу с началом миссии.
Название: дает конкретному юниту имя. Имя может быть использовано в скриптах или кодах.
Навык: Позволяет регулировать уровень навыка юнита. Варьируется от 0.2 ( глупый, невнимательный и тормознутый) до 1.0 (ветеран войны)
Здоровье/Броня, Горючее, Боеприпасы:Эти ползунки используются для установления повреждения наносимое боевой единице, уровня топлива и боеприпасов в начале миссии. 
Азимут:Необходим для определения направления в котором будет направлен ваш юнит. Измеряется в градусах (0 = Север).

Юнитов также можно вращать щелкнув и удерживая ЛКМ и  L. SHIFT

Условие присутствия: Здесь указывается условие при выполнении которого появляется юнит.
Радиус размещения: Радиус в котором появится юнит. Позиция будет выбрана чисто случайно.




1.1.3 Группы


Меню размещения группы
Режим редактирования групп (F2) имеет несколько назначений. Первоначальное  - объединить ранее расставленных  юнитов в одну группу. Объединение юнитов в одно боевое подразделение значительно улучшит их боевые навыки. Любой юнит, которой не имеет видимой связи с другим находится в собственной группе. Размещение на карте одного юнита рядом с другим автоматически объединит их в группы. Для того, чтобы объединить текущего юнита с другим в группу, необходимо щелкнуть и удерживать левую кнопку мыши на юните, затем протащить линию к другому юниту. Отпустите кнопку, теперь юнит в другой группе. Удаление юнита из группы проиводится удержанием ЛКМ на юните, далее тянем на любое свободное место карты и отпускаем. Юнит более высокого ранга в группе автоматически становится ее лидером.
Двойной щелчок на карте откроет меню размещения уже готовых по умолчанию боевых подразделений.

Сторона: Аналогично с меню редактирования юнита (см. пункт 1.1.2)
Фракция: Аналогично с меню редактирования юнита (см. пункт 1.1.2)
Тип: Выбираем тип нашей группы (Спешенные, Мотострелки, Бронетехника, Авиация).
Название: Выбираем конкретное подразделение и соотвествующих юнитов.
Азимут: Аналогично с меню редактирования юнита (см. пункт 1.1.2)






1.1.4 Триггеры

Меню триггера

Триггер (F3) - это абстрактный игровой элемент, который выполняет код поля "По Активации" только если условие истино. При правильном использовании, триггеры могут добавить в вашу миссию динамики и реалистичности. К примеру,  при помощи триггера вы можете поднять тревогу и вызвать подкрепление, когда игрока заметили рядом со вражеской базой.

Триггеры можно соединить с другим объектом при помощи режима группы (F2), при этом только этот объект или группа может активировать триггер. Триггеры полифункциональны, их размещение и размеры не всегда являются частью его условием. Каждое условие триггера проверяется приблизительно два раза в секунду на всем протяжении миссии. Для того, чтобы разместит ьтриггер в вашей миссии, два раза щелкните ЛКМ на любом пустом месте карты. Появится меню триггера.

Ось X и Ось Y: Задает ширину и длинну триггера. Если хотите, чтобы получился круг, сделайте эти оси равными и выберите Эллипс. 
Угол: Угол триггера. Схож с азимутом в меню редактирования юнита.
Эллипс/Прямоугольник: задает форму триггера.
Однократно/Многократно: Сколько раз будет выпольняться триггер.
Активация: Условие для активации. Список доступных условий представлен чуть ниже.
Присутствует/Отсутствует: Абсолютный параметр условия.

Пример: Триггер с активацией Красные и условием Присутствует заработает сразу же при входе юнита данной стороны в зону триггера.

Обнаружен Синими/Красными/Независимыми/Гражданскими: Относительный параметр для условия.

Пример: Триггер с активацией Синие и условием Обнаружен Красными активируетс сразу же, когда юниты красной стороны обнаружат в данной зоне юнитов синей стороны. 

Отсчет/Перерыв: Выбирает тип активации триггера.
Отсчет: При соблюдении условий, триггер будет ожидать обозначенное количество времени до его активации.
Перерыв: Условия должны быть выполнены в течении определенного промежутка времени, прежде чем триггер активируется.
Тип: Здесь выбирается тип триггера. 
Имя/Текст: Строка имени имеет тоже назначение, что и в меню редактирования юнита. В строек текст, печатается отображаемый текст.
Условие: Здесь указывается условие для активации триггера.
По активации: Выполняет код при соблюдении условий триггера.
По деактивации: Тоже что и "По Активации", но выполняется только когда триггер деактивирован.
Эффекты: Позволяет выбрать эффект, выполняемый по активации триггера. Это может быть музыкальный трек, голос, звук 

Перечень типов активаций

Нет - Триггер по-прежнему активируется, когда условие возращает истину, однако в данном случае, условие всегда будет ложным.
Кто-угодно - Юнит любой стороны может активировать данный триггер, при соблюдении условия.
 Радио ... - Триггер будет активирован через радио команду доступную всем игрокам или тем, кто имеет радио. Активация подобных триггеров может быть ограничена при помощи команды setRadioMsg.

ОБРАТИТЕ ВНИМАНИЕ:  НА РАДИО-ТРИГГЕРЫ НЕ РАСПРОСТРАНЯЮТСЯ ШЕСТЬ ВЫШЕУПОМЯНУТЫХ УСЛОВИЙ, ОТСЧЕТ/ПЕРЕРЫВ ТАКЖЕ ЗДЕСЬ НЕ ИГРАЮТ РОЛИ.

Захвачено ... - Активируется, когда захватывающая сторона берет под контроль соотвествующую область (в данном случае эта область устанавливается самим триггером). Тип данного триггера совместим с параметрами Отсчет/Перерыв. В зависимости от типа юнитов, атакующая сторона может превосходить в числе (4:1), но при этом захват зоны не будет засчитан (допустим, враг имеет тяжелую технику).
Транспорт - Данный параметр появляется, только когда триггер  связан с юнитом, транспортным средством или объектом по средством F2 (см. группы).  Только синхронизованный с триггером элемент активирует триггер при соблюдении его условий.
Вся группа - Данный параметр появляется, только когда триггер  связан с юнитом. Выполняется, только при соблюдении условий триггера всей группой.
Командир группы - Данный параметр появляется, только когда триггер  связан с юнитом.Выполняется, только при соблюдении условий триггера командиром группы.
Любой член группы - Данный параметр появляется, только когда триггер  связан с юнитом. Выполняется, только при соблюдении условий триггера любом членом данной группы.

Перечень типов триггеров

Нет - Триггер не имеет дополнительных эффектов за исключением тех, что перечислены в поле "По активации". Данное условие устанавливается по умолчанию.
Защищается ... - Центр триггера принимается за охраняемую точку. Если триггер связан при помощи F2 c объектом, то триггер будет перемещен на изначальное положение этого объекта во время инициализации миссии. Подобные триггеры не активируются, они лишь задают охраняемые точки. Группа, у которой стоит  контрольная точка типа "Защищать" отправится к первой же доступной наиболее приоритетной точке.  Если же враг замечен любым бойцом охраняющей группы в любой точке карты, группа, которая охраняет менее значимую точку оставит данный пункт и пойдет в атаку.  Для получения дополнительной информации см. контрольные точки.
Переключатель - Переключатель необходим для прерывания группы цикла  выполнения контрольных точек. После синхронизации триггера с контрольной точкой,  его активация   сразу же поменяет текущий вейпоинт группы на следующую контрольную точку идущую после той, с которой был синхронизирован триггер. 
Конец # ... - Завершает миссию при выполнении условий. Существует 6 различных концовок, каждая из которых может иметь свой текст в дебрифинге. Разные концовки могут применяться для развлетвления сюжета в кампании.
Поражение - Активация данного триггера завершит миссию как проваленную. Обратите внимание, что это не тоже самое, что и смерть игрока. 


1.1.5 Контрольные точки

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

Выбрать тип - Тут вы выбирает тип контрольной точки. Перечень типов контрольных точек представлен ниже. 
Порядок маршрутных точек - Устанавливает порядок выполнения маршрутных точек.
Описание - Описание контрольной точки. Отображается под маршрутной точкой во время игры (если позволяет сложность).
Режим боя - Правила ведения боевых действий для юнитов.
Построение - Задает строй подразделения. 
Скорость - Скорость следования юнитов к маршрутной точке.


Ограниченная скорость - юнит будет двигаться медленно (прогуливаться). При нормальной скорости юнит будет бежать. При полной скорости юнит будет бежать изо всех сил.
Поведение - Устанавливает степень встревоженности юнита. Подробнее см. ниже.
Радиус размещения - Контрольная точка размещается случайным образом в заданном квадрате.
Радиус завершения - Радиус при котором контрольная точка завершается.
Позиция в доме -  Позволяет выбрать положение юнита в доме ( только для пехоты!). Данная опция появляется только при условии, если контрольная точка размещена на здании.
 ВНИМАНИЕ: ДАННАЯ ВОЗМОЖНОСТЬ РАБОТАЕТ НЕ СТАБИЛЬНО! 

Перерыв - Устанавливате сколько времени должно пройти при переключении на следующую маршрутную точку.
По активации  - Скриптовый код, который выполняется по достижению контрольной точки. 
Эффекты - См. триггеры.

Позиция в доме

Перечень типов маршрутных точек

Перемещение - Группа выдвинеться к обозначенной точке или объекту.
Уничтожить - будет эффективнее, если прикрепить этот тип к объекту или юниту. Группа сделает все возможное для уничтожения объекта на котором размещена маршрутная точка. Сторона цели не принимается во внимание.
Сесть - Эффект зависит от доступного свободного места, прикреплена ли точка к транспорту или к другому объекту. В каждом случае эффект будет не много другим. 
Найти и уничтожить - Не имеет значения размещена ли КТ на пустом месте карте, либо же над объектом. Если прикреплена к объекту, то останется на его наальной позиции. 
Присоединиться - Если прикреплен к юниту, группа выдвинеться к назначенной точке , присоединиться к юниту независимо от его стороны и ранга. 
Присоединиться и Возглавить - Аналогично с предыдущим типом, за исключением того, что группа возьмет командование над этим юнитом.
Выйти - Группа выдвинется к маршрутной точке, затем выйдет из транспорта. Вертолеты приземляться на ближайшей площадке "H" в радиусе 500 метров.
Зациклить - Сменит текущую контрольную точку на ближайшую.
Загрузить - Группа выдвинется к точке (объект, пространство), затем все пешие единицы сядут в транспорт. Сначала юниты занимают грузовое отделение, если нехватает места - то места экипажа.
Выгрузить - Группа выдвинется к точке (объект, пространство), затем те юниты, которые находятся в грузовом отсеке - выходят. экипаж остается на своих местах. 
Разгрузить транспорт - Группа выдвинется к точке (объект, пространство), где все перевозимые юниты другой команды будут высажены из транспорта.
Остановиться - Группа достигнет точки и будет стоять в ожидании. Только при помощи триггера "Переключатель" или скриптовойо команды можно сменить маршрутную точку. 
Часовой - Группа выдвинется к маршрутной точке и будет удерживать позицию до тех пор пока не установит сторону, к которой принадлежит враг.
Защищать - Данная маркировка работает в сочетании с триггером "Защищается ..."
Говорить - используется в сочетании с кнопкой Эффекты в нижней части меню Маршрутной точки. Командир группы проговорит конкретную фразу, сопроваждая ее движением губ.
По скрипту - Данный тип маршрутной точки выполнит скрипт, который находится в поле "Скрипт" в нижей части меню.
Поддержка - Группа выдвинется к точке, затем дождется момента, когда будет необходима поддержка другой группе, вызванная через командое меню "Вызвать поддержку"
Сесть в ближайшее  - Выдвинется в маршрутной точке, только если рядом с ней находится пустой транспорт, либо же союзная техника с свободными местами.
Разойдись - Симулирует поведение юнитов, находящихся при не исполнении своих обязанностей. Группа достигнет точки, затем разойдется. Маршрутная точка завершается при вступлении в контакт с противником.

Перечень типов поведения


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




1.1.6 Синхронизация

Триггер синхронизирован с контрольной точкой


Режим синхронизации (F5) применяется для выполнения различными группами своих предписаний по контрольным точкам одновременно и лишь при определенных обстоятельствах. Синхронизация на первый взгляд может смутить новичка, но это очень полезный и простой инструмент. Например, синхронизацию можно применить для сбора союзных сил, и только когда все в сборе - начинается общее наступление. Синхронизация может быть осуществлена между контрольными точками одной группы и любой контрольной точкой другой, либо же любым триггером.  Синхронизированная контрольная точка не завершится до тех пор пока все КТ с которыми она соединена не будут выполнены.

Для синхронизации вейпоинтов, просто щелкните и удерживайте ЛКМ а контрольной точке, передвиньте мышь к желаемой КТ/триггеру и отпустите кнопку. Чтобы удалить синхронизацию, щелкните  по триггеру или КТ и удерживая ЛКМ тяните линию к пустому месту. Обратите внимание, что  у элемента пропадут все синхронизации.










1.1.7 Маркеры

Режим маркеров (F6) - в основном используется для размещения на игровой карте визуальных иконок и отметки зон. Маркеры видны лишь при входе в соотвествующий режим редактирования, но ими по-прежнему можно оперировать и при других режимах.  Для этого, наведите курсор мащины на место размещение маркера и подсвятите его имя. Второе назначение маркеров - это определение начальной позиции любого объекта. Для этого необходимо создать групповую связь между объектов и маркером.  В начале миссии, объект будет размещен на месте одного из маркеров, с оторым он связан, либо на своей изначальной позиции, т.е выбор происходит случайно. Данная возможность позволяет создать элемент случайности в миссии. Чтобы создать маркер - необходимо сделать двойной щелчок ЛКМ на игровой карте.



1.1.8 Модули

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

1.1.9 Стандартные операции

Меню

  • Очистить - удаляет все элементы - юнитов, маркеры, триггеры. контрольные точки, любые настройки разведывательной информации (Intel). Будьте осторожны - это операция необратима.
  • Загрузить - позволяет загрузить ранее сохраненную миссию.
  • Сохранить как:
    • Пользователь миссии - данные миссии доступны только в редакторе при использовании соотвествующего игрового профиля.
    • Экспорт в одиночные/многопользовательские миссии - в ходе данной процедуры создается pbo файл текущей папки миссии в директории Mission или MPMissions/
    • Переслать по e-mail - создаст pbo файл текущей миссии и запустит ваш почтовый клиент, выбранный по умолчанию.
  • Сохранить - сохраняет все изменения, сделанные в текущей миссии.
  • Объединить - импортирует все данные карты из одной миссии в только что загруженную. Данные Разведки не сохраняются.
  • Учетные - любой ландшафтный объект имеет предписанный ID ( идентификатор), который можно использовать в скриптовом коде. Обычно, эти ID скрыты для удобства работы с картой. Данная кнопка включает/выключает отображение идентификаторов.  ID видимы только при сильном приближении.
  • Показать текстуры - выбор данной опции отобразит на карте цветные данные спутника, вместо привычной белый карты. Подобные данные предоставляют пользователю информацию о типе ландшафта, хотя данный метод и не очень информативен.
  • Предосмотр  - данная кнопка запустит просмотр миссии прямо через редактор и даст вам возможность оценить результаты ваших трудов. Кнопка доступна при размещении на карте игрока. При нажатии на кнопку " Предосмотр" с нажатым левым Shift отобразит брифинг и дебрифинг. Прошу обратить ваше внимание на тот факт, что некоторые аспекты сценария могут по разному проявлять себя в редакторе и в одиночной миссии. Поэтому важно проверить работоспособность миссии в одиночном режиме перед ее публикацией в массы.
  • Продолжить - после выхода из режима предосмотра, щелчок по " Продолжить" позволит продолжить миссию с прерванного момента. При этом, любые изменения сделанные в редакторе отображены не будут. Для вступления изменения в силу выберите кнопку "Предосмотр" снова.
  • Сводка
    Разведка (меню в верхней правой части экрана)  позволяет дать вашей миссии название, краткое описание, выставить время и дату, текущую погоду и прогноз,  и сторону, на чьей стороне сопротивление выступает союзником.









1.2 Файлы миссии

Редактор можно рассматривать как сцену, на которой все, собственно, и происходит. Любые изменения в редакторе отражаются в таком файле, как mission.sqm, находится он в Мои документы\Arma 2 Other profiles\НазваниеВашегоПрофиля\Missions\НазваниеВашейМиссии. Mission.sqm является основным и необходимым файлом любой миссии. Он автоматически создается при сохранении миссии в редакторе.

Важный момент в процессе познания редактора - учиться на других миссиях, смотреть как реализован тот или иной сценарий другим человеком. Для новичков это будет самым оптимальным вариантом. Сразу предложу вам одну из стареньких программок для разархивации файлов pbo ( о них вы можете прочитать в этой статье)  - Eliteness.

Разберем какие файлы нам понадобятся для создания полноценной миссии:

Любые внешние файлы миссии  должны распологаться в ее директории: Мои документы\Arma 2 Other profiles\НазваниеВашегоПрофиля\Missions\НазваниеВашейМиссии

Description.ext
  • Stringtable.xml - это файл, предназначенный для хранения всей текстовой информации, которая потом может быть использована в игре, скриптах, командах и т.д. Он также используется для создания интернациональной или мультиязыковой версий сценария. Данный файл должен находиться в корне папки с миссией.  Дело в том, что использование русского языка в скриптах не уместно, хотя возможно при сохранении файла в UTF-8.  Все же иметь файл, в котором собрана вся текстовая информация  - намного удобнее. Для получения дополнительной информации смотрите Stringtable.xml.

  • Description.ext   является текстовым файлом, расположенным в корневой папке миссии, который позволяет задать множество параметров миссии и опередлить ряд глобальных объектов с возможностью их использования в других скриптах. Файл использует такой же синтаксис и структуру, как и файл Config.cpp, но поддерживает лишь ограниченное число классов. Для получения дополнительной информации смотрите Description.ext.

  • Overview.html - это опциональный файл, который отображает картинку при выборе вашей миссии в главном меню и несколько строк текста.

FSM
  • Briefing.html -  это обычный  HTML файл, расположенный в папке с миссией.  Файл создается вручную и загружается автоматическе при запуске миссии. Briefing.html имеет 4 раздела, а именно:Notes (Заметки), Plan (План), Objectives (Цели), Endings (Концовки).

  • FSM  - это нововведение  для продукции от  Bohemia Interactive, которое появилось со времен серии  Armed Assault и  VBS2. FSM расшифровывается, как  Finite State Machine (Конечный автомат) и является первостепенным методом управления ИИ.

  • .SQS, .SQF файлы -  это скриптовые файлы, которые являются неотъемлемой частью вашей миссии.



Глава 2: Знакомство со скриптами

2.1 Скрипты

Думаю, начать стоит с последнего пункта, поскольку при разработке сценария вы постоянно будете сталкиваться с необходимостью применить тот или иной скриптовой код, команду и т.д. Для начала стоит ознакомиться вот с этим пособием: Учебник по написанию скриптов (Arma2). Издание подойдет для новичков, только начавших знакомство с этим необузданным зверем. От себя добавлю следующее: SQF синтаксис является иновационным и стал общеупотребительным. С ним, как по мне, легче работать, чем скажем с SQS. Однако, я предпочитаю SQS при создания интро и роликов. Постижение основ скриптинга, позволит научиться внимательности и аккуратности в обращении с кодом, поскольку малейшая ошибка может привести к вылетам игры.
Для устранения скриптовых ошибок, на первых этапах, да и опытные редакторы прибегают к такому простому методу отладки, как "-showscripterrors". Прописывается данный праметр в поле объекта ярлыка. Работает он следующим образом: при запуске скрипта в верхней левой части экрана выскочит часть кода, в котором обнаружена ошибка. Однако это не панацея, даже при отсутствии синтаксических ошибок, код может оказаться нерентабельным.

Совет: Не мудрите с кодом, пытайтесь упростить его по максимуму. Избегайте сложных конструкций.


На протяжении данного пособия я еще не раз буду возвращаться к скриптам.

2.1.1 Скрипт-событие

Скрипт-событие (англ. Event scripts)  - это такие скрипты, которые выполняются игровым движком только при определенных обстоятельствах.
Для использования побобных скриптов - создайте файл с необходимым именем в директории миссии.

Рассмотрим лишь некоторые из них:

  • init.sqs - выполняется при запуске миссии (до экрана брифинга);
  • init.sqf - выполняется при запуске миссии (до экрана брифинга);
  • initIntro.sqf - выполняется при запуске интро, оутро (победа или поражение);
  • exit.sqs - запускается при завершении миссии (до экрана с дебрифингом);

На данные файлы нет необходимости ссылаться. Они выполняются АВТОМАТИЧЕСКИ.

2.2 Модули

Чтобы разместить модуль, нажмите F7 и дважды щелкните по карте.

Меню модуля
Отряд: Здесь можно выбрать необходимый вам тип модуля. 
Назвние: Укажите здесь имя. которое будет использоваться в коде и скриптах
Инициализация:  В это поле вставляется код, выполняемый с запуском миссии.
Описание: Описание модуля
Условия присутствия: Аналогично с юнитом (см. главу 1).

Список всех модулей и способы их применения представлены в этой теме.



















2.3 Поле инициализации

Пример поля инициализации

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

this setdammage 1

Что такое this? В переводе с англ. означает этот, данный. В примере мы видим, что this заменяет название объекта, который будет уничтожен, в данном случае Лада (милиция). 
Setdammage - это скриптовая команда. Ее предназначение: Задает определенный уровень повреждения, наносимое боевой единице. Единица  - это параметр, который может варьироваться в пределах 0-1. В данном случае машина загорится. 

Эта команда не будет работать, если вы пропишите ее, например, в триггере.  Поскольку не будет понятно, что заменяет собой this. Выходит, что this является переменной локальной и работает только в поле инициализации конкретного объекта.

Рассмотрим такой пример:

Пример поля инициализации

Как мы видим задача усложнилась. В данном примере юнит имеет уже конкретное название - m6

В поле инициализции мы имеем следующее:

removeallweapons this; this addmagazine ["30Rnd_762x39_AK47",1]; this addweapon "AK_47_S"; [this] exec "army.sqs"

Команды отделяются между собой в поле инициализации, "По активации", "По деактивации" - точкой с запятой (;) - это важный структурный элемент, упущение которого сделает выполнение кода невозможным.  В начале мы удаляем все оружие у юнита. Затем добавляем ему необходимые патроны и оружие. Все достаточно просто. Все что необходимо понимать здесь: это что такое команда и параметр, и как правильно подставлять переменные. Найти все это вы сможете в BI Wiki
Особый интерес представляет  [this] exec "army.sqs". Данный код вызывается сприпт формата SQS, который расположен в директории миссии. Вот содержание скрипта:

_ARMY = _this select 0
@(!alive _ARMY)
RemoveAllWeapons _ARMY
exit
_ - нижнее подчеркивание говорит о локальной переменной, то, что она будет действовать только в пределах данного скрипта. _this select 0 - выбираем первый элемент массива. Поскольку запускали мы скрипт как [this], этим элементом у нас является наш юнит. _ARMY = _this select 0 -  локальная переменная _ARMY приравнивается к вышеописанному коду, т.е получается она становится данным юнитом.
@'''(!alive _ARMY)''' - @ (если -  в скриптинге SQS); ( УСЛОВИЕ ); ! - НЕ. Полуается: Что если наш юнит умирает, то все его оружие удаляется.
exit - выходит из скрипта.
По большому счету можно было сделать так:

@(!alive m6)
RemoveAllWeapons _ARMY
exit

Но тогда бы этот скрипт выполнялся бы только в случае одного конкретного юнита. Таким образом, первый вариант - является универсальным и подойдет для всех. Сама суть скрипта: Если вы не хотите, чтобы игрок подобрал оружие у убитого, то после смерти юнита, у которого прописана в поле инициализации команда [this] exec "army.sqs", все оружие просто напросто пропадет. 

Из всего этого следует, что поле инициализации, которое идентично полю "По Активации" в триггерах и маршрутных точках, может выполнять как отдельные команды, так и ссылаться на самостоятельные скрипты. Код, представленный в поле инициализации, выполняется СРАЗУ ЖЕ с запуском миссии. Команды в инициализации выполняются поочередно (слева направо)

Подробнее о this

2.4 Действия

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

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

2.5 Анимации

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

unit switchMove  "НАЗВАНИЕ_АНИМАЦИИ"

Команда switchMove применяется для немедленного выполнения анимации. Команда должна приводиться в действие сразу же по началу миссии. Если поместить ее в файл init.sqs или же в поле инициализации юнита, анимация работать не будет. Добавьте небольшую задержку (~0.001 или sleep 0.001) перед командой.

unit playMove   "НАЗВАНИЕ_АНИМАЦИИ"

Команда playMove применяется для плавного выполнения анимации. Команда должна приводиться в действие сразу же по началу миссии. Если поместить ее в файл init.sqs или же в поле инициализации юнита, анимация работать не будет. Добавьте небольшую задержку (~0.001 или sleep 0.001) перед командой.

Список анимаций и их наименования можно найти здесь.




2.6 Функции

  Имя Размер
- editor.jpg 269,25 KB
- editor_folder_description.jpg 90,21 KB
- editor_folder_fsm.jpg 122,93 KB
- group.jpg 114,75 KB
- init.jpg 435,40 KB
- init2.jpg 469,78 KB
- menu.jpg 31,96 KB
- module.jpg 221,28 KB
- sync.jpg 275,42 KB
- trigger.jpg 142,27 KB
- unit.jpg 150,54 KB
- waypoint.jpg 151,42 KB
- waypoint2.jpg 371,04 KB
Две колонки
О нас
SunHorizon Wiki версия 1.0.2.17.
© 2013-2014 SUNHORIZON.INFO.Все права сохранены.
В проекте использованы изображения FamFamFam
Связь с нами
Изображение
Правила сайта
Изображение

Авторские права
Изображение