Где найти файл init sqf

Обновлено: 03.07.2024

Следующий код отображает библиотеку функций в любой момент игры:

Особенности:

    - Выводит все функции из файла конфигурации или Description.ext
    - Отображает имя, путь, описание и код выбранной функции
    - Код можно просто скопировать в буфер обмена

Одиночная игра

Функции можно запустить в процессе миссии, для intro и outro характерен следующий синтаксис:

Мультиплеер

Функции заменяют устаревший Multiplayer framework. При помощи BIS_fnc_MP, вы можете удаленно вызвать функцию на конкретном клиенте и сделать ее постоянной, так что она будет выполняться автоматически для клиента по JIP.

    [params,"functionName",target,isPersistent] call BIS_fnc_MP;

Графический интерфейс пользователя

Библиотека может ссылаться на функции, которые хранятся в UInamespace

(При условии, что функции заданы в файле description.ext)

Когда параметр file (файл) задан в корневой категории, система будет искать все функции в данной директории.Результат вышеизложенного кода:

- BIS_fnc_Test1 - загрузит скрипт

- BIS_fnc_Test2 - - загрузит скрипт

test.sqf
из директории миссии

- BIS_fnc_Test3 - загрузит FSM

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

description - Краткое описание функции. В последующем устареет с появлением скриптовых заголовков, которые станут основным источником информации.
ext - тип файла, может быть как ".sqf", так и ".fsm" (имеется ввиду заскриптованный FSM). По умолчанию - ".sqf".
file - необязательный параметр; задает прямой путь к файлу
recompile (введено с появлением Arma 3) - функция будет повторно компилирована при запуске миссии
forced (введено с появлением Arma 3) - функция автоматически выполнится при запуске миссии

Отладка

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

Для того, чтобы предотвратить спам RPT файла, протоколирование по умолчанию отключено. Чтобы включить его, поместите следующие параметры в файл Description.ext вашей миссии:

Строго рекомендуется использовать следующие фукнции:

    BIS_fnc_param
    BIS_fnc_log
    BIS_fnc_error
    BIS_fnc_halt

_mission = [BIS_Player] call BIS_fnc_endMission;
"Log: ОШИБКА: [BIS_fnc_endMission] 0: BIS_Player является типом OBJECT, а должен быть STRING. Замените на "end1"

["Постоянное выполнение невозможно при target равном %1. Замените на %2 или %3.",typename 0,typename objnull,typename false] call BIS_fnc_error;
"Log: ОШИБКА: Постоянное выполнение невозможно при скалярном значении target. Замените на OBJECT или BOOL."

42 call BIS_fnc_log;
"BIS_fnc_log: [BIS_fnc_myFunction]: 42"

["Random number is %1",random 999] call BIS_fnc_log;
"BIS_fnc_log: [BIS_fnc_myFunction] Случайное значение - 808.768"

Повторная компиляция

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

Чтобы совершить повторную компиляцию функций missionNamespace, разместите следующий параметр в файл Description.ext вашей миссии:

allowFunctionsRecompile = 1;

Режим отладки

Разботчики имеют доступ к нескольским режимам отладки через функции BIS_fnc_functionsDebug.

Нет отладки
По умолчанию
Сохранить карту скрипта
Переменная _fnc_scriptMap отслеживает выполнение скрипта, прогресс сохраняется в заголовок скрипта
Сохранить и заносит в протокол карту скрипта (script map)
Переменная _fnc_scriptMap отслеживает выполнение скрипта, прогресс сохраняется в заголовок скрипта и заносится в протокол отладки ( журнал отладки)

Повторная компиляция функции должна быть разрешена


Мета переменные

    _fnc_scriptName: STRING - Имя функции _fnc_)
    _fnc_scriptNameParent: STRING - Имя функции, которая была запущена от текущей (используйте _fnc_scriptName, когда имя родительской функции не установлено)
    _fnc_scriptMap: ARRAY - Список всех родительских скриптов ( доступны только в режиме отладки 1 и выше, смотрите вышеизложенную информацию)

Данные значения НЕ НУЖНО изменять.

Порядок инициализации

Для начала сохраните миссию, даже если там ничего нет

редактор создаст папку с файлом и он находится черт знает где.

через поиск Виндоса его можно найти, сделайте ярлык, пригодится

название файлов и назначение

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

stringtable.xml
stringtable.csv
разные форматы, одно назначениие.
тексты для много язычного вывода.


