Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- systemChat "air_weapons.sqf start";
- if(!isNil{(actions_ids)}) then {
- [] call (actions_remove);
- };
- actions_ids = [];
- actions_addId = {
- (actions_ids) set [count (actions_ids), _this];
- };
- actions_remove = {
- {
- player removeAction _x;
- } forEach (actions_ids);
- actions_ids = [];
- };
- actions_addBack = {
- player addAction [
- "<t color='#cccccc'><img image='\A3\ui_f\data\gui\rsc\rscdisplayarcademap\icon_sidebar_show.paa' size='0.7' /> ... Back</t>",
- ([_this,0,{[] call (menu_main);}] call BIS_fnc_param),
- ([_this,1,[]] call BIS_fnc_param),
- 1000
- ] call (actions_addId);
- };
- weapons_classes=[];
- weapons_displayNames=[];
- weapons_magazines_classes=[];
- weapons_magazines_displayNames=[];
- weapons_magazines_counts=[];
- _cfgWeapons = configFile >> "CfgWeapons";
- _cfgMagazines = configFile >> "CfgMagazines";
- _cfgVehicles = configFile >> "CfgVehicles";
- for "_i" from 0 to ((count _cfgVehicles)-1) do {
- _current = _cfgVehicles select _i;
- if(isClass(_current)) then {
- _weapons = [];
- if(
- (configName(_current) iskindof "car") ||
- (configName(_current) iskindof "air") ||
- true
- ) then {
- _weapons=getArray(_current>>"weapons");
- _cfgTurrets=_current>>"Turrets";
- for "_y" from 0 to (count _cfgTurrets)-1 do {
- {
- _weapons pushBack _x;
- } forEach getArray((_cfgTurrets select _y)>>"weapons");
- };
- };
- if(count(_weapons)>0) then {
- {
- _displayName = getText(_cfgWeapons>>_x>>"DisplayName");
- if(_displayName!="" && !(_displayName in (weapons_displayNames))) then {
- (weapons_classes) pushBack _x;
- (weapons_displayNames) pushBack _displayName;
- _magazines_classes = getArray(_cfgWeapons>>_x>>"Magazines");
- (weapons_magazines_classes) pushBack _magazines_classes;
- _magazines_displayNames = [];
- _magazines_counts = [];
- {
- _magazines_displayNames pushBack getText(_cfgMagazines>>_x>>"DisplayName");
- _magazines_counts pushBack getNumber(_cfgMagazines>>_x>>"Count");
- } forEach _magazines_classes;
- (weapons_magazines_displayNames) pushBack _magazines_displayNames;
- (weapons_magazines_counts) pushBack _magazines_counts;
- };
- } forEach _weapons;
- };
- };
- };
- weapons_removeAll = {
- private "_tgt";
- _tgt = vehicle player;
- _curWeps = weapons vehicle player;
- _curMags = magazines vehicle player;
- _turMagDvr = _tgt magazinesTurret [-1];
- _turMag0 = _tgt magazinesTurret [0];
- _turMag1 = _tgt magazinesTurret [1];
- _turMag2 = _tgt magazinesTurret [2];
- while {count weapons _tgt > 0} do
- {
- {_tgt removeWeapon _x} forEach _curWeps;
- };
- while {count magazines _tgt > 0} do
- {
- {_tgt removeMagazine _x} forEach _curMags;
- };
- while {count (_tgt magazinesTurret [-1]) > 0} do
- {
- {_tgt removeMagazinesTurret [_x,[-1]]} forEach _turMagDvr;
- };
- while {count (_tgt magazinesTurret [0]) > 0} do
- {
- {_tgt removeMagazinesTurret [_x,[0]]} forEach _turMag0;
- };
- while {count (_tgt magazinesTurret [1]) > 0} do
- {
- {_tgt removeMagazinesTurret [_x,[1]]} forEach _turMag1;
- };
- while {count (_tgt magazinesTurret [2]) > 0} do
- {
- {_tgt removeMagazinesTurret [_x,[2]]} forEach _turMag2;
- };
- };
- magazine_add = {
- vehicle player addMagazine (_this select 1);
- if(!((_this select 0) in weapons vehicle player)) then {
- vehicle player addWeapon (_this select 0);
- };
- };
- menu_magazines = {
- [] call (actions_remove);
- _index = (weapons_classes) find (_this select 0);
- _classes = (weapons_magazines_classes) select _index;
- _counts = (weapons_magazines_counts) select _index;
- {
- (player addAction [
- format["Add %1 (%2)",_x,_counts select _forEachIndex ],
- { (_this select 3) call (magazine_add); },
- [ (_this select 0), _classes select _forEachIndex ],
- 1000
- ]) call (actions_addId);
- } forEach ((weapons_magazines_displayNames) select _index);
- [] call (actions_addBack);
- };
- getVehicleSpace = {
- };
- menu_weapons = {
- [] call (actions_remove);
- [] call (actions_addBack);
- (player addAction [
- format["Remove all weapons (%1)", count weapons vehicle player],
- { (_this select 3) call (weapons_removeAll); },
- [],
- 1000
- ]) call (actions_addId);
- {
- (player addAction [
- format["Add %1 ...",_x],
- { (_this select 3) call (menu_magazines); },
- [(weapons_classes) select _forEachIndex],
- 1000
- ]) call (actions_addId);
- } forEach (weapons_displayNames);
- };
- menu_main = {
- [] call (actions_remove);
- (player addAction [
- "Add Weapons...",
- { call (menu_weapons); },
- [],
- 1000
- ]) call (actions_addId);
- };
- [] call (menu_main);
- systemChat "air_weapons.sqf end";
Advertisement
Add Comment
Please, Sign In to add comment