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