Various Changes

This commit is contained in:
PabstMirror 2015-03-20 20:17:49 -05:00
parent f8e758e136
commit 38745f4871
13 changed files with 122 additions and 72 deletions

View File

@ -6,9 +6,9 @@ class CfgVehicles {
class ACE_DisarmInventory { class ACE_DisarmInventory {
displayName = "$STR_ACE_Disarming_OpenInventory"; displayName = "$STR_ACE_Disarming_OpenInventory";
distance = 4; distance = 4;
condition = QUOTE([_target] call FUNC(canDisarm)); condition = QUOTE([ARR_2(_player,_target)] call FUNC(canPlayerDisarmUnit));
statement = QUOTE([ARR_2(_player,_target)] call FUNC(openDisarmDialog)); statement = QUOTE([ARR_2(_player,_target)] call FUNC(openDisarmDialog));
icon = "\a3\Modules_F_Curator\Data\portraitRespawnInventory_ca.paa"; //todo icon = "\a3\Modules_F_Curator\Data\portraitRespawnInventory_ca.paa";
selection = "spine3"; selection = "spine3";
exceptions[] = {}; exceptions[] = {};
}; };

View File

@ -2,7 +2,8 @@
ADDON = false; ADDON = false;
PREP(canDisarm); PREP(canBeDisarmed);
PREP(canPlayerDisarmUnit);
PREP(disarmDropItems); PREP(disarmDropItems);
PREP(eventCallerFinish); PREP(eventCallerFinish);
PREP(eventTargetFinish); PREP(eventTargetFinish);

View File

@ -6,10 +6,10 @@
* 0: Target <OBJECT> * 0: Target <OBJECT>
* *
* Return Value: * Return Value:
* The return value <BOOL> * Can Be Disarmed <BOOL>
* *
* Example: * Example:
* [cursorTarget] call ace_disarming_fnc_canDisarm * [cursorTarget] call ace_disarming_fnc_canBeDisarmed
* *
* Public: No * Public: No
*/ */
@ -17,7 +17,9 @@
PARAMS_1(_target); PARAMS_1(_target);
//Check animationState for putDown anim: //Check animationState for putDown anim
//This ensures the unit doesn't have to actualy do any animation to drop something
//This should always be true for the 3 possible status effects that allow disarming
_animationStateCfgMoves = getText (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState _target) >> "actions"); _animationStateCfgMoves = getText (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState _target) >> "actions");
if (_animationStateCfgMoves == "") exitWith {false}; if (_animationStateCfgMoves == "") exitWith {false};
_putDownAnim = getText (configFile >> "CfgMovesBasic" >> "Actions" >> _animationStateCfgMoves >> "PutDown"); _putDownAnim = getText (configFile >> "CfgMovesBasic" >> "Actions" >> _animationStateCfgMoves >> "PutDown");

View File

@ -0,0 +1,22 @@
/*
* Author: PabstMirror
* Checks the conditions for being able to disarm a unit
*
* Arguments:
* 0: Player <OBJECT>
* 1: Target <OBJECT>
*
* Return Value:
* Can Be Disarm Target <BOOL>
*
* Example:
* [player, cursorTarget] call ace_disarming_fnc_canPlayerDisarmUnit
*
* Public: No
*/
#include "script_component.hpp"
PARAMS_2(_player,_target);
([_target] call FUNC(canBeDisarmed)) &&
{([_player, _target, []] call EFUNC(common,canInteractWith))}

View File