overview.html
Рисунок и описание миссии в окне выбора миссии.

Debriefing.html
текст, конец миссии, результат.

initintro.sqf (sqs)
скрипт управления камерой в "Вступлении", запускается автоматически.

initoutro.sqf (sqs)
(в АА2 и далее неработает)
скрипт управления камерой в "Финале", запускается автоматически.

init.sqf (sqs)
стартовый файл миссии, запускается автоматически.

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

формат SQS
[] exec "File.sqs"

часто для работы файла необходимо передать в него инфу, это может быть один параметр
и тогда строка выглядит так
Tank exec "File.sqs"
или несколько, тогда параметры нужно взять в скобки [ ]
[Tank_1, Bot, "mk"] exec "File.sqs"
в файле пареметры записываются в переменную _this

формат SQF
as = [] execVM "File.sqf"
синтаксис отличается от SQS и ошибка в запускающей строке приводит к тому что файл работает неправильно или не работает вовсе.
основное отличие - переменная as =
наличие её необязательно (но на карте требуется)
в неё записывается ИД запущеного файла для контроля завершения или принудительного выключения.

Скрипт можно записать практически куда угодно

строка "Инициализация" (инит) - любого объекта
строка "Активация" - тригеры и поинты,
строка "ДЕактивация" - тригеры (только повторяемые)
конечно же файлы и даже в маркеры.
а также
добавленые действия и обработка событий
основное назначение - добавить возможности не предусмотренные редактором.

для дальнейшего использования

Можно спросить ? А как писать ОПИСАНИЕ МИССИИ у меня не палучается пишу по русский и точка но не высвечивается а только точка одна а в Арма 1 все работает как что делать не знаю ?

Всем привет.
Ребят, подскажите пожалуйста: освоил создание брифинга в ARMA2, теперь запускаю миссию, вижу свои задачи, которые надо выполнить, могу поставить маркер и на него будет ссылаться "ярлык", поставленный в задаче. Но чет только сейчас я понял, что не знаю, как сделать завершение задачи, т.е. чтоб я пришел, например, куда-нибудь и задача считалась выполненной, и потом переключалась на следующую и т.д.
Подскажите, как это можно сделать?

P.S.
И может кто-нибудь сказать, зачем и для чего все таки триггеры нужны, я не могу понять их суть работы.

s229, в файл пока писать не пробовал.
Теоретически:
Я создал все файлы в ручную, с нуля, писал тоже. В init.sqs записал:

task1 = player createSimpleTask [localize "STR_Task2"];
Task1 setSimpleTaskDescription[localize "STR_Task2_2", localize "STR_Task2", localize "STR_Task2"];
task1 setSimpleTaskDestination markerpos "mission1";
player setCurrentTask task1;

task2 = player createSimpleTask [localize "STR_Task1"];
Task2 setSimpleTaskDescription[localize "STR_Task1_1", localize "STR_Task1", localize "STR_Task1"];
task2 setSimpleTaskDestination markerpos "mission1";
player setCurrentTask task2;

task3 = player createSimpleTask [localize "STR_Task3"];
Task3 setSimpleTaskDescription[localize "STR_Task3_3", localize "STR_Task3", localize "STR_Task3"];
task3 setSimpleTaskDestination markerpos "mission1";
player setCurrentTask task3;

_diary = player createDiaryRecord ["Diary", [localize "STR_Dnev_Title", localize "STR_Dnev"]];
_log_briefing = player createDiaryRecord ["Diary", [localize "STR_Zad_Title", localize "STR_Zad"]];

- (на цифры не обращайте внимания - я так просто миссии по активности местами поменял, чтоб ничего не переписывать) например, я после player setCurrentTask task1; пишу строчку Task1 setTaskState "FAILED" - это я пишу условие, получается? Если "проваленно", то игра идет в briefing.html, читает строчку с "FAILED" и со стрингтейбла выводит на экран соответствующую строчку с текстом?
Я правильно думаю?
А как игра "понимает", выполнил я задание или провалил, где это указывается?

P.S.
Извините, что не скрыл скрипт - пока не знаю, как это делать

Добавлено (28.01.2012, 00:21)
---------------------------------------------
Блин, посмотрел пример leh2012, и теперь вообще запутался получается "брифинг" можно делать не одним методом?? а "task1. " можно вообще в др. файл записывать?

