ФЭНДОМ


ВведениеПравить

description.ext является текстовым файлом, расположенным в корневой папке миссии, который позволяет определить множество параметров миссии. Каждое определение должно начинаться с новой строки. description.ext фактически использует тот же синтаксис как все файлы конфигурации, таким образом каждая строка должна заканчиваться ;. OFP допускает пропущенные точку с запятой, синтаксис в Arma соблюдается более строго и каждая строка должна заканчиваться ;.


OnLoad...Править

OnLoadMissionПравить

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

OnLoadMission = "Название Вашей Миссии";

OnLoadMission используется для отображения названия миссии. В мультиплеере - это имя которое вы можете видеть при выборе миссии и которое отображается в обозревателе GameSpy. Если данная опция отсутствует в description.ext то используется имя файла. *примечание: нуждается в проверке.


OnLoadIntroПравить

OnLoadIntro = "Ваше сообщение";// заголовок, который появится на экране во время брифинга.

OnLoadIntroTimeПравить

OnLoadMissionTime Определяют, будете ли вы видеть время и дату во время загрузки интро/миссии. Значения могут быть True или False.

OnLoadIntroTime = false; 
OnLoadMissionTime = false;

ScoreПравить

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

MinScore = 0; 
AvgScore = 1800; 
MaxScore = 7500;

Respawn...Править

respawn = тип респауна (см. таблицу);
respawnDelay = задержка в секундах;
respawnVehicleDelay = задержка в секундах;
respawnDialog = 0; // Показывать таблицу очков и таймер до возрождения когда игрок погибает. Используется для типа респауна 3. Значение по умолчанию 1 (true).


Тип респаунаОписание
0 or "NONE"Без респауна.
1 or "BIRD"Возрождение в виде чайки.
2 or "INSTANT"Возрождение на месте гибели.
3 or "BASE"Респаун на базе. Требует наличия следующих маркеров:
  • respawn_west
  • respawn_east
  • respawn_guerrila
  • respawn_civilian

Добавте маркеры имеющие названия с префиксом 'respawn_west' и любым суффиксом (например: respawn_westABC, respawn_west1, respawn_west_2, и так далее) для возрождения на случайном респауне. Аналогично для east, guerrila и civilian.

Респаун для техники требует наличия следующих маркеров:

  • respawn_vehicle_west
  • respawn_vehicle_east
  • respawn_vehicle_guerrila
  • respawn_vehicle_civilian
4 or "GROUP"Возрождение в вашем отряде (Если в нём не осталось AI юнитов, возрождение будет в виде чайки).
5 or "SIDE"Возрождение в AI юнит вашей стороны (если нет AI юнитов, вы возродитесь в виде чайки) -- Введено в ArmA 1.08: При этом типе респауна, team switch доступен для любых играбельных юнитов, контролируемых AI.

SoundsПравить

Существует три типа звуковых эффектов, которые можно определить в description.ext.

  1. Звуки, которые можно использовать для диалога, озвучивания во время брифинга и т. д.: CfgSounds
  2. Фразы, которые используются для радиосообщений,например используя команду sideRadio: CfgRadio
  3. Музыкальные записи, для использования с командой playMusic: CfgMusic


Примеры:

CfgSoundsПравить

class CfgSounds
{
 sounds[] = {};   
  class wolf1
  {
   name = "";
   sound[] = {"\sound\wolf1.ogg", 1, 1};
   titles[] = {};
  };
  class wolf2
  {
   name = "Wolfsong";
   sound[] = {"\sound\wolf2.ogg", 1, 1};
   titles[] = {};
  };
};
  • Использование:
playSound "wolfSong";  // Должно использоваться имя в description.ext. 

position say wolf1;     // Имя файла.

CfgRadioПравить

class CfgRadio
{
 sounds[] = {};
  class RadioMsg1
  {
   name = "";
    sound[] = {"\sound\filename1.ogg", db-100, 1.0};
    title = "Все гражданские в безопастности. Жду дальнейших указаний";
  };

