2015-03-24 04:18:00 +00:00
|
|
|
// by esteldunedain
|
2015-01-18 20:00:43 +00:00
|
|
|
#include "script_component.hpp"
|
|
|
|
|
2015-09-11 14:58:26 +00:00
|
|
|
if (!hasInterface) exitWith {};
|
2015-11-27 14:48:03 +00:00
|
|
|
GVAR(isSpeedLimiter) = false;
|
2015-01-18 20:00:43 +00:00
|
|
|
// Add keybinds
|
2015-05-28 19:59:04 +00:00
|
|
|
["ACE3 Vehicles", QGVAR(speedLimiter), localize LSTRING(SpeedLimiter),
|
2015-03-05 07:32:26 +00:00
|
|
|
{
|
2015-11-26 22:39:17 +00:00
|
|
|
private _connectedUAV = getConnectedUAV ACE_player;
|
2022-05-17 03:59:12 +00:00
|
|
|
private _uavControl = UAVControl _connectedUAV;
|
|
|
|
if ((_uavControl select 1) == "DRIVER") then {
|
2015-11-26 22:39:17 +00:00
|
|
|
if !(_connectedUAV isKindOf "UGV_01_base_F") exitWith {false};
|
|
|
|
GVAR(isUAV) = true;
|
2022-05-17 03:59:12 +00:00
|
|
|
[_uavControl select 0, _connectedUAV] call FUNC(speedLimiter);
|
2015-11-26 22:39:17 +00:00
|
|
|
true
|
2022-03-17 18:06:32 +00:00
|
|
|
} else {
|
|
|
|
// Conditions: canInteract
|
|
|
|
if !([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
|
|
|
// Conditions: specific
|
2022-05-17 03:59:12 +00:00
|
|
|
private _vehicle = vehicle ACE_player;
|
|
|
|
if (
|
|
|
|
ACE_player != driver _vehicle
|
|
|
|
|| {-1 == ["Car", "Tank", "Ship"] findIf {_vehicle isKindOf _x}}
|
|
|
|
) exitWith {false};
|
2022-03-17 18:06:32 +00:00
|
|
|
|
2022-05-17 03:59:12 +00:00
|
|
|
GVAR(isUAV) = false;
|
2022-03-17 18:06:32 +00:00
|
|
|
// Statement
|
2022-05-17 03:59:12 +00:00
|
|
|
[ACE_player, _vehicle] call FUNC(speedLimiter);
|
2022-03-17 18:06:32 +00:00
|
|
|
true
|
|
|
|
};
|
|
|
|
},
|
|
|
|
{false},
|
|
|
|
[DIK_DELETE, [false, false, false]], false] call CBA_fnc_addKeybind;
|
|
|
|
|
|
|
|
["ACE3 Vehicles", QGVAR(cruiseControl), localize LSTRING(CruiseControl), {
|
|
|
|
private _connectedUAV = getConnectedUAV ACE_player;
|
2022-05-17 03:59:12 +00:00
|
|
|
private _uavControl = UAVControl _connectedUAV;
|
|
|
|
if ((_uavControl select 1) == "DRIVER") then {
|
2022-03-17 18:06:32 +00:00
|
|
|
if !(_connectedUAV isKindOf "UGV_01_base_F") exitWith {false};
|
|
|
|
GVAR(isUAV) = true;
|
2022-05-17 03:59:12 +00:00
|
|
|
[_uavControl select 0, _connectedUAV, true] call FUNC(speedLimiter);
|
2022-03-17 18:06:32 +00:00
|
|
|
true
|
2015-11-26 22:39:17 +00:00
|
|
|
} else {
|
|
|
|
// Conditions: canInteract
|
2017-08-22 18:30:56 +00:00
|
|
|
if !([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
2015-11-26 22:39:17 +00:00
|
|
|
// Conditions: specific
|
2022-05-17 03:59:12 +00:00
|
|
|
private _vehicle = vehicle ACE_player;
|
|
|
|
if (
|
|
|
|
ACE_player != driver _vehicle
|
|
|
|
|| {-1 == ["Car", "Tank", "Ship", "Plane"] findIf {_vehicle isKindOf _x}}
|
|
|
|
) exitWith {false};
|
2015-11-26 22:39:17 +00:00
|
|
|
|
2022-05-17 03:59:12 +00:00
|
|
|
GVAR(isUAV) = false;
|
2015-11-26 22:39:17 +00:00
|
|
|
// Statement
|
2022-05-17 03:59:12 +00:00
|
|
|
if (_vehicle isKindOf "Plane") then {
|
|
|
|
[ACE_player, _vehicle] call FUNC(autoThrottle);
|
2021-09-03 19:39:52 +00:00
|
|
|
} else {
|
2022-05-17 03:59:12 +00:00
|
|
|
[ACE_player, _vehicle, true] call FUNC(speedLimiter);
|
2021-09-03 19:39:52 +00:00
|
|
|
};
|
2015-11-26 22:39:17 +00:00
|
|
|
true
|
|
|
|
};
|
2015-03-05 07:32:26 +00:00
|
|
|
},
|
2015-03-05 08:51:24 +00:00
|
|
|
{false},
|
2022-03-17 18:06:32 +00:00
|
|
|
[DIK_INSERT, [false, false, false]], false] call CBA_fnc_addKeybind;
|
2018-07-05 16:32:40 +00:00
|
|
|
|
|
|
|
["ACE3 Vehicles", QGVAR(scrollUp), localize LSTRING(IncreaseSpeedLimit), {
|
|
|
|
if (GVAR(isSpeedLimiter)) then {
|
2020-04-20 00:17:42 +00:00
|
|
|
GVAR(speedLimit) = round (GVAR(speedLimit) + GVAR(speedLimiterStep)) max (5 max GVAR(speedLimiterStep));
|
2022-03-17 18:03:28 +00:00
|
|
|
GVAR(speedLimit) = 5 max GVAR(speedLimiterStep) * floor (GVAR(speedLimit) / GVAR(speedLimiterStep));
|
2018-07-05 16:32:40 +00:00
|
|
|
[["%1: %2", LSTRING(SpeedLimit), GVAR(speedLimit)]] call EFUNC(common,displayTextStructured);
|
|
|
|
true
|
|
|
|
};
|
|
|
|
}, {false}, [MOUSE_SCROLL_UP, [false, true, false]], false] call CBA_fnc_addKeybind; // Ctrl + Mouse Wheel Scroll Up
|
|
|
|
|
|
|
|
["ACE3 Vehicles", QGVAR(scrollDown), localize LSTRING(DecreaseSpeedLimit), {
|
|
|
|
if (GVAR(isSpeedLimiter)) then {
|
2020-04-20 00:17:42 +00:00
|
|
|
GVAR(speedLimit) = round (GVAR(speedLimit) - GVAR(speedLimiterStep)) max (5 max GVAR(speedLimiterStep));
|
2022-03-17 18:03:28 +00:00
|
|
|
GVAR(speedLimit) = 5 max GVAR(speedLimiterStep) * ceil (GVAR(speedLimit) / GVAR(speedLimiterStep));
|
2018-07-05 16:32:40 +00:00
|
|
|
[["%1: %2", LSTRING(SpeedLimit), GVAR(speedLimit)]] call EFUNC(common,displayTextStructured);
|
|
|
|
true
|
|
|
|
};
|
|
|
|
}, {false}, [MOUSE_SCROLL_DOWN, [false, true, false]], false] call CBA_fnc_addKeybind; // Ctrl + Mouse Wheel Scroll Down
|