mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-15 21:29:59 +03:00
Fix keys not deleting
Should work fine, but more validation is always good, I tested selling from all inventories with DZE_SaleRequiresKey true and false.
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
private ["_localResult2","_VehKey2","_keyArr","_deleteRet","_vehicle","_delType","_containerFindKey"];
|
||||
_VehKey2 = (_this select 0) select 0;
|
||||
_delType = _this select 1;
|
||||
|
||||
_containerFindKey = {
|
||||
private ["_keys","_weapTypes"];
|
||||
_keys = [];
|
||||
_weapTypes = (_this select 1) select 0;
|
||||
{
|
||||
if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"]) then {
|
||||
if (str(getNumber(configFile >> "CfgWeapons" >> _x >> "keyid")) == (_this select 0)) then {
|
||||
_keys set [count _keys, _x];
|
||||
};
|
||||
};
|
||||
} forEach _weapTypes;
|
||||
_keys;
|
||||
};
|
||||
|
||||
if ((count _VehKey2) > 0) then {
|
||||
if ((_VehKey2 select 0) == "0" || _delType in ["trade_any_bicycle", "trade_any_bicycle_old", "trade_any_vehicle_free"]) then {
|
||||
_localResult2 = 1;
|
||||
} else {
|
||||
{
|
||||
if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"]) then {
|
||||
if (str(getNumber(configFile >> "CfgWeapons" >> _x >> "keyid")) == (_VehKey2 select 0)) then {
|
||||
_localResult2 = [player,_x,1] call BIS_fnc_invRemove;
|
||||
};
|
||||
};
|
||||
} forEach (items player);
|
||||
if ((typeOf (unitBackPack player)) != "") then {
|
||||
_keyArr = [(_VehKey2 select 0), (getWeaponCargo (unitBackpack player))] call _containerFindKey;
|
||||
_deleteRet = [unitBackpack player,[],_keyArr] call ZUPA_fnc_removeWeaponsAndMagazinesCargo;
|
||||
if (isNil "_localResult2") then {
|
||||
_localResult2 = ((_deleteRet select 1) select 0);
|
||||
} else {
|
||||
if (_localResult2 == 0) then {
|
||||
_localResult2 = ((_deleteRet select 1) select 0);
|
||||
};
|
||||
};
|
||||
};
|
||||
_vehicle = Z_vehicle;
|
||||
if (count _this > 2 && {isNull _vehicle}) then {
|
||||
_vehicle = _this select 2;
|
||||
};
|
||||
if (!isNull _vehicle) then {
|
||||
_keyArr = [(_VehKey2 select 0), (getWeaponCargo _vehicle)] call _containerFindKey;
|
||||
_deleteRet = [_vehicle,[],_keyArr] call ZUPA_fnc_removeWeaponsAndMagazinesCargo;
|
||||
if (isNil "_localResult2") then {
|
||||
_localResult2 = ((_deleteRet select 1) select 0);
|
||||
} else {
|
||||
if (_localResult2 == 0) then {
|
||||
_localResult2 = ((_deleteRet select 1) select 0);
|
||||
};
|
||||
};
|
||||
};
|
||||
if (!DZE_SaleRequiresKey) then {_localResult2 = 1;};
|
||||
};
|
||||
if (isNil "_localResult2") then {
|
||||
_localResult2 = 0;
|
||||
} else {
|
||||
PVDZ_obj_Destroy = [(_VehKey2 select 2),(_VehKey2 select 3),player];
|
||||
publicVariableServer "PVDZ_obj_Destroy";
|
||||
deleteVehicle (_VehKey2 select 1);
|
||||
};
|
||||
} else {
|
||||
_localResult2 = 0;
|
||||
};
|
||||
_localResult2;
|
||||
Reference in New Issue
Block a user