@ -1,6 +1,6 @@
/* /*
* Author: PabstMirror * Author: PabstMirror
* Makes a unit drop items: * Makes a unit drop items
* *
* Arguments: * Arguments:
* 0: caller (player) <OBJECT> * 0: caller (player) <OBJECT>
@ -30,7 +30,7 @@ _fncSumArray = {
}; };
//Sanity Checks //Sanity Checks
if (!([_target] call FUNC(canDisarm))) exitWith { if (!([_target] call FUNC(canBeDisarmed))) exitWith {
[_caller, _target, "Debug: Cannot disarm target"] call FUNC(eventTargetFinish); [_caller, _target, "Debug: Cannot disarm target"] call FUNC(eventTargetFinish);
}; };
if (_doNotDropAmmo && {({_x in _listOfItemsToRemove} count (magazines _target)) > 0}) exitWith { if (_doNotDropAmmo && {({_x in _listOfItemsToRemove} count (magazines _target)) > 0}) exitWith {
@ -38,20 +38,23 @@ if (_doNotDropAmmo && {({_x in _listOfItemsToRemove} count (magazines _target))
}; };
_holder = objNull; _holder = objNull;
//If not dropping ammo, don't use an existing container
if (!_doNotDropAmmo) then { if (!_doNotDropAmmo) then {
//Try to use the same container, if one exists
{ {
if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith { if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith {
_holder = _x; _holder = _x;
}; };
} forEach ((getpos _target) nearObjects ["GroundWeaponHolder", 3]); } forEach ((getpos _target) nearObjects [DISARM_CONTAINER, 3]);
}; };
if (isNull _holder) then { if (isNull _holder) then {
_dropPos = _target modelToWorld [-0.75, 0.75, 0]; _dropPos = _target modelToWorld [0, 0.75, 0];
_dropPos set [2, 0]; _dropPos set [2, ((getPosASL _target) select 2)];
// _holder = createVehicle ["WeaponHolderSimulated", _dropPos, [], 0, "CAN_COLLIDE"]; // _holder = createVehicle ["WeaponHolderSimulated", _dropPos, [], 0, "CAN_COLLIDE"];
_holder = createVehicle ["GroundWeaponHolder", _dropPos, [], 0, "CAN_COLLIDE"]; _holder = createVehicle [DISARM_CONTAINER, _dropPos, [], 0, "CAN_COLLIDE"];
_holder setPosASL _dropPos;
_holder setVariable [QGVAR(holderInUse), false];
_holder setVariable [QGVAR(disarmUnit), _target, true]; _holder setVariable [QGVAR(disarmUnit), _target, true];
}; };
@ -59,12 +62,12 @@ if (isNull _holder) then {
if (isNull _holder) exitWith { if (isNull _holder) exitWith {
[_caller, _target, "Debug: Null Holder"] call FUNC(eventTargetFinish); [_caller, _target, "Debug: Null Holder"] call FUNC(eventTargetFinish);
}; };
//Make sure only one drop operation at a time... //Make sure only one drop operation at a time (using PFEH system as a queue)
if (_holder getVariable [QGVAR(holderInUse), false]) exitWith { if (_holder getVariable [QGVAR(holderInUse), false]) exitWith {
systemChat format ["Debug: %1 - Ground Container In Use, waiting until free", time]; systemChat format ["Debug: %1 - Ground Container In Use, waiting until free", time];
[{ [{
_this call FUNC(disarmDropItems); _this call FUNC(disarmDropItems);
}, _this, 0.05, 0.05] call EFUNC(common,waitAndExecute); }, _this, 0, 0] call EFUNC(common,waitAndExecute);
}; };
_holder setVariable [QGVAR(holderInUse), true]; _holder setVariable [QGVAR(holderInUse), true];
@ -164,7 +167,7 @@ systemChat format ["PFEh start %1", time];
_needToRemoveVest = ((vest _target) != "") && {(vest _target) in _listOfItemsToRemove}; _needToRemoveVest = ((vest _target) != "") && {(vest _target) in _listOfItemsToRemove};
_needToRemoveUniform = ((uniform _target) != "") && {(uniform _target) in _listOfItemsToRemove}; _needToRemoveUniform = ((uniform _target) != "") && {(uniform _target) in _listOfItemsToRemove};
if ((time < _maxWaitTime) && {[_target] call FUNC(canDisarm)} && {_needToRemoveWeapon || _needToRemoveMagazines || _needToRemoveBackpack}) then { if ((time < _maxWaitTime) && {[_target] call FUNC(canBeDisarmed)} && {_needToRemoveWeapon || _needToRemoveMagazines || _needToRemoveBackpack}) then {
//action drop weapons (keeps loaded magazine and attachements) //action drop weapons (keeps loaded magazine and attachements)
{ {
if (_x in _listOfItemsToRemove) then { if (_x in _listOfItemsToRemove) then {
@ -222,18 +225,16 @@ systemChat format ["PFEh start %1", time];
systemChat "Debug: Deleting Dummy"; systemChat "Debug: Deleting Dummy";
clearItemCargoGlobal _holder; clearItemCargoGlobal _holder;
}; };
//Verify we didn't timeout waiting on drop action //Verify we didn't timeout waiting on drop action
if (time >= _maxWaitTime) exitWith { if (time >= _maxWaitTime) exitWith {
_holder setVariable [QGVAR(holderInUse), false]; _holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Drop Actions Timeout"] call FUNC(eventTargetFinish); [_caller, _target, "Debug: Drop Actions Timeout"] call FUNC(eventTargetFinish);
}; };
//If target lost disarm status: //If target lost disarm status:
if (!([_target] call FUNC(canDisarm))) exitWith { if (!([_target] call FUNC(canBeDisarmed))) exitWith {
_holder setVariable [QGVAR(holderInUse), false]; _holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Target cannot be disarmed"] call FUNC(eventTargetFinish); [_caller, _target, "Debug: Target cannot be disarmed"] call FUNC(eventTargetFinish);
}; };
if (_needToRemoveVest && {!((vestItems _target) isEqualTo [])}) exitWith { if (_needToRemoveVest && {!((vestItems _target) isEqualTo [])}) exitWith {
_holder setVariable [QGVAR(holderInUse), false]; _holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Vest Not Empty"] call FUNC(eventTargetFinish); [_caller, _target, "Debug: Vest Not Empty"] call FUNC(eventTargetFinish);

View File

@ -1,6 +1,6 @@
/* /*
* Author: PabstMirror * Author: PabstMirror
* Starts the disarming process from the caller * Recieves a possible error code from FUNC(eventTargetFinish)
* *
* Arguments: * Arguments:
* 0: caller (player) <OBJECT> * 0: caller (player) <OBJECT>
@ -11,7 +11,7 @@
* None * None
* *
* Example: * Example:
* TODO * [player1, player2, "Someting fucked up"] call ace_disarming_fnc_eventCallerFinish
* *
* Public: No * Public: No
*/ */
@ -22,4 +22,4 @@ PARAMS_3(_caller,_target,_errorMsg);
if (_caller != ACE_player) exitWith {}; if (_caller != ACE_player) exitWith {};
systemChat format ["Debug-Caller: Disarm finished from [%1] with code [%2]", _target, _errorMsg]; systemChat format ["Debug-Caller: Disarm finished from [%1] with code [%2]", _target, _errorMsg];
[format ["Problem Removing Item<br/>%1", _errorMsg]] call EFUNC(common,displayTextStructured); diag_log text format ["[ACE_Disarming] %1 - eventCallerFinish: %2", time, _this];