  class RadioMsg2
  {
   name = "";
   sound[] = {"\sound\filename2", db-100, 1.0}; // .wss implied
   title = {$STR_RADIO_2};
  };
};

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

  • использование:
unit sideRadio RadioMsg2

CfgMusicПравить

class CfgMusic
{
 tracks[]={};

 class MarsIntro
 {
  name = "";
  sound[] = {"\music\filename.ogg", db+0, 1.0};
 };
 class Ludwig9
 {
  name = "";
  sound[] = {"\music\filename.ogg", db+10, 1.0};
 };
};
  • использование:
playMusic  "MarsIntro"

ПримечанияПравить

Name может быть оставлено пустым как в приведённом выше примере. Обязательно указывайте имя если хотите использовать звуковой файл в строке окружение триггера. Title - текстовая строка, которая будет отображатся на экране во время воспроизведения звукового файла. См. также Stringtable.csv

Уровень звука (db) музыки, сильно отличающийся от нуля, приведёт к невозможности выполнения команды fadeMusic. Оптимальные значения от -10 до 10.


CfgIdentitiesПравить

В этом разделе вы можете определить уникальные признаки персонажа: лицо, очки, голос и его высоту, его имя. Затем вы можете присвоить данные характеристики юниту в миссии, используя команду setIdentity

Пример:

class CfgIdentities
{
 class John_Doe
 {
  name="John Bartholemew Doe";
  face="Face20";
  glasses="None";
  speaker="Dan";
  pitch=1.1;
 };
};

См. setIdentity для выбора подходящих лица, очков, голоса и т. д.


NameПравить

  • Имя может быть любой строкой, включая пустую и $STR_Anything.

FaceПравить

Лицо

Параметр может принимать любые из следующих значений:

  • Мужского пола: OFP
    • "Face1" до "Face52"
    • "Face99"
    • "FaceR01" до "Face R04" : только Resistance
  • Мужского пола: ArmA
    • "Face1" до "Face53" : ArmA
  • Мужского пола: Arma 2
    • "Face01" до "Face107" : обратите внимание на 0 перед 1-9
  • Женского пола: OFP
    • "Eva"
    • "Kamila"
    • "Lada"
    • "Lucie"
    • "Marketa"
    • "Nada"

GlassesПравить

Очки

  • OFP
    • "None"
    • "Spectacles"
    • "Sunglasses"
  • ArmA
    • "None"
  • Arma 2
    • "None"
    • "Spectacles"
    • "RoundGlasses"
    • "SunGlasses"
    • "Tactical"
    • "BlackSun"
    • "BlueSun"
    • "RedSun"
    • "GreenSun" : На самом деле очки жёлтого цвета.
    • "LHD_glasses" : боевые очки, недоступны через редактор профиля.

SpeakerПравить

Параметр определяет голос и может принимать следующие значения:

  • OFP
    • "Adam"
    • "Dan"
    • "George"
    • "Greg"
    • "John"
    • "Jonah"
    • "Marc"
    • "Patrick"
    • "Paul"
    • "Peter"
    • "Rich"
    • "Rob"
    • "Ted"
    • "Tom"
  • Red Hammer
    • "Aleksei"
    • "Andrei"
    • "Boris"
    • "Georgiy"
    • "Ivan"
    • "Nikolai"
    • "Oleg"
    • "Ruslan"
    • "Sergey"
    • "Vadim"
    • "Vitaliy"
    • "Vladimir"
  • ArmA
    • Amy
    • Brian
    • Dan
    • Dusan
    • Howard
    • Mathew
    • Robert
    • Russell
    • Ryan