Добавлено (28.01.2012, 01:16)
---------------------------------------------
Ну в общем немного стало понятно.
Выполнение/невыполнение миссии определяется условием, например "@ not (alive a); Условие на смерть офицера A". Как мне писать эти условия, если я не знаю этих команд?! Или их можно где-то найти, прочитать?

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Войти

Похожие публикации

vitacite

Бесплатные проекты - "пацаны собрались и замутили сервачок" долго не живут. В этом я убеждался много раз. Нет сначала на интузиазме эффективность неплохая, но затем все это затухает управляемость команды падает. Начинаются вопросы - "а почему это должен делать я?", отмазки "да я на даче сегодня", "да у меня командировка" и тд. + кто-то должен спонсировать оплату сервера, антидудосов и прочей лобуды, а такого человека интерес тоже может пропасть в любой момент. А чтобы проект был хороший - кому-то надо реально "въебывать", как на второй работе, и кому-то постоянно вливать туда бабло.
Поэтому, лично я, считаю любой некоммерческий проект заранее проваленным! Побегать недельку другую с друзьями это да. Что-то более серьезное, не тратьте свои силы и время! Как минимум на тему сталкера я таких проектов видел 10 штук и в некоторых даже сам поучаствовал. Начиналось все амбициозно и даже набирало онлайн до 100 человек. Но заканчивалось все одинаково 3-4 месяца и с десято скучающих тел, на безлюдном сервере. С точки зрения администации, игроки ведут себя как проститутки, бегая с сервера на сервер, друзья перешли, или потому что на том добавили новый прикольный скрип, или прикольную тачку, или тут плохой пинг, а там хороший, или админ козел забанил за читы и тд. а все эти приколюхи требуют денег, а игровое сообщество не очень расположено их платить за некачественный контент. Да и сама администрация достаточно быстро забивает и расслабляется.
(я сейчас не говорю о конкретном проекте, скорее это собирательный образ халявы).

А теперь по-существу. Так сколько должен стоить контент с хотя бы приемлемым качеством?

Свое мнение я написал ниже.


Спасибо за внимание.

А что думаете Вы напишите ниже в комментариях!

vitacite

Вступление:
Бодрого дня комрады. Данный гайд расчитан на тех кто умеет пользоваться 3D Studio Max, умеет пользоваться Object Builder и хотя бы пытался делать собственные модели. Я разбираюсь с этой темой с нуля, у меня есть опыт создания стволов для Арма 3, но в Dayz, как выяснилось все совсем иначе. Статей будет видимо несколько ибо Богемия, это такая Богемия, что не важно какую игру она делает. Инструменты остаются кривожопыми, паралогичными и в целом непонятными.


Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Кроме того эта модель имеет полный набор необходимых текстур (имеет карту теней, карту высот, нормали и прочее). Что позволит создать адекватный мультиматериал. Правда все это не форматах Dayz SA (Арма 2), по переделать это не так сложно.
Сразу скажу т.к. модель в игре будет смотреться несколько иначе. Мне придется разобраться АК 12, чтобы выделить необходимые движущиеся части, курок, затвор, отделить магазин, прицелы, приклад в отдельные части. Так, как это используется в Dayz. Все это будет делаться в 3D макс. А так же сохранить в формате, который адекватно экспортируется в Dayz Object Builder.
По мере прогресса, я буду выкладывать отчеты с подробным описанием действий.

План действий такой.

Распил 3D модели в 3D макс на отдельные части (те, которые будут выделены в прокси, как отдельные предметы)
Создание текстур и материалов (AS,SMDI,NOHQ) на базе приложенных в модели и подгонка материала.
Создание селекшенов и лода memory
Перемещение частей в прокси и подгонка их к базе.
Создание model.cfg
Создание config.cpp
Импорт всего этого добра в собственный
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.


Изначально модель была не готова для конверсии. В первых, все части были собраны в одну представляя из себя нагромождение частей АК-12, во-вторых пришлось делать Detoch частей модели например затвора, т.к. изначально он был представлен двумя несвязанными друг с другом полигонами, а у нас затвор - движующаяся часть. В итоге скрыв лишние LOD-ы (они пока нам не нужны) и пересобрав там где надо запчасти. Получилась следующая картина.


