Chief
|
Дата: Среда, 22.10.2014, 13:56 | Сообщение # 1 |
Сообщений: 145
Администраторы
|
Данный скрипт позволяет автоматически заполнить ящик с боеприпасами всем что только доступно в игре, т.е винтовками, пистолетами, гранатами, минами, предметами снаряжения и т.д.
Применение: Просто разместите ящик с боеприпасами на карте через игровой редактор и поместите следующее в поле инициализации:
nul = [this] execVM "fillCrate.sqf";
Создаем выше указанный файл, задаем ему аналогичное имя и вставляем следующий код:
/* @file Version: v0.1 @file name: fillCrate.sqf @file Author: TAW_Tonic @file edit: 3/5/2013 @file Description: Автоматически заполняет ящик всем доступным вооружением в игре. @usage: скопировать в поле инициализации ящика: nul = [this] execVM "fillCrate.sqf"; */
if(!isServer) exitWith {}; private["_box","_CfgWeapons","_weapons","_items","_wep","_wep_type","_mags","_misc","_mag"]; _box = _this select 0;
clearWeaponCargoGlobal _box; clearMagazineCargoGlobal _box; clearItemCargoGlobal _box; clearBackpackCargoGlobal _box;
_CfgWeapons = configFile >> "cfgWeapons"; _weapons = []; _items = []; _misc = [];
for "_i" from 0 to (count _Cfgweapons)-1 do { _weapon = _CfgWeapons select _i;
if(isClass _weapon) then { _wep = configName _weapon; _wep_type = getNumber(_weapon >> "type"); _scope = getNumber(_weapon >> "scope");
if(_scope == 2 && _wep_type != 65536) then { if(_wep_type in [1,2,4,5,4096] && _wep != "NVGoggles") then { _weapons set[count _weapons,_wep]; } else { _items set[count _items,_wep]; }; }; }; };
//Создает массив для Гранат/Мин {_misc=_misc+getArray (configFile/"CfgWeapons"/"Throw"/_x/"magazines")} forEach getArray (configFile/"CfgWeapons"/"Throw"/"muzzles"); {_misc=_misc+getArray (configFile/"CfgWeapons"/"Put"/_x/"magazines")} forEach getArray (configFile/"CfgWeapons"/"Put"/"muzzles");
{ _box addMagazineCargoGlobal [_x,100]; } foreach _misc;
//Добавляет оружие & патроны { _box addWeaponCargoGlobal [_x,100]; diag_log format["Weapon %1 added", _x];
_mags = getArray(configFile >> "CfgWeapons" >> _x >> "magazines");
if(count _mags > 0) then { { if(!(_x in ((getMagazineCargo _box) select 0))) then { _box addMagazineCargoGlobal [_x,100]; diag_log format["Magazine %1 added", _x]; }; } foreach _mags; }; } foreach _weapons;
//Добавляет предметы { _box addItemCargoGlobal [_x,100]; } foreach _items;
|
|
|