This website uses cookies

ru

Картостроение

Данная статья является вводной для тех, кто хочет попробовать себя в создании миссий Материала для создания миссий очень много, и уместить его в одной статье является достаточно трудоёмким и долгим процессом, поэтому статья будет дополнятся и в первую очередь сделана для понимания основ создания миссий и удовлетворения интереса тех, кто думает о создании своей миссии. Если Вы хотите узнать больше информации, или получить помощь - заходите в дискорд-сервер Для создания миссий понадобятся: Обязательные Актуальная платформа Atrium PBO Manager Опционально Visual Studio Code Рекомендую также установить такие плагины: SQF Language, ARMA 3 - Open Last RPT. Также опционально можно установить Arma 3 Tools (идёт в комплекте с Arma 3, просто найдите через поиск библиотеки Steam). Atrium является основной платформой на которой создаются миссии на проекте. Файлы платформы должны находится в одной папке с файлом mission.sqm, который создается в редакторе Eden Editor. Из чего состоит Atrium Для упрощения и унификации миссий просьба соблюдать файловую структуру миссий, для более простой поддержки миссии, а также понимания её другими картоделами. Для начала создания миссии необходимо перейти в редактор и выбрать интересующий Вас остров. Важно сразу отключить бинаризацию сценария (т.к. поддерживать работу миссий запакованных таким образом сложнее). Как это сделать Также стоит сразу сохранить миссию Также проверьте, стоит ли галочка бинаризации сценария при сохранении миссии. Найти её на ПК можно по адресу: Библиотеки -> Мои Документы -> Arma 3 Other Profiles -> Имя_пользователя -> MPMissions. В папке миссии будет только mission.sqm. В дальнейшем после существенных правок в миссии не забываем периодически сохраняться (Ctrl+S). Далее следует перекинуть файлы платформы Atrium в папку с Вашей миссией. Снаряжение, SQF, инициализация снаряжения Для создания "слотов" необходимо на карте расположить ботов. Обязательно используйте А3 БОТЫ MKK MODS - Люди - Выживший. А также не забудьте выбрать правильные атрибуты. Атрибуты ботов и техники После расположения ботов и выбора атрибутов, нужно собрать для них снаряжение. Для этого необходимо перейти в редактор экипировки BI Virtual Arsenal. ПКМ -> Атрибуты -> Редактировать комплект экипировки -> BI Virtual Arsenal В нём выбираем нужное снаряжение и копируем его через красную кнопку "Скопировать снаряжение"! Это важно. После чего создаем SQF-файл нашего снаряжения. Как назвать файл - решать Вам, делайте так, чтобы вы ориентировались в файлах и чтобы Вы понимали какой файл за что отвечает. Пример названия файла: Rifleman.sqf После создания SQF файла вставляем в него наше снаряжение. Пример SQF файла снаряжения бота Код со скриншота

// SolidGames

_unit addBackpack "B_Carryall_Base";

// Weapons with attachments:

_unit addItem "vtn_pg7v";
_unit addWeapon "vtn_rpg7v2_pg7v";
_unit addSecondaryWeaponItem "vtn_optic_pgo7v2";

_unit addItem "rhs_mag_30Rnd_556x45_M855A1_PMAG_Tan";
_unit addWeapon "arifle_AK12U_F";
_unit addPrimaryWeaponItem "ACE_muzzle_mzls_B";
_unit addPrimaryWeaponItem "rhs_acc_1p87";

_unit addWeapon "Binocular";

removeBackpack _unit;


// Uniform with items:
_unit forceAddUniform "mkk_U_B_BAF_DPM_UBACSROLLEDKNEE";

// Vest with items:
_unit addVest "AGE_TV110_SL_Holster_MultiCam";
for '_i' from 1 to 5 do { _unit addItemToVest 'rhs_30Rnd_762x39mm_polymer_89'};
for '_i' from 1 to 2 do { _unit addItemToVest 'rhs_30Rnd_762x39mm_polymer_tracer'};
for '_i' from 1 to 2 do { _unit addItemToVest 'rhs_mag_m67'};
for '_i' from 1 to 2 do { _unit addItemToVest 'rhs_mag_rdg2_white'};