Я заранее выделил, как отдельные модели части которые будут подвергнуты анимации. А именно курок (base curok) и затвор basehutter. А также выгрузил в отдельную модель рамку прицела и приклад, чтобы подцепить к модели через прокси. Об этом расскажем отдельно. А планки Пиккатини сделал неснимаемыми (без них между прицелом и базой АК будет большой зазор). Так пришлось повозиться с место крепления съемного приклада, т.к. при разборе модели на зап.части там образовалась дыра. Готовую модель требуется конвентировать в формат FBX.


Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.


Выделяем только те части которые нами выбраны для моделирования и делаем export selected.
В моем случае я подготовил папку
P:\тегпроекта\weapons\firearms\AK12\source\ При сохранении чтобы все потом правильно экспортировалось, желательно выставить чекпоинты в открытых свитках, как на скриншоте, остальное оставить по умолчанию.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

И обязательное условие формат для экспорта должен быть FBX 2010. Не спрашивайте почему, это загадка для меня связанная с работой Object Builder, но в моем случае нормальный экспорт получается только в 2010 FBX.
Так же отдельными моделями по такому же принципу выгружаем приклад и прицел и магазин(ы) автомата. Это отдельные модели которые мы будем цеплять через прокси.


Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.


При импорте в Object Builder отключите чекпоинт на Sharp & Smoth edges (иначе все идет кубами) и Animation (ее просто нет), включите Prepare materials.
Полученный автомат загружается неправильно ориентированным в пространстве, незатекстуренным, но с готовыми к работе selection.

Сохраняем нашу модель под именем

P:\тегпроекта\weapons\firearms\AK12\ak12_base.p3d И займемся конфигом.
Открываем notepad++ и создаем model.cfg следующего содержания
class CfgSkeletons < class Default; class ak12_base_skel : Default //название скелета < skeletonInherit = ""; isDiscrete = 1; SkeletonBones[]= < "magazine" ,"", //кости для анимации сменный магазин "trigger" ,"", //курок "bolt" ,"" //затвор >; >; >; class CfgModels < // BASE CLASS DEFINITIONS START class Default; class ak12_base:Default //цепляем скелет к нашей модели. < skeletonName="ak12_base_Skel"; sections[]= < "magazine" //выделяем сецию магазин >; class Animations < >; >; // BASE CLASS DEFINITIONS END >; Он базовый позже мы его дополним. Конфиг я планирую использовать от ванильного АК47, врядли он будет сильно отличается, от АК12.
По схожим прнципам копируем файлы с будующими прокси..
Магазин на 30 патронов.
ak12_magazine_30rnd.p3d Магазин под барабан
ak12_magazine_drum.p3d Прицельная рамка
ak12_sight.p3d Съемный приклад
ak12_stock.p3d
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
Итоговый вид моего рабочего каталога.
Пришло время занятся материалом для нашего АК.
Архив содержит текстуры для базы АК12 в формате TGA (это кстати важно т.к. позволяет сохранять битность тестур, а там где мы работаем с материалами мы будем работать с каналами)

AK12_Base_A.tga - диффузная карта
AK12_Base_AO.tga - окружение
AK12_Base_MSA.tga - карта отражения
AK12_Base_MT_AO_0_G.tga - карта металик, карта отражения, и окружение вместе.
AK12_Base_N.tga - карта нормалей (тут пришлось заморочиться т.к. эта карта нормалей для OpenGL. а в нашем случае карта нормалей нужна для Direct X.)


Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Разницу можно увидет на скриншотте выше в левой части нормаль в OpenGl формате в правой части нормальн в DirectX формате.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Для нормального материала нам понадобится карты AS и SMDI
Создадим их AS из AO не меняем..
Для SMDI берем родную текстуру
AK12_Base_MSA.tga и создаем SMDI (как можно узнать из статьи выше карта SMDI хранит информацию в зеленом и синем канале игнорируя красный и альфу). Создаем пустую картинку аналогичных размеров и начинаем копирование нужных каналов. Соответственно зеленый канал из оригинальной тестуры, я скопировал в синий канал новой текстуры SMDI, красный канал SMDI залил белым (0), а в зеленый канал скопировал текстуру из красного оригинального (содержащего блестяшки и сильно ее затенил).
(скрин не влез из-за ограничений 800кб) но ничего продолжим ниже.

Вижу крайне много любопытных вопросов по поводу идентификаторов игрока в игре. Что же, разжую для не знающих немного.