View File

@ -1,6 +1,7 @@
/* /*
* Author: PabstMirror * Author: PabstMirror
* TODO * After FUNC(disarmDropItems) has completed, passing a possible error code.
* Passes that error back to orginal caller.
* *
* Arguments: * Arguments:
* 0: caller <OBJECT> * 0: caller <OBJECT>
@ -11,7 +12,7 @@
* Nothing * Nothing
* *
* Example: * Example:
* eventTargetFinish * [player1, player2, "Someting fucked up"] call ace_disarming_fnc_eventTargetFinish
* *
* Public: No * Public: No
*/ */
@ -21,6 +22,6 @@ PARAMS_3(_caller,_target,_errorMsg);
if (_errorMsg != "") then { if (_errorMsg != "") then {
systemChat _errorMsg; diag_log text format ["[ACE_Disarming] %1 - eventTargetFinish: %2", time, _this];
["DisarmDebugCallback", [_caller], [_caller, _target, _errorMsg]] call EFUNC(common,targetEvent); ["DisarmDebugCallback", [_caller], [_caller, _target, _errorMsg]] call EFUNC(common,targetEvent);
}; };

View File

@ -1,6 +1,7 @@
/* /*
* Author: PabstMirror * Author: PabstMirror
* TODO * Disarm Event Handler, Starting func, called on the target.
* If target has to remove uniform/vest, this will add all uniform/vest items to the drop list.
* *
* Arguments: * Arguments:
* 0: caller (player) <OBJECT> * 0: caller (player) <OBJECT>

View File

@ -16,18 +16,28 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define TEXTURES_RANKS [ \
"", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\private_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\corporal_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\lieutenant_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\captain_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\major_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\colonel_gs.paa" \
]
PARAMS_2(_caller,_target); PARAMS_2(_caller,_target);
//Sanity Checks //Sanity Checks
if (_caller != ACE_player) exitwith {ERROR("Player isn't caller?");}; if (_caller != ACE_player) exitwith {ERROR("Player isn't caller?");};
if (!([_target] call FUNC(canDisarm))) exitWith {ERROR("Unit Cannot Be Disarmed");}; if (!([_player, _target] call FUNC(canPlayerDisarmUnit))) exitWith {ERROR("Can't Disarm Unit");};
if (!([] call EGVAR(common,canInteract))) exitWith {ERROR("Player cannot Interact");}; if (dialog) then {ERROR("Dialog open when trying to open disarm dialog"); closeDialog 0;};
if (dialog) then {closeDialog 0;};
createDialog QGVAR(remoteInventory);
disableSerialization; disableSerialization;
createDialog QGVAR(remoteInventory);
_display = uiNamespace getVariable ["ACE_remoteInventory", displayNull]; _display = uiNamespace getVariable ["ACE_remoteInventory", displayNull];
if (isNull _display) exitWith {ERROR("Display is Null");}; if (isNull _display) exitWith {ERROR("Display is Null");};
@ -53,11 +63,12 @@ GVAR(disarmTarget) = _target;
EXPLODE_2_PVT(_this,_args,_pfID); EXPLODE_2_PVT(_this,_args,_pfID);
EXPLODE_3_PVT(_args,_player,_target,_display); EXPLODE_3_PVT(_args,_player,_target,_display);
if ((!([_target] call FUNC(canDisarm))) || if ((!([_player, _target] call FUNC(canPlayerDisarmUnit))) ||
{isNull _display} || {isNull _display} ||
{_player != ACE_player} || {_player != ACE_player}) then {
{!([_player, _target, []] call EFUNC(common,canInteractWith))}) then {
systemChat "Debug: closeing dialog"; systemChat "Debug: closeing dialog";
[_pfID] call CBA_fnc_removePerFrameHandler; [_pfID] call CBA_fnc_removePerFrameHandler;
GVAR(disarmTarget) = objNull; GVAR(disarmTarget) = objNull;
if (!isNull _display) then {closeDialog 0;}; //close dialog if still open if (!isNull _display) then {closeDialog 0;}; //close dialog if still open
@ -67,9 +78,12 @@ GVAR(disarmTarget) = _target;
_playerName = _display displayCtrl 111; _playerName = _display displayCtrl 111;
_rankPicture = _display displayCtrl 1203; _rankPicture = _display displayCtrl 1203;
_rankPicture ctrlSetText "\A3\Ui_f\data\GUI\Cfg\Ranks\corporal_gs.paa"; //Show rank and name (just like BIS's inventory)
_rankIndex = ["PRIVATE", "CORPORAL", "SERGEANT", "LIEUTENANT", "CAPTAIN", "MAJOR", "COLONEL"] find (rank _target);
_rankPicture ctrlSetText (TEXTURES_RANKS select _rankIndex);
_playerName ctrlSetText ([GVAR(disarmTarget)] call EFUNC(common,getName)); _playerName ctrlSetText ([GVAR(disarmTarget)] call EFUNC(common,getName));
//Clear both inventory lists:
lbClear _groundContainer; lbClear _groundContainer;
lbClear _targetContainer; lbClear _targetContainer;
@ -77,17 +91,18 @@ GVAR(disarmTarget) = _target;
_targetUniqueItems = [GVAR(disarmTarget)] call FUNC(getAllGearUnit); _targetUniqueItems = [GVAR(disarmTarget)] call FUNC(getAllGearUnit);
[_targetContainer, _targetUniqueItems] call FUNC(showItemsInListbox); [_targetContainer, _targetUniqueItems] call FUNC(showItemsInListbox);
//Try to find a holder that the target is using to drop items into:
_holder = objNull; _holder = objNull;
{ {
if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith { if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith {
_holder = _x; _holder = _x;
}; };
} forEach ((getpos _target) nearObjects ["GroundWeaponHolder", 3]); } forEach ((getpos _target) nearObjects [DISARM_CONTAINER, 3]);
//If a holder exists, show it's inventory
if (!isNull _holder) then { if (!isNull _holder) then {
_holderUniqueItems = [_holder] call FUNC(getAllGearContainer); _holderUniqueItems = [_holder] call FUNC(getAllGearContainer);
[_groundContainer, _holderUniqueItems] call FUNC(showItemsInListbox); [_groundContainer, _holderUniqueItems] call FUNC(showItemsInListbox);
}; };
}; };
}, 0.05, [_caller, _target, _display]] call CBA_fnc_addPerFrameHandler; }, 0, [_caller, _target, _display]] call CBA_fnc_addPerFrameHandler;

View File

@ -4,7 +4,7 @@
* *
* Arguments: * Arguments:
* 0: RscListBox <CONTROL> * 0: RscListBox <CONTROL>
* 1: ItemArray [["items"],[counts]] <ARRAY> * 1: ItemArray [["itemClassnames"],[counts]] <ARRAY>
* *
* Return Value: * Return Value:
* Nothing * Nothing
@ -19,32 +19,39 @@
disableSerialization; disableSerialization;
PARAMS_2(_listBoxCtrl,_itemsCountArray); PARAMS_2(_listBoxCtrl,_itemsCountArray);
private "_classname";
{ {
_displayName = ""; _displayName = "";
_picture = ""; _picture = "";
_classname = _x;
_count = (_itemsCountArray select 1) select _forEachIndex; _count = (_itemsCountArray select 1) select _forEachIndex;
switch (true) do { if (_classname != DUMMY_ITEM) then { //Don't show the dummy potato
case (isClass (configFile >> "CfgWeapons" >> _x)): {
_displayName = getText (configFile >> "CfgWeapons" >> _x >> "displayName");
_picture = getText (configFile >> "CfgWeapons" >> _x >> "picture");
};
case (isClass (configFile >> "CfgMagazines" >> _x)): {
_displayName = getText (configFile >> "CfgMagazines" >> _x >> "displayName");
_picture = getText (configFile >> "CfgMagazines" >> _x >> "picture");
};
case (isClass (configFile >> "CfgVehicles" >> _x)): {
_displayName = getText (configFile >> "CfgVehicles" >> _x >> "displayName");
_picture = getText (configFile >> "CfgVehicles" >> _x >> "picture");
};
case (isClass (configFile >> "CfgGlasses" >> _x)): {
_displayName = getText (configFile >> "CfgGlasses" >> _x >> "displayName");
_picture = getText (configFile >> "CfgGlasses" >> _x >> "picture");
};
};
_listBoxCtrl lbAdd format ["%1", _displayName]; switch (true) do {
_listBoxCtrl lbSetData [_forEachIndex, _x]; case (isClass (configFile >> "CfgWeapons" >> _classname)): {
_listBoxCtrl lbSetPicture [_forEachIndex, _picture]; _displayName = getText (configFile >> "CfgWeapons" >> _classname >> "displayName");
_listBoxCtrl lbSetTextRight [_forEachIndex, str _count]; _picture = getText (configFile >> "CfgWeapons" >> _classname >> "picture");
};
case (isClass (configFile >> "CfgMagazines" >> _classname)): {
_displayName = getText (configFile >> "CfgMagazines" >> _classname >> "displayName");
_picture = getText (configFile >> "CfgMagazines" >> _classname >> "picture");
};
case (isClass (configFile >> "CfgVehicles" >> _classname)): {
_displayName = getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
_picture = getText (configFile >> "CfgVehicles" >> _classname >> "picture");
};
case (isClass (configFile >> "CfgGlasses" >> _classname)): {
_displayName = getText (configFile >> "CfgGlasses" >> _classname >> "displayName");
_picture = getText (configFile >> "CfgGlasses" >> _classname >> "picture");
};
};
_listBoxCtrl lbAdd format ["%1", _displayName];
_listBoxCtrl lbSetData [_forEachIndex, _classname];
_listBoxCtrl lbSetPicture [_forEachIndex, _picture];
_listBoxCtrl lbSetTextRight [_forEachIndex, str _count];
};
} forEach (_itemsCountArray select 0); } forEach (_itemsCountArray select 0);

View File

@ -14,7 +14,7 @@
* Verified Good <BOOL> * Verified Good <BOOL>
* *
* Example: * Example:
* [] call ace_disarming_fnc_verifyMagazinesMoved * [stuff] call ace_disarming_fnc_verifyMagazinesMoved
* *
* Public: No * Public: No
*/ */
@ -26,7 +26,6 @@ PARAMS_4(_startA,_endA,_startB,_endB);
//Quick Lazy Count Check //Quick Lazy Count Check
if (((count _startA) + (count _startB)) != ((count _endA) + (count _endB))) exitWith { if (((count _startA) + (count _startB)) != ((count _endA) + (count _endB))) exitWith {
systemChat format ["%1 - %2", ((count _startA) + (count _startB)), ((count _endA) + (count _endB))];
false false
}; };
@ -39,6 +38,4 @@ _problem = false;
_beginingArray deleteAt _index; _beginingArray deleteAt _index;
} forEach (_endA + _endB); } forEach (_endA + _endB);
systemChat format ["%1 - %2", _problem, _beginingArray];
(!_problem) && {_beginingArray isEqualTo []} (!_problem) && {_beginingArray isEqualTo []}

