Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- systemChat "air_weapons.sqf";
- // execvm "dev\air_weapons.sqf";
- /*
- vehicle player addAction ["<t color='#FF6600'>EJECT</t>",{
- _pos = getPos vehicle player;
- _vel = velocity vehicle player;
- player setPos [ _pos select 0, _pos select 1, (_pos select 2) +5];
- player setvelocity [_vel select 0, _vel select 1, (_vel select 2) + 50];
- }, "", 0, false, false, "", "player in _this"];
- */
- #define PREFIX aero
- #define COMPONENT air_weapons
- //#define DEBUG_MODE
- #define DOUBLES(A,B) ##A##_##B
- #define TRIPLES(A,B,C) ##A##_##B##_##C
- #define QUOTE(A) #A
- #define CONCAT(A,B) A####B
- #define GVAR(A) TRIPLES(PREFIX,COMPONENT,A)
- #define QGVAR(A) QUOTE(GVAR(A))
- #define INC(A) A=(A)+1
- #define DEC(A) A=(A)-1
- #define ADD(A,B) A=(A)+(B)
- #define SUB(A,B) A=(A)-(B)
- #define REM(A,B) A=A-[B]
- #define EL(A,B) ((A) select (B))
- #define THIS(A) EL(this,A)
- #define _THIS(A) EL(_this,A)
- if(!isNil{GVAR(actions_ids)}) then {
- [] call GVAR(actions_remove);
- };
- GVAR(actions_ids) = [];
- GVAR(actions_addId) = {
- GVAR(actions_ids) set [count GVAR(actions_ids), _this];
- };
- GVAR(actions_remove) = {
- {
- player removeAction _x;
- } forEach GVAR(actions_ids);
- GVAR(actions_ids) = [];
- };
- GVAR(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 GVAR(menu_main);}] call BIS_fnc_param),
- ([_this,1,[]] call BIS_fnc_param),
- 1000
- ] call GVAR(actions_addId);
- };
- GVAR(weapons_classes)=[];
- GVAR(weapons_displayNames)=[];
- GVAR(weapons_magazines_classes)=[];
- GVAR(weapons_magazines_displayNames)=[];
- GVAR(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 GVAR(weapons_displayNames))) then {
- GVAR(weapons_classes) pushBack _x;
- GVAR(weapons_displayNames) pushBack _displayName;
- _magazines_classes=getArray(_cfgWeapons>>_x>>"Magazines");
- GVAR(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;
- GVAR(weapons_magazines_displayNames) pushBack _magazines_displayNames;
- GVAR(weapons_magazines_counts) pushBack _magazines_counts;
- };
- } forEach _weapons;
- };
- };
- };
- /*
- _type==65536 // rocket pods
- _count>10 //
- _target = vehicle player;
- if(add
- _config = configFile >> "CfgVehicles";
- getArray(_config>>_this>>"Magazines");
- */
- GVAR(weapons_removeAll) = {
- /*{
- vehicle player removeMagazine _x;
- } forEach magazines vehicle player;
- {
- vehicle player removeWeapon _x;
- } forEach weapons vehicle player;*/
- 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;
- };
- };
- // [weapon classname, magazine classname]
- GVAR(magazine_add) = {
- vehicle player addMagazine _THIS(1);
- if(!(_THIS(0) in weapons vehicle player)) then {
- vehicle player addWeapon _THIS(0);
- };
- };
- // [weapon classname]
- GVAR(menu_magazines) = {
- [] call GVAR(actions_remove);
- _index = GVAR(weapons_classes) find _THIS(0);
- _classes = GVAR(weapons_magazines_classes) select _index;
- _counts = GVAR(weapons_magazines_counts) select _index;
- {
- (player addAction [
- format["Add %1 (%2)",_x,_counts select _forEachIndex ],
- { _THIS(3) call GVAR(magazine_add); },
- [ _THIS(0), _classes select _forEachIndex ],
- 1000
- ]) call GVAR(actions_addId);
- } forEach (GVAR(weapons_magazines_displayNames) select _index);
- [] call GVAR(actions_addBack);
- };
- // [typeof vehicle}
- GVAR(getVehicleSpace) = {
- };
- GVAR(menu_weapons) = {
- [] call GVAR(actions_remove);
- [] call GVAR(actions_addBack);
- (player addAction [
- format["Remove all weapons (%1)", count weapons vehicle player],
- { _THIS(3) call GVAR(weapons_removeAll); },
- [],
- 1000
- ]) call GVAR(actions_addId);
- {
- (player addAction [
- format["Add %1 ...",_x],
- { _THIS(3) call GVAR(menu_magazines); },
- [GVAR(weapons_classes) select _forEachIndex],
- 1000
- ]) call GVAR(actions_addId);
- } forEach GVAR(weapons_displayNames);
- };
- GVAR(menu_main) = {
- [] call GVAR(actions_remove);
- (player addAction [
- "Add Weapons...",
- { call GVAR(menu_weapons); },
- [],
- 1000
- ]) call GVAR(actions_addId);
- };
- [] call GVAR(menu_main);
- systemChat "air_weapons.sqf end";
Advertisement
Add Comment
Please, Sign In to add comment