В игре есть следующие типы идентификаторов:
1. Steam64ID идентификатор профиля игрока (на пиратках его UID называют), примерно такой: 765475. 65 (17 цифр).
2. Так называемый мною, BIS ID - uid из окна (консоли) сервера игры и ADM-файлов логов сервера, который пишется самой игрой
3. Battleye GUID игрока.

Первый идентификатор (Steam64ID) на ПК является прямым идентификатором стим-профиля игрока, уникальным у каждого игрока. Т.е. публичным идентификатором вашего профиля для большинства стим-игр (например, Counter-Strike).
Второй идентификатор (BIS ID) является определенной хеш-суммой, полученной из Steam64ID посредством конвертации сначала в sha256, а затем в base64. Спасибо за это разъяснение и пример кода-конвертации авторам игры на своем официальном форуме.
Третий идентификатор (Battleye GUID) является публичным идентификатором Battleye античита, получаемый также из Steam64ID поcредством получения его хеш-суммы MD5. Этот же идентификатор есть в логах сервера от Battleye, в любых RCON-приложениях (DART, BEC и т.п.), также его можно конвертировать самим.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

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

DrTauren

Как всем известно, сегодня, 19 сентября разработчики DayZ Standalone официально опубликовали документацию серверов Dayz, а также предоставили возможность скачать файлы для запуска сервера DayZ. Ниже прилагается перевод официальной документации этих самых файлов с форума DayZ, а также документация касательно других файлов, которых нет в официальной документации. Пользуйтесь на здоровье


Требование присутствия модуля на миссиях: Обязательно
Дальность видимости (1е поле): Максимальная дальность прорисовки объектов, в метрах
Дальность видимости (2е поле): Максимальна дальность прорисовки ландшафта (убирает туман войны на указанное значение поле), в метрах
Доля тяжелых потерь: Доля потерь для всех присутствующих сторон конфликта. В случае, если кол-во оставшихся выживших достигнет указанного значения, сторона проиграет по боевым потерям
Тепловизор: **
-Стандартные настройки - настройки Армы по-умолчанию
-Отключить в технике - отключает тепловизор во всей боевой технике
-Отключить - отключает тепловизор во всей боевой технике и у пехоты
​Расширенный брифинг:**
-Включено - добавляет на брифинг список вражеской техники + информацию об отрядах
-Отключено
​Подсветка ников:
-Включено - добавляет ники, высвечивающиеся на головой бота игрока
-Выключено
​Опознание мертвых:
-Включено - добавляет возможность посмотреть жетон на мертвом боте игрока
-Отключено
​Показывать частоты:
-Включено - добавляет вкладку с частотами отрядов на брифинг
-Выключено
​ИИ:
-​Отключено - отключает искусственный интеллект у ботов, не позволяя им выполнять какие-либо действия
-Включено
​Отображение списка экипажа в технике
Отображение статистики: После гибели бота, игрок может посмотреть список уничтоженных противников, а так же ник убийцы - активация по нажатию кнопку END


Требование присутствия модуля на миссиях: По желанию

А) Использование модуля для переноса игроком объектов на указанные позиции/групп объектов/групп игроков

Поле Текст: Текст, записанный в поле высветится в меню действий у указанного игрока
Поле Владелец (Owner): Задайте юниту имя в редакторе и укажите его в данному поле
Центер (Center): ставим невидимый маркер (можно ставить размером x:0, y:0). Даем ему название. От позиции данного маркера будут считываться координаты синхронизированных объектов
Лист позиций (List of positions): ставим видимые маркера (сколько нужно) на нужные позиции, даем название каждому. Вписываем названия маркеров в данную строку через запятую
Показать маркеры (Show markers): Указываем сторону, к которой принадлежит владелец
Время (Time): Ставим время, которое отводится на выбор позиции владельцу
Применить к (Apply to): Выбираем нужный вам пункт

Б) Использование модуля для рандомного спавна объектов/групп объектов/групп игроков

Поле Текст: Можете написать что угодно
Поле Владелец (Owner): Пусто
Центер (Center): ставим невидимый маркер (можно ставить размером x:0, y:0). Даем ему название. От позиции данного маркера будут считываться координаты синхронизированных объектов
Лист позиций (List of positions): ставим невидимые маркера (сколько нужно) на нужные позиции, даем название каждому. Вписываем названия в данную строку
Показать маркеры (Show markers): Указываем сторону, по отношению к которой будет проводиться действие
Время (Time): ставим 1 секунду. Время, которое отводится на выбор позиции. Так как нам нужен рандомный спавн, то время на выбор не требуется.
Применить к (Apply to): Выбираем нужный вам пункт


