-
Notifications
You must be signed in to change notification settings - Fork 18
/
client.lua
66 lines (62 loc) · 2.22 KB
/
client.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
-- No need to modify any of this, but I tried to document what it's doing
local isBlackedOut = false
local oldBodyDamage = 0
local oldSpeed = 0
local function blackout()
-- Only blackout once to prevent an extended blackout if both speed and damage thresholds were met
if not isBlackedOut then
isBlackedOut = true
-- This thread will black out the user's screen for the specified time
Citizen.CreateThread(function()
DoScreenFadeOut(100)
while not IsScreenFadedOut() do
Citizen.Wait(0)
end
Citizen.Wait(Config.BlackoutTime)
DoScreenFadeIn(250)
isBlackedOut = false
end)
end
end
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
-- Get the vehicle the player is in, and continue if it exists
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
if DoesEntityExist(vehicle) then
-- Check if damage blackout is enabled
if Config.BlackoutFromDamage then
local currentDamage = GetVehicleBodyHealth(vehicle)
-- If the damage changed, see if it went over the threshold and blackout if necesary
if currentDamage ~= oldBodyDamage then
if not isBlackedOut and (currentDamage < oldBodyDamage) and ((oldBodyDamage - currentDamage) >= Config.BlackoutDamageRequired) then
blackout()
end
oldBodyDamage = currentDamage
end
end
-- Check if speed blackout is enabled
if Config.BlackoutFromSpeed then
local currentSpeed = GetEntitySpeed(vehicle) * 2.23
-- If the speed changed, see if it went over the threshold and blackout if necesary
if currentSpeed ~= oldSpeed then
if not isBlackedOut and (currentSpeed < oldSpeed) and ((oldSpeed - currentSpeed) >= Config.BlackoutSpeedRequired) then
blackout()
end
oldSpeed = currentSpeed
end
end
else
oldBodyDamage = 0
oldSpeed = 0
end
if isBlackedOut and Config.DisableControlsOnBlackout then
-- Borrowed controls from https://github.com/Sighmir/FiveM-Scripts/blob/master/vrp/vrp_hotkeys/client.lua
DisableControlAction(0,71,true) -- veh forward
DisableControlAction(0,72,true) -- veh backwards
DisableControlAction(0,63,true) -- veh turn left
DisableControlAction(0,64,true) -- veh turn right
DisableControlAction(0,75,true) -- disable exit vehicle
end
end
end)