Обратите внимание, что голосовые файлы Arma не являются достаточными:

  • В arma.pbo гораздо больше голосовых профилей, чем перечислено выше, но они недоступны.
  • ВО ВСЕХ из перечисленных выше профилей в той или иной степени нехватает звуковых файлов.В некоторых например, есть su25.wss, в других нет.
  • Множество звуковых файлов (более 50%) в каждом профиле недоступны. Например "fifty.wss".*По возможности, если звук голоса имеет значение, используйте исправленные файлы pbo, например cwr_voice.pbo
  • Arma 2
    • Male01
    • Male02
    • Male03
    • Male04
    • Male05

Каждый голос имеет вариант произношения с акцентом, например Male01EN, Male03CZ, Male02RU. EN для английского, CZ для чернорусского, RU для русского.

PitchПравить

Отвечает за тон голоса. 1.0 для нормального; < 1.0 для низкого; >1.0 для высокого.

Keys Править

Начиная с Armed Assault появилась возможность определять ключи для каждой миссии. Ключи используются в сингле для:

  • пометки мисии в списке миссий как завершённой (квадрат слева от названия миссии) и
  • для разблокирования скрытого содержимого.
keys[] = {"key1","key2","key3"};  // Список ключей (необходим для keysLimit)
keysLimit = 2;                    // количество ключей из списка, необходимых для разблокирования миссии.
doneKeys[] = {"key4"};            // Имя ключа (ключей), необходимых для отметки миссии в списке как выполненной.

Обратите внимание, что в отличие от других "текстовых" объектов, $STR_ variables (в файле stringtable.csv миссии) не может использоваться.

Для создания зелёной отметки выполнения, необходимо 2 действия.

1) description.ext

doneKeys[] = {Mission04Key,TotallyFailedKey4};

2) outro.sqs

activateKey "Mission04Key"

'outro.sqs' is poetic licence for whatever-it-is you decide to end a mission in a way that will set this key or keys it is up to you to decide what is successful, and indeed, how you end, your mission

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


см. также: activateKey, isKeyActive


MiscellaneousПравить

disabledAIПравить

Убирает все играбельные юниты, которые не управляются игроками. (в мультиплеере)

Note: Disabling all the AI units will prevent JIP into playable units in OFP:Elite and ArmA.

disabledAI = false/true

briefingПравить

Пропуск брифинга для SP миссий. Если briefing.html не существует, экран брифинга также будет пропущен. Примечание: Введено в 1.05

In VBS2 version +1.30, if set, mission will start soon as all clients are done loading data and will skip the briefing. Note: Briefing will still be displayed untill all clients are connected and done loading.

briefing = 0;

debriefingПравить

Определяет, будет ли показан экран дебрифинга.

debriefing = 0;

Show...Править

ShowGPSПравить

Отображает/скрывает приёмник GPS

ShowGPS = 0;

Примечание: В ArmA 1.04 изменяйте этот параметр для скрытия карты на приёмнике GPS.

ShowCompassПравить

Определяет, виден ли компас.

showCompass = 0;

ShowMapПравить

Определяет, будет ли видна карта после начала миссии.

showMap = 0;

ShowNotePadПравить

В ArmA, определяет, будет ли виден блокнот после запуска миссии.

showNotePad = 0;

ShowPadПравить

Определяет, будет ли виден блокнот после запуска миссии. (кроме ArmA)

showPad = 0;

ShowWatchПравить

Определяет, будут ли видны наручные часы после начала миссии.

showWatch = 0;

DialogsПравить

Диалоги в description.ext также определяются в виде классов.

См. Dialogs для дополнительной информации.

RscTitlesПравить

Класс RscTitles определяет источник изображений, текста и объектов для использования таких команд, как cutRsc, cutText, cutObj, titleRsc, titleText, titleObj.

Пример:

class RscText {
    access = 0;
    type = 0;
    idc = -1;
    colorBackground[] = {0, 0, 0, 0};
    colorText[] = {0.543, 0.5742, 0.4102, 1};
    text = "";
    x = 0;
    y = 0;
    h = 0.037;
    w = 0.3;
    style = 256;
    font = "Zeppelin32";
    sizeEx = 0.03921;
};

