Make temp Vehicles Lockable + Lock hints

This commit is contained in:
He-Man 2017-11-05 02:47:11 +01:00
parent cdf9779b04
commit 056f3a0cb0
2 changed files with 23 additions and 2 deletions

View File

@ -59,6 +59,7 @@ defaultlinkedItems[] = {
disableAutoRefuel = "true"; // Removes auto refuel from all buildings at server startup.
simulationHandlerOld = "false"; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps.
vehicleLockTime = 1800; // Controls how many seconds it takes to allow another person/group to unlock vehicle.
VehLockMessages = "true"; // Give players a hint, that the Vehicle is locked / unlocked
removevehweapons[] = { // remove these Weapons from spawned Vehicles
"missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F",
"Rocket_03_AP_Plane_CAS_02_F","Bomb_03_Plane_CAS_02_F","Bomb_04_Plane_CAS_01_F","Rocket_04_AP_Plane_CAS_01_F","Rocket_04_HE_Plane_CAS_01_F","Missile_AGM_02_Plane_CAS_01_F","Missile_AA_04_Plane_CAS_01_F",

View File

@ -13,7 +13,7 @@
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf
*/
//[[[cog import generate_private_arrays ]]]
private ["_crew","_driver","_isLocked","_lockOwner","_lockedOwner","_logic","_playerGroup","_playerUID","_response","_vehLockHiveKey","_vehSlot"];
private ["_VehLockMessages","_msg","_crew","_driver","_isLocked","_lockOwner","_lockedOwner","_logic","_playerGroup","_playerUID","_response","_vehLockHiveKey","_vehSlot"];
//[[[end]]]
params [
["_vehicle",objNull,[objNull]],
@ -26,6 +26,8 @@ if (isNull _vehicle) exitWith {};
if !([_player,_token] call EPOCH_server_getPToken) exitWith {};
if (_player distance _vehicle > 20) exitWith {};
_VehLockMessages = ['CfgEpochClient' call EPOCH_returnConfig, "VehLockMessages", true] call EPOCH_fnc_returnConfigEntry;
// Group access
_playerUID = getPlayerUID _player;
_playerGroup = _player getVariable["GROUP", ""];
@ -43,6 +45,9 @@ if (_vehSlot != "ABORT") then {
if ((_response select 0) == 1 && (_response select 1) isEqualType [] && !((_response select 1) isEqualTo[])) then {
_lockedOwner = _response select 1 select 0;
};
}
else {
_lockedOwner = _vehicle getvariable ["EPOCH_LockedOwner","-1"];
};
// get locked state
@ -57,6 +62,7 @@ _crew = [];
};
} forEach (crew _vehicle);
// if vehicle has a crew and player is not inside vehicle only allow locking if already owner
_logic = if !(_crew isEqualTo []) then {
if (_player in _crew) then {
@ -75,7 +81,12 @@ _logic = if !(_crew isEqualTo []) then {
if (_logic) then {
if (_value) then {
if !(_vehSlot isequalto "ABORT") then {
["VehicleLock", _vehLockHiveKey, EPOCH_vehicleLockTime, [_lockOwner]] call EPOCH_fnc_server_hiveSETEX;
}
else {
_vehicle setvariable ["EPOCH_LockedOwner",_lockOwner];
};
} else {
// re-allow damage (server-side) on first unlock
if (_vehicle getVariable ["EPOCH_disallowedDamage", false]) then {
@ -90,4 +101,13 @@ if (_logic) then {
} else {
[_vehicle, _value] remoteExec ['EPOCH_client_lockVehicle',_vehicle];
};
if (_VehLockMessages) then {
_msg = if (_value) then {"Vehicle Locked"} else {"Vehicle unlocked"};
[_msg,5] remoteExec ["Epoch_Message",_player];
};
}
else {
if (_VehLockMessages) then {
["You are not the owner",5] remoteExec ["Epoch_Message",_player];
};
};