Переменные. Пример 1.

Пожалуй это станет первая статья по основам.
Прошу прощения что немного в кашу, ибо формат подачи такого материала ещё не освоен, но я исправлюсь 😉

 



 

Пример:

Например, нам надо:

  1. Создать ящик.
  2. В нём убрать всё лишнее.
  3. Накидать в него то, что мы считаем нужным.
// Создаём объект: класснейм объекта - создать - на какой точке координат (можно использовать координаты объекта через getPos)
_box = "Box_NATO_AmmoOrd_F" createVehicle [4749.09,8115.94,0];
// Поворачиваем объект
_box setDir 90;
// Убрираем из него всё что там есть изначально
clearItemCargoGlobal _box ;
clearMagazineCargoGlobal _box;
clearWeaponCargoGlobal _box;
clearBackpackCargoGlobal _box;
// Добавляем в него жилет - класснейм, количество
_box addItemCargoGlobal ["V_RebreatherB", 5]; // Классы тут: https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Equipment
// Добавляем в него рюкзак - класснейм, количество
_box addBackpackCargoGlobal ["B_Carryall_cbr",3]; // Классы тут: https://community.bistudio.com/wiki/Arma_3_CfgVehicles_Equipment
// Добавляем в него оружие - класснейм, количество
_box addWeaponCargoGlobal ["srifle_DMR_04_F", 1]; // Классы тут: https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Weapons
// Добавляем в него магазины - класснейм, количество
_box addMagazineCargoGlobal ["10Rnd_127x54_Mag",2]; // Классы тут: https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Weapons

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

У ящика есть переменная, в нашем случае это : _box

И после этого действа — с ней уже ничего не поделать, если только использовать по новой.
Так как ArmA уже отработала эту переменную, и как бы сказать поточнее.. — «забыла».
Хотя такое высказывание не до конца верное.

Точнее будет сказать, что вы можете делать с ней всё что угодно в данном «скоупе» (об этом как нибудь расскажем) пока нам это надо.
А потом ей можно переназначить её значение, и она будет использоваться для других целей.

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

 



 

А вот если нам понадобится оперировать именно с этой переменной, и именно в той роли что мы ей дали изначально (ящик с припасами разными) — то тогда мы будем писать уже не _box а box

Разница в том, что в первом случае она локальная (так же называют приватная), а во втором она глобальная.
То есть локальную переменную после исполнения мы не сможем уже менять — так как её уже нет в природе, она снова свободна для применения с новой или такой же задачей.

А вот глобальную переменную мы можем хоть сколько дёргать, но она занимает место в память миссии, и лишний раз это делать не стоит.
Но вот только лишний раз совать глобальные переменные нафиг не надо, и тут о глобальной переменной говорится только для общего развития.

Хотя, в коробку можно будет с помощью нового скрипта добавить магазины и прочее, если нужно конечно. По мне так проще новую создать тем же кодом, или просто изначально рассчитать размер коробки (да, у них разная вместительность) и количество того, что туда кладёте, чем пихать игре лишние глобальные переменные

Опять же, если нам надо удалить эту самую коробку, то проще будет в конце кода прописать код (чем делать её глобальной переменной):

// Задержка. В секундах
sleep 5;
// Команда на удаление этого объекта
deletevehicle _box;

Код просто для примера. Время и всё прочее выбирайте на свой вкус, если вам это вообще надо будет удалять.

Если же что-то непонятно, то можно спросить / уточнить в нашем Discord канале