Add lock and unlock vehicle from inside

See: #1103
Made vehicle gear always accessible from inside.

Also added optional variable to prevent stealing from backpacks by
non-friendlies at traders.  Thanks to @maca134 for the method.
This commit is contained in:
ebaydayz
2016-02-24 20:56:13 -05:00
parent ff4a227a1d
commit 03353b9483
9 changed files with 109 additions and 35 deletions

View File

@@ -1,20 +1,23 @@
private ["_cTarget","_isOk","_Dis","_display","_inVehicle"];
disableSerialization;
_display = (_this select 0);
_inVehicle = (vehicle player) != player;
_cTarget = cursorTarget;
if(_inVehicle) then {
_cTarget = (vehicle player);
};
private ["_cTarget","_dis","_display","_friendlies","_rcharID"];
_isOk = false;
{
if(!_isOk) then {
_isOk = _cTarget isKindOf _x;
// players inside vehicle can always access its gear
if ((vehicle player) == player) then {
disableSerialization;
_display = _this select 0;
_cTarget = cursorTarget;
_dis = if (_cTarget isKindOf "USEC_ch53_E" || _cTarget isKindOf "MV22") then {25} else {12};
if ((locked _cTarget) && {(_cTarget isKindOf "LandVehicle") or {_cTarget isKindOf "Air"} or {_cTarget isKindOf "Ship"}} && {(player distance _cTarget) < _dis}) then {
cutText [(localize "str_epoch_player_7"),"PLAIN DOWN"];
_display closeDisplay 1;
};
} count ["LandVehicle","Air", "Ship"];
_Dis = if (_cTarget isKindOf "USEC_ch53_E" || _cTarget isKindOf "MV22") then {25} else {12};
if((locked _cTarget) && _isOk && (((vehicle player) distance _cTarget) < _Dis)) then {
cutText [(localize "str_epoch_player_7") , "PLAIN DOWN"];
_display closeDisplay 1;
};
if (DZE_BackpackAntiTheft) then {
_friendlies = player getVariable ["friendlies",[]];
_rcharID = _cTarget getVariable ["CharacterID","0"];
if ((!canbuild) && {_cTarget isKindOf "Man"} && {alive _cTarget} && {!((typeOf _cTarget) in serverTraders)} && {!(_rcharID in _friendlies)} && {(player distance _cTarget) < 12}) then {
cutText [(localize "STR_EPOCH_PLAYER_316"),"PLAIN DOWN"];
_display closeDisplay 1;
};
};
};