tSF: Simple Mission Creation - 10Dozen/dzn_tSFramework GitHub Wiki
- Используйте tSF 3DEN Tool для расстановки игровых персонажей - функции Add Playable Squad.
Иначе:
-
Базовый юнит - NATO - Rifleman/Стрелок. Обязательно используйте стандартные юниты/фракции Arma 3!
-
В одной группе (пехота): 1 + 4 + 4 человека (9) по доктрине NATO, 1 + 3 + 3 + 2 члена экипажа (9) + 1 БТР/БМП по доктрине РФ. См. доктрины
-
В настройках группы укажите позывной группы, если это необходимо (на слотинге эти значения не применятся, однако после старта игры отрядам присвоится указанный позывной). Установите Behavior / Поведение = Safe / Безопасно, отметьте чекбокс Playable / Играет
-
Редактируем каждого юнита в отряде (в порядке присоединения юнитов к группе) и назначаем Описание\Role Description роли и Звание\Rank:
Infantry squad NATO:
1'1 Squad Leader или 1'2 Squad Leader (Sergeant/Сержант)
RED - FTL (Corporal/Капрал)
Automatic Rifleman
Grenadier
Rifleman
BLUE - FTL (Corporal/Капрал)
Automatic Rifleman
Grenadier
Rifleman
Для роли лидера взвода:
Platoon Leader (Lieutenant/Лейтенант)
МСО РФ:
1'1 Командир отделения или 1'2 Командир отделения (Sergeant/Сержант)
Наводчик-оператор (Corporal/Капрал)
Механик-водитель
RED- Старший стрелок (Corporal/Капрал)
Стрелок (ГП)
Стрелок
BLUE - Пулеметчик
Стрелок-Гранатометчик
Стрелок, помощник гранатометчика
Для роли лидера взвода:
Командир Взвода (Lieutenant/Лейтенант)
Транспорт
- Установите достаточое количество машин (или другой техники) если они могут понадобится игрокам для достижения зоны операции. Обязательно ставьте технику сразу БЕЗ экипажа.
- Добавьте в транспорт необходимое снаряжение (например, боеприпасы, медикаменты и т.п.)
В файле dzn_tSFramework_Init.sqf в директории \dzn_tSFramework\ находятся общие настройки tSFramework.
Для включения или отключения модулей отредактируйте строки в разделе MODULES, поставив напротив перечисленных переменных значение true (включить) или false (отключить).
Например, чтобы отключить модуль CCP, следует указать tSF_module_CCP = false;
Откройте файл tSF_Briefing_Helper.html в любом браузере и заполните все поля информацией о миссии. Используйте переключатель 'EN'/'RU' в меню для смены языка названий разделов брифинга.
Нажмите 'Get file', чтобы экспортировать брифинг в виде файла tSF_briefing.sqf.
Переместите файл в папку \dzn_tSFramework\Modules\Briefing (с заменой уже существующего)
Добавьте в миссию объект Игровая логика/Game Logic с названием tsf_CCP. Создайте достаточное количество триггеров, представляющих области, где может быть безопасно размещен пункт оказания помощи раненым. Синхронизируйте созданные триггеры с объектом tsf_CCP.
Откройте файл Settings.sqf и настройте модуль:
dzn_tsf_CCP_HealTime - (число) время в секундах , которое необходимо провести на CCP для излечения;
dzn_tsf_CCP_Radius - (число) радиус в котором нужно находится, чтобы получить лечение;
dzn_tsf_CCP_PreventPlayerDeath - true - предотвращает смерть игрока при нахождении в радиусе CCP;
dzn_tsf_CCP_DefaultComposition - (строка) название композиции (набора объектов), см. в файле DefaultCompositions;
Раздел // Texts - текст отображаемый при нахождении в CCP
Откройте файл Settings.sqf и настройте модуль:
tsf_intro_lineText1 - дата в формате ДД/ММ/ГГГГ (например, "31/12/2015")
tsf_intro_lineText2 - место действия в формате "населенный пункт, область\регион\страна" (например, "Шукуркалай, Центральный Такистан")
tsf_intro_lineText3 - название операции (например, "Операция ""Восход""")
Каждая миссия должна чем-то оканчиваться. Как минимум должен быть один позитивый и один негативный конец.
Откройте файл Settings.sqf и настройте модуль:
PlayersBaseTrigger - если вы хотите создать область в которую должны вернуться игроки для завершения миссии, то добавьте триггер и назовите его, например, baseTrg, а затем установите значение PlayersBaseTrigger = baseTrg;. Если подобная область не нужна, то установите значение PlayersBaseTrigger = "";
tSF_MissionCondition_DefaultCheckTimer - (число), величина интервала между проверками условий завершения, в секундах. Рекомендуется значение в пределах 15...60 секунд.
MissionCondition1 - описание одной из концовок миссии в формате [ "WIN", "!alive target", 30 ], где "WIN" - название концовки, "!alive target" - условие наступуления концовки (код должен возвращать true/false), 30 - интервал в секундах между проверками условия (если не указан, то используется интервал по умолчанию). Чтобы добавить новые концовки, добавьте переменную MissionCondition%1, где %1 - номер концовки, от 1 до 20.
Откройте файл tSF_Mission_Endings_Helper.html в любом браузере и добавьте необходимые концовки (название концовки, короткое и полное описание для экрана дебрифинга). Нажмите 'Get file', чтобы получить файл Endings.hpp. Поместите файл в папку \dzn_tSFramework\Modules\MissionConditions\ (замените существующий).
Примеры условий:
- Объект уничтожен и игроки отступили: ["WIN_TGT_DESTOYED", "!alive TGT && {call fnc_CheckPlayersReturned}", 45]
- Объект уничтожен, но игроки погибли: ["WIN_WIPED_OUT", "!alive TGT && {{alive _x} count (call BIS_fnc_listPlayers) < 1}", 15]
- Все игроки погибли: ["WIPED_OUT", "{alive _x} count (call BIS_fnc_listPlayers) < 1", 60]. Имейте ввиду, что если используется условие типа "Объект уничтожен, но игроки погибли", то проверка "Все игроки погибли" должна учитывать состояние и самого объекта (т.е. не просто - игроки погибли, но - игроки погибли, объект не уничтожен), например: ["FAIL_WIPED_OUT", "alive TGT && { {alive _x} count (call BIS_fnc_listPlayers) < 1 }", 60]
В файле Settings.sqf находятся настрйоки для фриз-тайма на старте миссии:
tSF_MissionDefaults_DisableInputOnStart - включить\выключить фриз-тайм.
tSF_MissionDefaults_DisableInputTimer - время фриз-тайма (в секундах).
В файле Init.sqf находятся две команды:
enableSaving [false,false]; // Отключает возможность сохранения в миссии
player addRating 1000000; // Добавляет каждому игроку рейтинг, чтобы случайное убийство дружественных юнитов не приводило к невозможности пользоваться общим транспортом
Откройте файл Settings.sqf и настройте какие из заметок должны быть доступны для игроков:
tSF_note_displayName = "tS Notes"; // Название раздела на экране брифинга
tSF_note_enableNineliner = true; // Запрос CAS 9-линий
tSF_note_enableArtilleryControl = true; // Запрос артиллерийского удара
tSF_note_enableAdvancedMedicine = true; // Оказание первой помощи
tSF_note_enableReports = true; // Типы и формат отчетов
tSF_note_enableMEDEVAC = true; // Запрос воздушной мед.эвакуиации
В файле Notes.sqf находится сам текст заметок (с разметкой)
Откройте файл Settings.sqf и настройте какие из заметок должны быть доступныдля игроков:
tSF_noteSettings_displayName = "tS Settings"; // Название раздела на экране брифинга
tSF_noteSettings_enableViewDistance = true; // Возможность настройки дальности видимости
tSF_noteSettings_enableThinLineMarkers = true; // Возможность настройки ширины линий (ACE Maptool)
tSF_noteSettings_thinLineMarkers_lineSize = 1; // Ширина линий по-умолчанию, метры (ACE Maptool)
Добавьте новый параметр в файл description.ext в секцию Params:
class Params
{
class dzn_brv_enabled {...};
class par_daytime
{
title = "Время суток"; // Отображаемое названия параметра
values[] = {0,1}; // Значение, присваемое параметру при выборе
default = 0; // Значение по умолчанию
texts[] = {"День","Ночь"}; // Названия доступных значений (values[])
};
};
Где class par_daytime - имя параметра, который следует указывать в вызове функции BIS_fnc_getParamValue, которая возвращает выбранное значение values[] (в нашем случае - 0 или 1):
"par_daytime" call BIS_fnc_getParamValue
В description.ext:
class par_daytime
{
title = "Время суток";
values[] = {0,1};
default = 0;
texts[] = {"День","Ночь"};
};
В самое начало init.sqf (до вызова dzn_gear):
if ("par_daytime" call BIS_fnc_getParamValue == 0) then {
setDate [2016,7,7,10 + round(random 4), 00]; // в формате [Год, Месяц, День, Час, Минуты]
} else {
setDate [2016,7,7, 21 + round(random 8), 00];
};
В description.ext:
class par_weather
{
title = "Погода";
values[] = {0,1,2,3,4,5};
texts[] = {
"Случайно"
,"Ясно"
,"Облачно"
,"Пасмурно"
,"Дождь"
,"Гроза"
};
default = 0;
};
В initServer.sqf:
("par_weather" call BIS_fnc_getParamValue) spawn dzn_fnc_setWeather;
Используйте dzn_gear (входит в dzn_dynai) для выдачи снаряжения союзным и вражеским силам. См. подробную инструкцию. Наборы для ванильных юнитов доступны в wiki репозитории dzn_gear.
Не забудьте всем юнитам выдать индивидуальные наборы первой помощи. Замените строку UNIFORM ITEMS в ваших наборах следующей (кроме различных бинтов также включает пластикоые наручники, фонарик и беруши):
["<UNIFORM ITEMS >> ",[["ACE_fieldDressing",5],["ACE_packingBandage",5],["ACE_elasticBandage",5],["ACE_tourniquet",2],["ACE_morphine",2],["ACE_epinephrine",2],["ACE_quikclot",5],["ACE_CableTie",2],["ACE_Flashlight_MX991",1],["ACE_EarPlugs",1]]],
Командирам взвода и отделений необходимо выдать ДВ-радиостанцию (рюкзак), инструменты карты (ACE_Maptools) и бинокль\дальномер (Nite 21, Vector).
Также не будет лишним выдать по 1-2 дымовые гранаты (разного цвета) всем командирам и лидерам команд.
Если иного не предусмотрено условиями миссии, то все юинты должны иметь следующие предметы в наборе (карта, часы, компас, КВ-радио):
["<ASSIGNED ITEMS >> ","ItemMap","ItemCompass","ItemWatch","ItemRadio"],
Squad Leader, Platoon Leader, Командир отделения, Командир взвода
- Винтовка, (опц.) прицел 4х или коллиматорный\открытый, (опц.) ЛЦУ
- x6-8 магазинов (опц. 1 с трассерными)
- (опц.) пистолет, 3 магазина
- х1-2 ручные гранаты
- x1-2 ручные дымовые гранаты
- Бинокль\Дальномер, инструменты карты
- ДВ рация
FTL, Старший стрелок
- Винтовка (опц. с подствольным гранатометом) или легкий пулемет (типа РПК), прицел 4х или коллиматорный\открытый, (опц.) ЛЦУ
- x8 магазинов (опц. 1 с трассерными)
- x6 гранат для подствольного гранатомета (осколочные)
- х4 гранат для подствольного гранатомета (цветной дым или осветительные)
- х1-2 ручные гранаты
- x1-2 ручные дымовые гранаты
Grenadier, Стрелок (ГП)
- Винтовка с подствольным гранатометом, коллиматорный\открытый, (опц.) ЛЦУ
- x8-10 магазинов (опц. 1 с трассерными)
- x6-10 гранат для подствольного гранатомета
- х1-2 ручные гранаты
- (опц.) одноразовый гранатомет типа РШГ\РПГ-18\АТ-4
Automatic Rifleman, Пулеметчик
- Пулемет, (опц.) прицел 4х, (опц.) ЛЦУ
- 2-3х коробки по 100
- х1-2 ручные гранаты
Rifleman, Стрелок, Стрелок помощник гранатометчика, Гранатометчик
- Винтовка, (опц.) коллиматорный прциел, (опц.) ЛЦУ
- x8-10 магазинов (опц. 1 с трассерными)
- х2-3 ручные гранаты
- Рюкзак с: 2-3 коробками для пулемета (или) 2-3 выстрелами для РПГ-7\SMAW
- (опц.) одноразовый гранатомет типа РШГ\РПГ-18\АТ-4 (или) РПГ-7\SMAW для гранатометчика + пристрелочные патроны