mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
42 lines
1.1 KiB
Plaintext
42 lines
1.1 KiB
Plaintext
|
// by commy2
|
||
|
#include "script_component.hpp"
|
||
|
|
||
|
private ["_driver", "_vehicle"];
|
||
|
|
||
|
_driver = _this select 0;
|
||
|
_vehicle = _this select 1;
|
||
|
|
||
|
if (GETGVAR(isSpeedLimiter,false)) exitWith {
|
||
|
[localize "STR_ACE_SpeedLimiter_Off"] call EFUNC(common,displayTextStructured);
|
||
|
playSound "ACE_Sound_Click";
|
||
|
GVAR(isSpeedLimiter) = false;
|
||
|
};
|
||
|
|
||
|
[localize "STR_ACE_SpeedLimiter_On"] call EFUNC(common,displayTextStructured);
|
||
|
playSound "ACE_Sound_Click";
|
||
|
GVAR(isSpeedLimiter) = true;
|
||
|
|
||
|
private "_maxSpeed";
|
||
|
_maxSpeed = speed _vehicle max 10;
|
||
|
|
||
|
[{
|
||
|
private ["_driver", "_vehicle", "_maxSpeed"];
|
||
|
|
||
|
_driver = _this select 0 select 0;
|
||
|
_vehicle = _this select 0 select 1;
|
||
|
_maxSpeed = _this select 0 select 2;
|
||
|
|
||
|
if (!GVAR(isSpeedLimiter) || {_driver != driver _vehicle}) exitWith {
|
||
|
GVAR(isSpeedLimiter) = false;
|
||
|
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||
|
};
|
||
|
|
||
|
private "_speed";
|
||
|
_speed = speed _vehicle;
|
||
|
|
||
|
if (_speed > _maxSpeed) then {
|
||
|
_vehicle setVelocity ((velocity _vehicle) vectorMultiply (_maxSpeed / _speed));
|
||
|
};
|
||
|
|
||
|
} , 0, [_driver, _vehicle, _maxSpeed]] call CBA_fnc_addPerFrameHandler;
|