// Backpack with items:
_unit addBackpack "UK3CB_BAF_B_Bergen_DDPM_SL_A";
for '_i' from 1 to 3 do { _unit addItemToBackpack  'vtn_pg7vl'};
for '_i' from 1 to 2 do { _unit addItemToBackpack  'vtn_og7v'};
_unit addHeadgear "AGE_Fast_Tan_C";

_unit addGoggles "PBW_Balaclava_schwarz";

_unit linkItem "ItemMap";
_unit linkItem "ItemCompass";
_unit linkItem "ItemWatch";
_unit linkItem "ItemRadio";
_unit linkItem "ItemGPS";
SQF файл для снаряжения техники/ящика/палатки выглядит немного иначе. Пример SQF файла снаряжения техники Код со скриншота

_veh = _this select 0;

_veh addItemcargoGlobal ['ACE_morphine', 10];
_veh addItemcargoGlobal ['ACE_epinephrine', 10];
_veh addItemcargoGlobal ['ACE_fieldDressing', 25];
_veh addItemcargoGlobal ['ACE_tourniquet', 10];
_veh addItemcargoGlobal ['ACE_quikclot', 25];
_veh addItemcargoGlobal ['ACE_elasticBandage', 25];
_veh addItemcargoGlobal ['ACE_packingBandage', 25];
_veh addItemCargoGlobal ['ACE_splint', 5];

_veh addItemcargoGlobal ['nmg_30Rnd_545x39_7N10_AK12', 15];
_veh addItemcargoGlobal ['nmg_30Rnd_545x39_7T3M_AK12', 10];
_veh addItemcargoGlobal ['rhsusf_200Rnd_556x45_box', 4];
_veh addItemcargoGlobal ['mkk_VTN_SV98_10p_AP', 6];
_veh addItemcargoGlobal ['rhs_VOG25', 10];
_veh addItemcargoGlobal ['vtn_pg7vl', 4];
_veh addItemcargoGlobal ['vtn_og7v', 2];

_veh addItemcargoGlobal ['rhs_mag_m67', 10];
_veh addItemcargoGlobal ['rhs_mag_an_m8hc', 10];

_veh addItemcargoGlobal ['mkk_AMF_OPSCORE2_OD1_2', 2];

_veh additemcargoGlobal ['ToolKit', 1];
_veh additemcargoGlobal ['binocular', 1];

_veh addBackpackCargoGlobal ['mkk_AMF_rush24_01_BLK', 2];
_veh addBackpackCargoGlobal ['mkk_rt1523g_black_red', 1];

_veh addItemCargoGlobal ["mkk_mag_Rbs_56_OTA", 1];
_veh addItemCargoGlobal ["mkk_mag_Rbs_56", 2];
_veh addItemCargoGlobal ["mkk_mag_Rbs_56_BB", 2];
_veh addItemCargoGlobal ["rhs_mag_762x54mm_250", 4];
После того, как файлы снаряжения готовы, нужно их инициализировать в бота/технику/ящик/палатку. Для этого нужно в поле "Объект: Инициализация" вставить следующие команды. Инициализация снаряжения

[this, "OPFOR", "VEH"] call SerP_vehprocessor; // Для техники стороны OPFOR 
[this, "OPFOR", "Rifleman"] call Serp_unitprocessor; // Для ботов стороны OPFOR 

[this, "BLUEFOR", "VEH"] call SerP_vehprocessor; // Для техники стороны BLUEFOR
[this, "BLUEFOR", "Rifleman"] call Serp_unitprocessor; // Для ботов стороны BLUEFOR
this - бот, в котором инициализируется снаряжение BLUEFOR/OPFOR - название папки/стороны бота Rifleman/VEH - название ранее созданных SQF файлов снаряжения Обращайте внимание на функцию, которой вы инициализируете снаряжение: SerP_vehprocessor для техники/ящиков/палаток и Serp_unitprocessor для ботов
Важно, после того, как выставлены все боты и вся техника - очистить их инвентарь и разблокировать технику. Для этого в меню редактора сверху выбираем: МКК -> Инвентарь -> Очистить инвентарь техники МКК -> Инвентарь -> Очистить инвентарь юнитов МКК -> Техника -> Разблокировать всю технику Также для реализации некоторого функционала следует использовать модули. Примеры модулей Не все модули являются рабочими, поэтому перед использованием стоит уточнить работает ли интересующий Вас модуль. После того, как "техническая" часть миссии готова необходимо сделать её "текстовую" часть. Данная "часть" миссии хранится в папке A3A_BRIEFING и в файле mission_description.hpp. Полезные ресурсы Таблица с класснеймами БК техники Таблица с прицелами Полезные скрипты инициализации

