mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
opps
This commit is contained in:
@ -6,11 +6,9 @@ class CfgVehicles {
|
|||||||
displayName = "$STR_ACE_MagazineRepack_RepackMagazines";
|
displayName = "$STR_ACE_MagazineRepack_RepackMagazines";
|
||||||
condition = QUOTE(true);
|
condition = QUOTE(true);
|
||||||
exceptions[] = {"isNotInside"};
|
exceptions[] = {"isNotInside"};
|
||||||
statement = QUOTE([_player] call FUNC(openSelectMagazineUI));
|
insertChildren = QUOTE(_this call FUNC(getMagazineChildren));
|
||||||
showDisabled = 0;
|
|
||||||
priority = -2;
|
priority = -2;
|
||||||
icon = QUOTE(PATHTOF(UI\repack_ca.paa));
|
icon = QUOTE(PATHTOF(UI\repack_ca.paa));
|
||||||
hotkey = "R";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
56
addons/magazinerepack/functions/fnc_getMagazineChildren.sqf
Normal file
56
addons/magazinerepack/functions/fnc_getMagazineChildren.sqf
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* Author: PabstMirror,commy2, esteldunedain, Ruthberg
|
||||||
|
* Gets magazine children for interaciton menu
|
||||||
|
*
|
||||||
|
* Argument:
|
||||||
|
* 0: Target <OBJECT>
|
||||||
|
* 1: Player <OBJECT>
|
||||||
|
*
|
||||||
|
* Return value:
|
||||||
|
* ChildActiosn<ARRAY>
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [player, player] call ace_magazinerepack_fnc_getMagazineChildren
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
PARAMS_2(_target,_player);
|
||||||
|
|
||||||
|
// get all mags and ammo count
|
||||||
|
_unitMagazines = [];
|
||||||
|
_unitMagCounts = [];
|
||||||
|
{
|
||||||
|
EXPLODE_2_PVT(_x,_xClassname,_xCount);
|
||||||
|
_xFullMagazineCount = getNumber (configfile >> "CfgMagazines" >> _xClassname >> "count");
|
||||||
|
|
||||||
|
if ((_xCount != _xFullMagazineCount) && {_xCount > 0}) then {//for every partial magazine
|
||||||
|
_index = _unitMagazines find _xClassname;
|
||||||
|
if (_index == -1) then {
|
||||||
|
_unitMagazines pushBack _xClassname;
|
||||||
|
_unitMagCounts pushBack [_xCount];
|
||||||
|
} else {
|
||||||
|
(_unitMagCounts select _index) pushBack _xCount;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} forEach (magazinesAmmoFull _player);
|
||||||
|
|
||||||
|
_childCondition = {
|
||||||
|
PARAMS_2(_target,_player,_classname);
|
||||||
|
(_classname in (magazines _player)) && {[_player, _player, ["isNotInside"]] call EFUNC(common,canInteractWith)};
|
||||||
|
};
|
||||||
|
|
||||||
|
//Create the action children for all appropriate magazines
|
||||||
|
_actions = [];
|
||||||
|
{
|
||||||
|
if ((count (_unitMagCounts select _forEachIndex)) >= 2) then {// Ignore invalid magazines types (need 2+ partial mags to do anything)
|
||||||
|
_displayName = getText (configFile >> "CfgMagazines" >> _x >> "displayName");
|
||||||
|
_picture = getText (configFile >> "CfgMagazines" >> _x >> "picture");
|
||||||
|
|
||||||
|
_action = [_x, _displayName, _picture, {_this call FUNC(startRepackingMagazine)}, _childCondition, {}, _x] call EFUNC(interact_menu,createAction);
|
||||||
|
_actions pushBack [_action, [], _player];
|
||||||
|
};
|
||||||
|
} forEach _unitMagazines;
|
||||||
|
|
||||||
|
_actions
|
Reference in New Issue
Block a user