class RscTitles {
    titles[] = {IntroImage}; // необязательный параметр
    class IntroImage { 
        idd = -1;   
        movingEnable = false;
        duration = 120;
        fadein = 0;
        name = "My intro image";
        class controls {
            class Image: RscPicture {   
                x = 0;
                y = 0;
                w = 1;
                h = 1;
                text = "IntroImage.paa";
            };
        };
    };
};

Отобразить ресурс:

cutRsc ["IntroImage", "PLAIN", 1];

Пример 2:

class RscText {
    access = 0;
    type = 0;
    idc = -1;
    colorBackground[] = {0, 0, 0, 0};
    colorText[] = {0.543, 0.5742, 0.4102, 1};
    text = "";
    x = 0;
    y = 0;
    h = 0.037;
    w = 0.3;
    style = 256;
    font = "Zeppelin32";
    SizeEx = 0.03921;
};

class RscTitles {
    titles[] = {MyRscTimer};
    class MyRscTimer {
        idd = -1;
        movingEnable =  0;
        duration     =  86400 * 100;
        fadein       =  0;
        fadeout      =  0;
        name = ;
        onLoad = "_this call compile preprocessFileLineNumbers 'MyRscTimer_OnLoad.sqf'";
        class controls  {
            class Time: RscText {
                idc = 100;
                colorBackground[] = {0,0,0,1};
                x = 0.3;
                y = 0.2;
                w = 0.4;
                h = 0.04;
                text = "";
            };
        };
    };
};

Файл MyRscTimer_OnLoad.sqf:

_this spawn {
    disableSerialization;
    _display = _this select 0;
    _ctrl = _display displayCtrl 100;
    waitUntil {
        _ctrl ctrlSetText format ["Time: %1", time];
        isNull _display;
    };
};

Отобразить ресурс MyRscTimer:

1110 cutRsc ["MyRscTimer", "PLAIN"];

Убрать ресурсMyRscTimer:

1110 cutText ["", "PLAIN"];

Weapons, Magazines и BackpacksПравить

Оружие, боеприпас и рюкзаки, доступные для игрока в брифинге, также определяются в description.ext.

Пример:

// Оружие, указывается класс оружия, и параметр count -- количество
class Weapons {
    class AK74 { count = 8; };
    class RPG7V { count = 2; };
    class Binocular { count = 2; };
};

// Магазины
class Magazines {
    class 30Rnd_545x39_AK { count = 32; };
    class PG7V { count = 6; };
    class HandGrenade { count = 16; };
};

// Рюкзаки, только для OA
class Backpacks {
    class US_Patrol_Pack_EP1 { count = 4; };
    class US_Assault_Pack_EP1 { count = 4; };
};

МультиплеерПравить

Параметры сетевой игры: TitleParam1 и TitleParam2Править

Параметры TitleParam1 и TitleParam2 позволяют добавить в мультиплеерную миссии опции, задаваемые администратором сетевой игры. Эти опции будут доступны по нажатию кнопки "Параметры" на экране "Установки сетевой игры".

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

Необходимые параметры и их значения:

  • titleParam1 (а также titleParam2) --- название параметра, строка, рекомендуется использовать ссылку на стрингтейбл;
  • valuesParam1 (а также valuesParam2) --- предлагаемые варианты значения параметра, массив чисел;
  • textsParam1 (а также textsParam1) --- названия предлагаемых вариантов значений параметра, массив строк, рекомендуется использовать ссылки на стрингтейбл;
  • defValueParam1 (а также defValueParam2) --- значение выбора по умолчанию.


Примеры:

titleParam1 = "$STR_mpParamTitle_TimeLimit";
valuesParam1[] = {0, 300, 600, 900};
defValueParam1 = 900;
textsParam1[] = {"$STR_mpParam_Unlimited", "$STR_mpParam_5min", "$STR_mpParam_10min", "$STR_mpParam_15min"};

