mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
Fix SetUnitLoadout
This commit is contained in:
parent
43ec66a05a
commit
8d5f99d1c4
@ -0,0 +1,96 @@
|
|||||||
|
/*
|
||||||
|
Author: He-Man - EpochMod.com
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
|
||||||
|
Description:
|
||||||
|
Change PlayerLoadout
|
||||||
|
|
||||||
|
Licence:
|
||||||
|
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||||
|
|
||||||
|
Github:
|
||||||
|
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/inventory/EPOCH_SetUnitLoadout.sqf
|
||||||
|
*/
|
||||||
|
//[[[cog import generate_private_arrays ]]]
|
||||||
|
private ["_type","_loadabs"];
|
||||||
|
//[[[end]]]
|
||||||
|
|
||||||
|
params ["_newPlyr","_loadout"];
|
||||||
|
|
||||||
|
// _loadout params ["_primaryarr","_secondaryarr","_handgunarr","_uniformarr","_vestarr","_bpackarr","_HeadGear","_Glasses","_Rangefinderarr","_LinedItemsarr"];
|
||||||
|
_loadout = +_loadout;
|
||||||
|
_loadout params ["","","","_uniformarr","_vestarr","_bpackarr","","","",""];
|
||||||
|
_loadout set [3,[]];
|
||||||
|
_loadout set [4,[]];
|
||||||
|
_loadout set [5,[]];
|
||||||
|
_newPlyr setunitloadout _loadout;
|
||||||
|
_uniformarr params [["_uniform",""],["_uniformitems",[]]];
|
||||||
|
_vestarr params [["_vest",""],["_vestitems",[]]];
|
||||||
|
_bpackarr params [["_bpack",""],["_bpackitems",[]]];
|
||||||
|
if !(_uniform isequalto "") then {
|
||||||
|
_newPlyr forceadduniform _uniform;
|
||||||
|
};
|
||||||
|
if !(_vest isequalto "") then {
|
||||||
|
_newPlyr addVest _vest;
|
||||||
|
};
|
||||||
|
if !(_bpack isequalto "") then {
|
||||||
|
_newPlyr addBackpack _bpack;
|
||||||
|
};
|
||||||
|
{
|
||||||
|
_x params ["_container","_items"];
|
||||||
|
if !(isnull _container) then {
|
||||||
|
clearitemcargoglobal _container;
|
||||||
|
clearbackpackcargoglobal _container;
|
||||||
|
clearmagazinecargoglobal _container;
|
||||||
|
clearweaponcargoglobal _container;
|
||||||
|
{
|
||||||
|
if (count _x > 2) then {
|
||||||
|
_container addMagazineAmmoCargo _x;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ((_x select 0) isequaltype []) then {
|
||||||
|
_x params ["_arr","_cnt"];
|
||||||
|
_type = _arr deleteat 0;
|
||||||
|
_container addWeaponcargoglobal [_type,_cnt];
|
||||||
|
{
|
||||||
|
if !(_x isequalto "" || _x isequalto []) then {
|
||||||
|
if (_x isequaltype []) then {
|
||||||
|
_container addMagazineAmmoCargo [_x select 0,1,_x select 1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_container addItemCargoGlobal [_x,1];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} foreach _arr;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_x params [["_type",""],["_cnt",1]];
|
||||||
|
if !(_cnt isequaltype 1) then {
|
||||||
|
_cnt = 1;
|
||||||
|
};
|
||||||
|
if (_type iskindof "Bag_Base") then {
|
||||||
|
_container addBackpackCargoGlobal [_type,_cnt];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_container addItemCargoGlobal [_type,_cnt];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} foreach _items;
|
||||||
|
};
|
||||||
|
} foreach [
|
||||||
|
[Uniformcontainer _newPlyr, _uniformitems],
|
||||||
|
[Vestcontainer _newPlyr, _vestitems],
|
||||||
|
[BackpackContainer _newPlyr, _bpackitems]
|
||||||
|
];
|
||||||
|
|
||||||
|
/*
|
||||||
|
_loadabs = loadabs _newPlyr;
|
||||||
|
if !(uniform _newPlyr isequalto _uniform && vest _newPlyr isequalto _vest && backpack _newPlyr isequalto _bpack) then {
|
||||||
|
diag_log format ["EPOCH Debug: Setunitloadout failed - Unifmorm should: %1 is: %2 - Vest should: %3 is: %4 - Backpack should: %5 is: %6",_uniform,uniform _newPlyr,_vest,vest _newPlyr,_bpack,backpack _newPlyr];
|
||||||
|
_loadabs = -1;
|
||||||
|
};
|
||||||
|
|
||||||
|
_loadabs
|
||||||
|
*/
|
@ -111,7 +111,8 @@ _fnc_moveWeaponFromContainer = {
|
|||||||
//add new entry
|
//add new entry
|
||||||
_loadout set [_dIdx,_temp];
|
_loadout set [_dIdx,_temp];
|
||||||
//save changes
|
//save changes
|
||||||
player setUnitLoadout _loadout;
|
// player setUnitLoadout _loadout;
|
||||||
|
[player,_loadout] call Epoch_SetUnitLoadout;
|
||||||
};
|
};
|
||||||
|
|
||||||
_fnc_MoveWeaponToContainer = {
|
_fnc_MoveWeaponToContainer = {
|
||||||
@ -135,7 +136,8 @@ _fnc_MoveWeaponToContainer = {
|
|||||||
((_loadout select (_container + 3)) select 1) append [[_loadout select _sIdx,1]]; //cut out from above comment, looks like appending alone works great
|
((_loadout select (_container + 3)) select 1) append [[_loadout select _sIdx,1]]; //cut out from above comment, looks like appending alone works great
|
||||||
_loadout set [_sIdx,[]];
|
_loadout set [_sIdx,[]];
|
||||||
|
|
||||||
player setUnitLoadout _loadout;
|
// player setUnitLoadout _loadout;
|
||||||
|
[player,_loadout] call Epoch_SetUnitLoadout;
|
||||||
};
|
};
|
||||||
|
|
||||||
_fnc_canMoveToContainer = {
|
_fnc_canMoveToContainer = {
|
||||||
@ -230,7 +232,8 @@ _fnc_MoveShellToContainer = {
|
|||||||
((_loadout select (_container + 3)) select 1) append [_temp2]; //cut out from above comment, looks like appending alone works great
|
((_loadout select (_container + 3)) select 1) append [_temp2]; //cut out from above comment, looks like appending alone works great
|
||||||
};
|
};
|
||||||
(_loadout select 0) set [5,[]];
|
(_loadout select 0) set [5,[]];
|
||||||
player setUnitLoadout _loadout;
|
// player setUnitLoadout _loadout;
|
||||||
|
[player,_loadout] call Epoch_SetUnitLoadout;
|
||||||
};
|
};
|
||||||
|
|
||||||
_fnc_moveShellFromContainer = {
|
_fnc_moveShellFromContainer = {
|
||||||
@ -248,7 +251,8 @@ _fnc_moveShellFromContainer = {
|
|||||||
((_loadout select (_container + 3)) select 1) deleteAt _sIdx;
|
((_loadout select (_container + 3)) select 1) deleteAt _sIdx;
|
||||||
};
|
};
|
||||||
(_loadout select 0) set [5,[_temp select 0,_temp select 2]];
|
(_loadout select 0) set [5,[_temp select 0,_temp select 2]];
|
||||||
player setUnitLoadout _loadout;
|
// player setUnitLoadout _loadout;
|
||||||
|
[player,_loadout] call Epoch_SetUnitLoadout;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -272,7 +276,8 @@ _fnc_dropEquipShells = {
|
|||||||
if !(_drop) exitWith {_return = 4;};
|
if !(_drop) exitWith {_return = 4;};
|
||||||
_equipped call _fnc_dropItem;
|
_equipped call _fnc_dropItem;
|
||||||
(_loadout select 0) set [5,[]];
|
(_loadout select 0) set [5,[]];
|
||||||
player setUnitLoadout _loadout;
|
// player setUnitLoadout _loadout;
|
||||||
|
[player,_loadout] call Epoch_SetUnitLoadout;
|
||||||
_return = 2;
|
_return = 2;
|
||||||
};
|
};
|
||||||
if (_forceEquip && _return != 4) then {
|
if (_forceEquip && _return != 4) then {
|
||||||
@ -345,25 +350,29 @@ _fnc_dropEquipAccessories = {
|
|||||||
_equipped = (_loadout select _slot) select _accessory;
|
_equipped = (_loadout select _slot) select _accessory;
|
||||||
if (player canAdd _equipped) then {
|
if (player canAdd _equipped) then {
|
||||||
(_loadout select _slot) set [_accessory,""];
|
(_loadout select _slot) set [_accessory,""];
|
||||||
player setUnitLoadout _loadout;
|
// player setUnitLoadout _loadout;
|
||||||
|
[player,_loadout] call Epoch_SetUnitLoadout;
|
||||||
player addItem _equipped;
|
player addItem _equipped;
|
||||||
_return = 1;
|
_return = 1;
|
||||||
} else {
|
} else {
|
||||||
if !(_drop) exitWith {_return = 4;};
|
if !(_drop) exitWith {_return = 4;};
|
||||||
_equipped call _fnc_dropItem;
|
_equipped call _fnc_dropItem;
|
||||||
(_loadout select _slot) set [_accessory,""];
|
(_loadout select _slot) set [_accessory,""];
|
||||||
player setUnitLoadout _loadout;
|
// player setUnitLoadout _loadout;
|
||||||
|
[player,_loadout] call Epoch_SetUnitLoadout;
|
||||||
_return = 2;
|
_return = 2;
|
||||||
};
|
};
|
||||||
if ((((toLower _equipped) != (toLower _item)) || _forceEquip) && _return != 4) then {
|
if ((((toLower _equipped) != (toLower _item)) || _forceEquip) && _return != 4) then {
|
||||||
(_loadout select _slot) set [_accessory,_item];
|
(_loadout select _slot) set [_accessory,_item];
|
||||||
player setUnitLoadout _loadout;
|
// player setUnitLoadout _loadout;
|
||||||
|
[player,_loadout] call Epoch_SetUnitLoadout;
|
||||||
player addItem _equipped;
|
player addItem _equipped;
|
||||||
player removeItem _item;
|
player removeItem _item;
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
(_loadout select _slot) set [_accessory,_item];
|
(_loadout select _slot) set [_accessory,_item];
|
||||||
player setUnitLoadout _loadout;
|
// player setUnitLoadout _loadout;
|
||||||
|
[player,_loadout] call Epoch_SetUnitLoadout;
|
||||||
player removeItem _item;
|
player removeItem _item;
|
||||||
_return = 1;
|
_return = 1;
|
||||||
};
|
};
|
||||||
|
@ -74,7 +74,7 @@ _respawnButton ctrlEnable false;
|
|||||||
(isNull _display) || ((_startTime - diag_tickTime) <= 0)
|
(isNull _display) || ((_startTime - diag_tickTime) <= 0)
|
||||||
};
|
};
|
||||||
if (!isNull _display) then {
|
if (!isNull _display) then {
|
||||||
player setUnitLoadout (getUnitLoadout player);
|
[player,(getUnitLoadout player)] call (missionnamespace getvariable ["Epoch_SetUnitLoadout",{}]);
|
||||||
uisleep 1; // give one second to broadcast clothing change
|
uisleep 1; // give one second to broadcast clothing change
|
||||||
missionnamespace setvariable ["EPOCH_forceUpdateNow",true];
|
missionnamespace setvariable ["EPOCH_forceUpdateNow",true];
|
||||||
};
|
};
|
||||||
|
@ -220,6 +220,7 @@ class CfgClientFunctions
|
|||||||
class itemTypeSlot {};
|
class itemTypeSlot {};
|
||||||
class usedItemRepack {};
|
class usedItemRepack {};
|
||||||
class CryptoButtons {};
|
class CryptoButtons {};
|
||||||
|
class SetUnitLoadout {};
|
||||||
};
|
};
|
||||||
class servicepoint
|
class servicepoint
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user