[this, "VEH", "all"] call compile preprocessFileLineNumbers "bn_crew_control.sqf"; // В технику
this setVariable ["VEH", true]; // В бота
Скрипты для реализации "Crew Control" (привязки слота к технике). this - объект в котором инициализируется скрипт (бот, техника). VEH - переменная (можете менять под свои нужды).

this setVariable ["WMT_Side", OPFOR];
Скрипт, чтобы назначить технику нужной стороне. В редакторе не всегда можно поставить нужную технику желаемой стороне, для этого существует этот скрипт.

[this]call BIS_fnc_replaceWithSimpleObject;
Скрипт делает объект "симпловым". Объект становится не разрушаемым, с ним больше нельзя взаимодействовать, а также он меньше нагружает систему. Используйте данный скрипт для оптимизации миссии с большим количеством объектов.

<--Неуничтожимые здания (Кроме немецких)-->
for "_i" from 1 to 99 do { this setHit ["glass_" + str _i, 1] };
this allowDamage false;

<--Неуничтожимые немецкие здания-->
for "_i" from 1 to 9 do { this setHit ["window_0" + str _i + "_hp", 1] };
for "_i" from 10 to 99 do { this setHit ["window_" + str _i + "_hp", 10] };
this allowDamage false;
Данные скрипты позволяют сделать здание не разрушаемым, при этом окна будут выбиты, а взаимодействие с дверьми и прочим будет доступно в отличии от симплового объекта.
Если Вы считаете что завершили работу над миссией - просмотрите её еще раз. Для этого можете использовать "чеклист". Чеклист Проверить работоспособность скриптов из init.sqf, a3a_server_scripts.sqf и a3a_client_scripts.sqf. Проверить mission-parameters.hpp. Соответствие противоборствующих сторон. Дистанции обзора. Размер зоны фризтайма. Проверить mission-description.hpp на правильное заполнение полей. Проверить все файлы в папку A3A_BRIEFING на правильность заполнения. Проверка выставленных модулей на работоспособность. Соответствие настроек модуля и написанному в брифинге. Спектатор (Атрибуты – сетевая игра – Возрождение: Переключится на зрителя – Переключится на чайку). Проверка соответствия Условий и Активаций брифингу. Проверка ботов медиков. ("Обычный медик", не "Врач"). Проверка параметров расставленных объектов (Простой объект). Зеленые и (синие, красные) союзники/противники. Атрибуты – Общие – Верность независимым. Соответствие ДВ техники или самой техники цвету стороны. Наличие расширенного брифинга. Соответствие сторон и используемой техники. Соответствие кол-ва слотов на сторону минимальный требованиям (максимальное кол-во гарантированных слотов самой большой стороны + 10%). Проверка раздачи снаряжения ботам и в технику. Проверка наличия в гусеничной технике рем. набора и рюкзака. Посадка в технику (Crew Control). Соответствие КВ, ДВ и раций техники на сторонах. Проверка фактической работоспособности миссии и ее завершения путем моделирования ситуаций. (На выделенном сервере). Если Вы проверили миссию и хотите загрузить её на сайт, Вам необходимо получить роль картодела, для этого необходимо обратится к главному картоделу. После чего при помощи PBO Manager упаковать вашу миссию в формат .pbo. Для этого нажмите на папку с Вашей миссией ПКМ, в контекстном меню выберите PBO Manager и нажмите Pack into "Имя_папки.pbo".
edited 30.10.2025 18:10Author [CU]Syargik