View File

@ -1,3 +1,6 @@
//The disarming dialog
//Meant to mimic the real BIS inventory (so people understand how to use it)
class RscText; class RscText;
class RscPicture; class RscPicture;
class RscActiveText; class RscActiveText;
@ -13,8 +16,7 @@ class GVAR(remoteInventory) {
fadein = 0; fadein = 0;
fadeout = 0; fadeout = 0;
class Colors class Colors {
{
dragValidBgr[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])",0.5}; dragValidBgr[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])",0.5};
dragInvalidBgr[] = {"(profilenamespace getvariable ['IGUI_ERROR_RGB_R',0.8])","(profilenamespace getvariable ['IGUI_ERROR_RGB_G',0.0])","(profilenamespace getvariable ['IGUI_ERROR_RGB_B',0.0])",0.5}; dragInvalidBgr[] = {"(profilenamespace getvariable ['IGUI_ERROR_RGB_R',0.8])","(profilenamespace getvariable ['IGUI_ERROR_RGB_G',0.0])","(profilenamespace getvariable ['IGUI_ERROR_RGB_B',0.0])",0.5};
dragValidBar[] = {"(profilenamespace getvariable ['IGUI_WARNING_RGB_R',0.8])","(profilenamespace getvariable ['IGUI_WARNING_RGB_G',0.5])","(profilenamespace getvariable ['IGUI_WARNING_RGB_B',0.0])",0.5}; dragValidBar[] = {"(profilenamespace getvariable ['IGUI_WARNING_RGB_R',0.8])","(profilenamespace getvariable ['IGUI_WARNING_RGB_G',0.5])","(profilenamespace getvariable ['IGUI_WARNING_RGB_B',0.0])",0.5};
@ -86,7 +88,7 @@ class GVAR(remoteInventory) {
h = "1 * ((safeZoneH / 1.2) / 25)"; h = "1 * ((safeZoneH / 1.2) / 25)";
colorText[] = {1,1,1,0.7}; colorText[] = {1,1,1,0.7};
colorActive[] = {1,1,1,1}; colorActive[] = {1,1,1,1};
tooltip = "Close"; tooltip = "$str_disp_close";
}; };
class ExternalContainerBackground: RscPicture { class ExternalContainerBackground: RscPicture {
colorText[] = {1,1,1,0.1}; colorText[] = {1,1,1,0.1};
@ -121,16 +123,16 @@ class GVAR(remoteInventory) {
}; };
class GroundContainer: RscListBox { class GroundContainer: RscListBox {
idc = 632; idc = 632;
sizeEx = "0.8 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; sizeEx = "0.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
sizeEx2 = "0.8 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; sizeEx2 = "0.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
rowHeight = "1.75 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; rowHeight = "1.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
canDrag = 0; canDrag = 0;
colorText[] = {1,1,1,1}; colorText[] = {1,1,1,1};
colorBackground[] = {0,0,0,0}; colorBackground[] = {0,0,0,0};
itemBackground[] = {1,1,1,0.2}; itemBackground[] = {1,1,1,0.2};
itemSpacing = 0.001; itemSpacing = 0.001;
x = "1.5 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; x = "1.5 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)";
y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)";
w = "11 * (safeZoneH / 40)"; w = "11 * (safeZoneH / 40)";
h = "21.5 * ((safeZoneH / 1.2) / 25)"; h = "21.5 * ((safeZoneH / 1.2) / 25)";
}; };

View File

@ -11,5 +11,6 @@
#include "\z\ace\addons\main\script_macros.hpp" #include "\z\ace\addons\main\script_macros.hpp"
#define DISARM_CONTAINER "GroundWeaponHolder"
#define DUMMY_ITEM "ACE_DebugPotato" #define DUMMY_ITEM "ACE_DebugPotato"
#define UNIQUE_MAGAZINES ["ACE_key_customKeyMagazine"] #define UNIQUE_MAGAZINES ["ACE_key_customKeyMagazine"]