Требование присутствия модуля на миссиях: По желанию

4) Юниту, который будет с этим снаряжением в поле инициализации в редакторе пишем:
this call compile preprocessfilelinenumbers "tpl\fighter.sqf";

1. Описание
Добавляет медицинское меню (опционально). Может быть отключено в технике \ на выбор создателя миссии.

2. Зависимости
ACE_Medical

1. Описание
1.2. Продвинутая медицинская система

Продвинутая медицинская система обеспечивает более сложную и усовершенствованную систему медицинского моделирования и построена на основе CSE CMS. Она сосредоточена на более реалистичной системе повреждений и лечения. В результате повышается востребованность медиков и стимул не получить пулю.
Продвинутая медицинская система имитирует важные части организма человеческого тела, а также реакцию на различные травмы и их лечение. Доступные процедуры и расходные материалы в продвинутой медицинской системе основаны на методических рекомендациях по Тактической медицине и военно-полевой хирургии (Tactical Combat Casualty Care (TCCC)), используемых в реальной жизни боевых медиков по всему миру.
Кроме того, четыре дополнительных элемента введённых из базовой медицинской системы, например:
Более детальная система ранений
Точная кровопотеря на основе полученных ранений
Жизненно важные показатели, включая сердечный ритм и артериальное давление.
Остановка сердца
Различные методы лечения, такие как сердечно-лёгочная реанимация, различные виды капельницы и жгут
Базовая имитация лекарственных средств
1.3. Изменена система повреждений
Базовые значения повреждений изменены

Что бы маркер отображался лишь для одной стороны нужно прописать в названии маркера (то есть где по умолчанию: marker_0)

Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

Алгоритм создания МП-миссий для WOG3 в 3D редакторе EDEN

графический редактор - Paint, Gimp или другой по вкусу

программа для распаковки/запаковки файлов игры - PBO Manager

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

При этом необходимо учитывать, для какого количества игроков создается миссия. Нужно стремиться к соблюдению баланса играбельности, фана и реализма. Важно помнить, что от этого зависит, как на больших играх проведут свои полтора-два часа жизни 150-200 игроков. Тут, конечно, сложно будет всем угодить, но стремиться к этому нужно. Все должны получить свой кусок пирога. Большим разочарованием будет, например, ситуация, когда на составление плана и брифинг уйдёт больше времени, чем продлится сама миссия, которая завершится поражением по чьей-либо невнимательности, из-за бага или вылета важного персонажа. Поэтому, задумывая миссию, необходимо предусматривать и "защиту от дурака".

Составляем некое подобие "технического задания" на создание миссии (инструментарий тут индивидуален: кто-то предпочитает классику и ему привычны бумага и карандаш, а другой спит с планшетом и ему подавай Google Docs). Прикидываем/считаем, сколько юнитов персонажей и техники будет в миссии и в техзадании указываем все отделения и приписанную к ним технику. Расписываем, какие именно отделения и где стартуют, в каком порядке они будут отображаться в лобби. Определяемся, будут ли использоваться какие-либо ключевые для миссии объекты.

Делаем наброски текстов для брифинга (вводная, задачи сторон, дополнительная информация, разведданные, условности и т.п.). Не забываем, что по форме судят о содержании и небрежно составленные тексты могут вызвать у игроков чувство отторжения к миссии еще на этапе брифинга.

Создаем картинку для экрана загрузки миссии loadscreen (в формате *.paa или *.jpg) с соотношением сторон 2:1 (рекомендованный размер изображения 1024x512 пикселей, размер файла до 80KB). При желании можно конвертировать файлы из формата *.jpg в формат *.paa утилитой TexView 2 из состава пакета Arma 3 Tools (Steam-Библиотека-Инструменты), но это не обязательно, т.к. движок Arma 3 научился понимать формат *.jpg и для экрана загрузки его достаточно.

Всё, теперь можно приступать к собственно созданию миссии. Запускаем Arma 3 с набором аддонов для WOG3 , т.е. также как и при заходе на сервер для очередной игры. Также в строку запуска можно добавить параметр -showScriptErrors для отображения ошибок скриптов.

