From 80e648938ae790f467551a8e0db66c7f0dc67283 Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Thu, 5 Jul 2018 17:32:40 +0100 Subject: [PATCH] Speed limit scroll (#6384) Vehicles - Set speed limited with mouse scroll wheel --- addons/vehicles/XEH_postInit.sqf | 18 +++++++++++++++++- addons/vehicles/functions/fnc_speedLimiter.sqf | 10 +++++----- addons/vehicles/script_component.hpp | 3 +++ addons/vehicles/stringtable.xml | 9 +++++++++ 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/addons/vehicles/XEH_postInit.sqf b/addons/vehicles/XEH_postInit.sqf index 2e54b2ea84..3afea03187 100644 --- a/addons/vehicles/XEH_postInit.sqf +++ b/addons/vehicles/XEH_postInit.sqf @@ -18,7 +18,7 @@ GVAR(isSpeedLimiter) = false; if !([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false}; // Conditions: specific if !(ACE_player == driver vehicle ACE_player && - {vehicle ACE_player isKindOf 'Car' || + {vehicle ACE_player isKindOf 'Car' || {vehicle ACE_player isKindOf 'Tank'}}) exitWith {false}; GVAR(isUAV) = false; @@ -30,3 +30,19 @@ GVAR(isSpeedLimiter) = false; }, {false}, [211, [false, false, false]], false] call CBA_fnc_addKeybind; //DELETE Key + +["ACE3 Vehicles", QGVAR(scrollUp), localize LSTRING(IncreaseSpeedLimit), { + if (GVAR(isSpeedLimiter)) then { + GVAR(speedLimit) = round (GVAR(speedLimit) + 1) max 5; + [["%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 { + GVAR(speedLimit) = round (GVAR(speedLimit) - 1) max 5; + [["%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 diff --git a/addons/vehicles/functions/fnc_speedLimiter.sqf b/addons/vehicles/functions/fnc_speedLimiter.sqf index d84bdfff9f..07af1dd4c3 100644 --- a/addons/vehicles/functions/fnc_speedLimiter.sqf +++ b/addons/vehicles/functions/fnc_speedLimiter.sqf @@ -28,11 +28,11 @@ if (GVAR(isSpeedLimiter)) exitWith { playSound "ACE_Sound_Click"; GVAR(isSpeedLimiter) = true; -private _maxSpeed = speed _vehicle max 5; +GVAR(speedLimit) = speed _vehicle max 5; [{ params ["_args", "_idPFH"]; - _args params ["_driver", "_vehicle", "_maxSpeed"]; + _args params ["_driver", "_vehicle"]; if (GVAR(isUAV)) then { private _uavControll = UAVControl _vehicle; @@ -51,8 +51,8 @@ private _maxSpeed = speed _vehicle max 5; private _speed = speed _vehicle; - if (_speed > _maxSpeed) then { - _vehicle setVelocity ((velocity _vehicle) vectorMultiply ((_maxSpeed / _speed) - 0.00001)); // fix 1.42-hotfix PhysX libraries applying force in previous direction when turning + if (_speed > GVAR(speedLimit)) then { + _vehicle setVelocity ((velocity _vehicle) vectorMultiply ((GVAR(speedLimit) / _speed) - 0.00001)); // fix 1.42-hotfix PhysX libraries applying force in previous direction when turning }; -} , 0, [_driver, _vehicle, _maxSpeed]] call CBA_fnc_addPerFrameHandler; +}, 0, [_driver, _vehicle]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/vehicles/script_component.hpp b/addons/vehicles/script_component.hpp index 49de85f0ba..b985da6632 100644 --- a/addons/vehicles/script_component.hpp +++ b/addons/vehicles/script_component.hpp @@ -16,5 +16,8 @@ #include "\z\ace\addons\main\script_macros.hpp" +#define MOUSE_SCROLL_UP 0xF8 +#define MOUSE_SCROLL_DOWN 0xF9 + #define FUEL_FACTOR 0.165 // fuel capacity = range in km * FUEL_FACTOR #define STARTUP_DELAY 1.3 diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index 36ff7f99e6..d7f141c66a 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -33,6 +33,9 @@ 停用速度限制 停用速度限制 + + Speed Limit + Speed Limiter Begrenzer @@ -49,5 +52,11 @@ 速度限制器 速度限制器 + + Increase Speed Limit + + + Decrease Speed Limit +