titleParam2 = "$STR_mpParamTitle_ScoreToWin";
valuesParam2[] = {10000, 5, 7, 10, 15, 20, 25, 30};
defValueParam2 = 5;
textsParam2[] = {"$STR_mpParam_Unlimited", 5, 7, 10, 15, 20, 25, 30};

Теперь в скриптах миссии появятся две предустановленные переменные param1 и param2, содержащие опции, выбранные перед стартом игры.

Определение множества параметров, класс ParamsПравить

Патч Arma 2: Patch v1.03.58899 Beta добавил поддержку любого количества параметров:

class Params {
    class Score {
        title = "$STR_mpParamTitle_score";
        values[] = {10,200};
        texts[] = {"10", "200"};
        default = 10;
    };
    class Duration {
        title = "$STR_mpParamTitle_duration";
        values[] = {1, 2};
        texts[] = {"$STR_mpParam_OneHour", "$STR_mpParam_TwoHours"};
        default = 1;
    };
    // etc.
};

Класс Params перечисляет параметры сетевой игры (дисплей "Установки сетевой игры", кнопка "Параметры"). Класс, одного, конкретного параметра, может иметь любое имя, и должен иметь следующие свойства:

  • title --- название параметра, строка, рекомендуется использовать ссылку на стрингтейбл;
  • values --- предлагаемые варианты значения параметра, массив чисел;
  • texts --- названия предлагаемых вариантов значений параметра, массив строк;
  • default --- выбор по умолчанию

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

  1. Если кроме класса Params использовались параметры titleParam1 и titleParam2, то они также будут включены в начало массива paramsArray, независимо от того как они были расположены в конфиге, выше класса Params или ниже.
  2. Свойство values может содержать только числа, для любого выбранного не числового значения paramsArray будет содержать 0.
  3. Значение свойства default должно совпадать с одним из значений в values. Если это условие не будет выполнено, то значение по умолчанию не будет отображено.
  4. Класс отдельного параметра, не содержащий свойства values, не будет отображен в списке параметров.
  5. Если количество элементов texts не совпадает с количеством элементов в values, то в качестве описания выбора будут использоваться числа из values

Класс HeaderПравить

With the introduction of OFP:Elite, BI started to include a new class definition in the description.ext. The purpose of this class definition is to signal the engine the gameType which is displayed in the MP game browser. This can assist other players for finding particular missions using the filters.


Вот простой пример класса Header:

class Header {
    gameType = "COOP";  // тип игры, одно из следующий значений: DM, CTF, FF, Coop, Team, Scont, Hold, Unknown
    minPlayers = 1;     // Минимальное количество игроков, поддерживаемое миссией
    maxPlayers = 4;     // Максимальное количество игроков, поддерживаемое миссией
};

gameTypeПравить

Существуют несколько основных типов миссий.

DM         = Death Match
CTF        = Захват флага
FF         = Битва за флаг
Coop       = Совместное прохождение
Team       = Командное задание
Scont      = Контроль сектора
Hold       = Удержать район
Unknown    = Используется если класс header не определён.

playerCountMultipleOfПравить

playerCountMultipleOf was introduced in OFP:Elite, the game server would set the maximum amount of players based on bandwidth and eventually this parameter. The default is 2, so it means the mission will try to balance the game to multiples of 2 (2 vs 2, 4 vs 4, etc.) and you did not end up with a team mission with 5 maximum players(2 vs 3 is unfair?). Coop type missions use 1, Team type missions use 2(default).

NotesПравить

In OFP:Elite this file is required for MP missions. If this is not included -1 error is shown when selecting a mission and the mission won't load.

In ArmA if this class is missing the mission will still load with an error in the RPT file and the mission type will be considered Unknown.

Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA , если не указано иное.