Перед созданием своей миссии в порядке самообразования можно скачать и изучить любую миссию из полигона WOG3. Распаковываем (например, программой PBO Manager) необходимую миссию в папку missions (или mpmissions) в своем профиле и открываем её в редакторе. Если во время игр нам понравилась какая-то использованная картоделом фишка, которую мы хотели бы использовать в своей миссии, делаем пометку у себя на рукаве, чтобы позже её скачать и изучить. Поначалу изучать, конечно, нужно миссии попроще.

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

СОЗДАНИЕ, СОХРАНЕНИЕ, ПЕРВОНАЧАЛЬНАЯ НАСТРОЙКА МИССИИ

1) Из главного меню игры заходим в редактор (SINGLEPLAYER > EDITOR), выбираем остров и запускаем 3D редактор нажатием кнопки CONTINUE.

С выходом обновления APEX старый 2D редактор был скрыт и не будет поддерживаться разработчиками, но его всё еще можно запустить сочетанием клавиш CTRL+O из меню выбора острова. Это может понадобиться, например, для редактирования старых миссий, сделанных в 2D редакторе, перед импортом их в новый 3D редактор, т.к. импорт возможен только, если в миссии есть юнит со статусом Player (Игрок).

Тем, кто впервые заходит в 3D редактор, стоит сразу произвести его первоначальную настройку (Settings > Preferences) по своему усмотрению, например, так:

Рекомендуется также просмотреть встроенный туториал (Help > Tutorials…) и почитать официальную документацию по редактору.

Те, кто привык к старому 2D редактору, могут переключаться между режимами отображения 2D (карта) и 3D (сцена) горячей клавишей M.

Свернуть/развернуть окошко Entity List в левой части экрана можно клавишей E, а окошко Asset Browser в правой части экрана - клавишей R.

Выбор режима редактирования осуществляется горячими клавишами F1 - Objects, F2 - Compositions, F3 - Triggers, F4 - Waypoints, F5 - Systems, F6 - Markers, либо щелчком ЛКМ по соответствующей иконке в окошке Asset Browser в правой части экрана.

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

Щелчок ПКМ по объекту вызывает его контекстное меню. Двойной щелчок ЛКМ по объекту открывает окно его свойств.

2) Сразу сохраняем файл миссии (Scenario > Save As…) в формате wog_mission_for_dummies_1a_190 в папке MPMissions (мы ведь создаём мультиплеерную миссию). Проверяем, что снята галочка с бинаризации файла (бинаризировать файл мы будем уже в самом конце, когда миссия будет готова, при её экспорте в мультиплеер).

Все дальнейшие действия будут демонстрироваться на примере гипотетической миссии "Миссия для чайников", в которой присутствуют 2 стороны: FIA (атака, 100 слотов) и CSAT (оборона, 90 слотов), задача FIA захватить базу CSAT, используется только транспортная техника.

Подробнее о правилах оформления миссии для WOG3 внимательно читаем в соответствующей теме на форуме.

В дальнейшем после существенных правок в миссии не забываем периодически сохраняться (сочетание клавиш Ctrl+S). В редакторе также есть функция автосохранения, частота которого настраивается в Settings > Preferences. Доступ к сохранённым миссиям осуществляется подобным же образом (Scenario > Open. ).

После первого сохранения будет создана папка миссии, которая будет находиться в папке того профиля, под которым мы зашли в редактор и сохранили миссию, например: C:\Users\имя_пользователя\Documents\Arma 3 - Other Profiles\имя_профиля\MPMissions\wog_mission_for_dummies_1a_190.Название_Острова

В этой папке должны храниться все файлы миссии. Каждый раз при создании/переименовании миссии средствами редактора создаётся новая папка миссии с новым названием. Во вновь созданной папке изначально присутствует только основной файл миссии mission.sqm, который генерируется редактором. Остальные файлы необходимо добавлять/создавать вручную.

3) Подключаем и настраиваем модули WMT/Main и WMT/Time (для чего эти модули нужны и как их настроить читаем в документации по WMT - тема на форуме, тема на форуме 2, github). Для этого, находясь в редакторе, переключаемся в режим редактирования модулей (клавиша F5 - Systems > Modules), и щелчком ЛКМ выбираем из списка необходимые модули и перетаскиваем их на любое пустое место на карте.

Двойной щелчок ЛКМ по поставленному на карту модулю открывает диалоговое окно его настроек. Не забываем пройтись по всем параметрам модулей, т.к. настройки по умолчанию в настоящее время, как правило, не соответствуют требованиям к миссиям для WOG3.

Читайте также: