632 lines
20 KiB
Lua
632 lines
20 KiB
Lua
RegisterNetEvent("els:updateElsVehicles")
|
|
AddEventHandler("els:updateElsVehicles", function(vehicles, patterns)
|
|
els_Vehicles = vehicles
|
|
els_patterns = patterns
|
|
|
|
lightPatternPrim = 1
|
|
lightPatternSec = 1
|
|
advisorPatternSelectedIndex = 1
|
|
end)
|
|
|
|
RegisterNetEvent("els:changeLightStage_c")
|
|
AddEventHandler("els:changeLightStage_c", function(sender, stage, advisor, prim, sec)
|
|
Citizen.CreateThread(function()
|
|
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
|
|
local vehNetID = GetVehiclePedIsUsing(ped_s)
|
|
|
|
if elsVehs[vehNetID] ~= nil then
|
|
elsVehs[vehNetID].stage = stage
|
|
if (stage == 1) then
|
|
elsVehs[vehNetID].warning = false
|
|
elsVehs[vehNetID].secondary = true
|
|
elsVehs[vehNetID].primary = false
|
|
elseif (stage == 2) then
|
|
elsVehs[vehNetID].warning = false
|
|
elsVehs[vehNetID].secondary = true
|
|
elsVehs[vehNetID].primary = true
|
|
elseif (stage == 3) then
|
|
elsVehs[vehNetID].warning = true
|
|
elsVehs[vehNetID].secondary = true
|
|
elsVehs[vehNetID].primary = true
|
|
else
|
|
elsVehs[vehNetID].warning = false
|
|
elsVehs[vehNetID].secondary = false
|
|
elsVehs[vehNetID].primary = false
|
|
end
|
|
elsVehs[vehNetID].primPattern = prim
|
|
elsVehs[vehNetID].secPattern = sec
|
|
elsVehs[vehNetID].advisorPattern = advisor
|
|
else
|
|
elsVehs[vehNetID] = {}
|
|
elsVehs[vehNetID].stage = stage
|
|
if (stage == 1) then
|
|
elsVehs[vehNetID].warning = false
|
|
elsVehs[vehNetID].secondary = true
|
|
elsVehs[vehNetID].primary = false
|
|
elseif (stage == 2) then
|
|
elsVehs[vehNetID].warning = false
|
|
elsVehs[vehNetID].secondary = true
|
|
elsVehs[vehNetID].primary = true
|
|
elseif (stage == 3) then
|
|
elsVehs[vehNetID].warning = true
|
|
elsVehs[vehNetID].secondary = true
|
|
elsVehs[vehNetID].primary = true
|
|
else
|
|
elsVehs[vehNetID].warning = false
|
|
elsVehs[vehNetID].secondary = false
|
|
elsVehs[vehNetID].primary = false
|
|
end
|
|
elsVehs[vehNetID].primPattern = prim
|
|
elsVehs[vehNetID].secPattern = sec
|
|
elsVehs[vehNetID].advisorPattern = advisor
|
|
end
|
|
end
|
|
end
|
|
return
|
|
end)
|
|
end)
|
|
|
|
RegisterNetEvent("els:changePartState_c")
|
|
AddEventHandler("els:changePartState_c", function(sender, part, newstate)
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
local vehNetID = GetVehiclePedIsUsing(ped_s)
|
|
|
|
if elsVehs[vehNetID] == nil then
|
|
elsVehs[vehNetID] = {}
|
|
elsVehs[vehNetID].stage = 0
|
|
elsVehs[vehNetID].primPattern = 1
|
|
elsVehs[vehNetID].secPattern = 1
|
|
elsVehs[vehNetID].advisorPattern = 1
|
|
end
|
|
|
|
elsVehs[vehNetID][part] = newstate
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent("els:changeAdvisorPattern_c")
|
|
AddEventHandler("els:changeAdvisorPattern_c", function(sender, pat)
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
|
|
local vehNetID = GetVehiclePedIsUsing(ped_s)
|
|
|
|
if elsVehs[vehNetID] ~= nil then
|
|
elsVehs[vehNetID].advisorPattern = pat
|
|
else
|
|
elsVehs[vehNetID] = {}
|
|
elsVehs[vehNetID].advisorPattern = pat
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent("els:changeSecondaryPattern_c")
|
|
AddEventHandler("els:changeSecondaryPattern_c", function(sender, pat)
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
|
|
local vehNetID = GetVehiclePedIsUsing(ped_s)
|
|
|
|
if elsVehs[vehNetID] ~= nil then
|
|
elsVehs[vehNetID].secPattern = pat
|
|
else
|
|
elsVehs[vehNetID] = {}
|
|
elsVehs[vehNetID].secPattern = pat
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent("els:changePrimaryPattern_c")
|
|
AddEventHandler("els:changePrimaryPattern_c", function(sender, pat)
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
|
|
local vehNetID = GetVehiclePedIsUsing(ped_s)
|
|
|
|
if elsVehs[vehNetID] ~= nil then
|
|
elsVehs[vehNetID].primPattern = pat
|
|
else
|
|
elsVehs[vehNetID] = {}
|
|
elsVehs[vehNetID].primPattern = pat
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent("els:setSirenState_c")
|
|
AddEventHandler("els:setSirenState_c", function(sender, newstate)
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
local veh = GetVehiclePedIsUsing(ped_s)
|
|
setSirenState(veh, newstate)
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent("els:setHornState_c")
|
|
AddEventHandler("els:setHornState_c", function(sender, newstate)
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
local veh = GetVehiclePedIsUsing(ped_s)
|
|
setHornState(veh, newstate)
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent("els:setSceneLightState_c")
|
|
AddEventHandler("els:setSceneLightState_c", function(sender)
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
local veh = GetVehiclePedIsUsing(ped_s)
|
|
if(elsVehs[veh] == nil) then
|
|
changeLightStage(0, 1, 1, 1)
|
|
end
|
|
if IsVehicleExtraTurnedOn(veh, 12) then
|
|
setExtraState(veh, 12, 1)
|
|
else
|
|
setExtraState(veh, 12, 0)
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent("els:setCruiseLights_c")
|
|
AddEventHandler("els:setCruiseLights_c", function(sender)
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
local veh = GetVehiclePedIsUsing(ped_s)
|
|
if elsVehs[veh] ~= nil then
|
|
if elsVehs[veh].cruise then
|
|
elsVehs[veh].cruise = false
|
|
else
|
|
elsVehs[veh].cruise = true
|
|
end
|
|
else
|
|
elsVehs[veh] = {}
|
|
elsVehs[veh].cruise = true
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent("els:setTakedownState_c")
|
|
AddEventHandler("els:setTakedownState_c", function(sender)
|
|
local player_s = GetPlayerFromServerId(sender)
|
|
local ped_s = GetPlayerPed(player_s)
|
|
if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then
|
|
if IsPedInAnyVehicle(ped_s, false) then
|
|
local veh = GetVehiclePedIsUsing(ped_s)
|
|
if(elsVehs[veh] == nil) then
|
|
changeLightStage(0, 1, 1, 1)
|
|
end
|
|
if IsVehicleExtraTurnedOn(veh, 11) then
|
|
setExtraState(veh, 11, 1)
|
|
else
|
|
setExtraState(veh, 11, 0)
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
function toggleSirenMute(veh, toggle)
|
|
if DoesEntityExist(veh) and not IsEntityDead(veh) then
|
|
DisableVehicleImpactExplosionActivation(veh, toggle)
|
|
end
|
|
end
|
|
|
|
function setHornState(veh, newstate)
|
|
if DoesEntityExist(veh) and not IsEntityDead(veh) then
|
|
if newstate ~= h_horn_state[veh] then
|
|
|
|
if h_soundID_veh[veh] ~= nil then
|
|
StopSound(h_soundID_veh[veh])
|
|
ReleaseSoundId(h_soundID_veh[veh])
|
|
h_soundID_veh[veh] = nil
|
|
end
|
|
|
|
if newstate == 1 then
|
|
h_soundID_veh[veh] = GetSoundId()
|
|
PlaySoundFromEntity(h_soundID_veh[veh], getVehicleVCFInfo(veh).sounds.mainHorn.audioString, veh, 0, 0, 0)
|
|
end
|
|
|
|
h_horn_state[veh] = newstate
|
|
end
|
|
end
|
|
end
|
|
|
|
function setSirenState(veh, newstate)
|
|
if DoesEntityExist(veh) and not IsEntityDead(veh) then
|
|
if newstate ~= m_siren_state[veh] then
|
|
|
|
if m_soundID_veh[veh] ~= nil then
|
|
StopSound(m_soundID_veh[veh])
|
|
ReleaseSoundId(m_soundID_veh[veh])
|
|
m_soundID_veh[veh] = nil
|
|
end
|
|
|
|
if newstate == 1 then
|
|
|
|
m_soundID_veh[veh] = GetSoundId()
|
|
PlaySoundFromEntity(m_soundID_veh[veh], getVehicleVCFInfo(veh).sounds.srnTone1.audioString, veh, 0, 0, 0)
|
|
toggleSirenMute(veh, true)
|
|
|
|
elseif newstate == 2 then
|
|
|
|
m_soundID_veh[veh] = GetSoundId()
|
|
PlaySoundFromEntity(m_soundID_veh[veh], getVehicleVCFInfo(veh).sounds.srnTone2.audioString, veh, 0, 0, 0)
|
|
toggleSirenMute(veh, true)
|
|
|
|
elseif newstate == 3 then
|
|
|
|
m_soundID_veh[veh] = GetSoundId()
|
|
PlaySoundFromEntity(m_soundID_veh[veh], getVehicleVCFInfo(veh).sounds.srnTone3.audioString, veh, 0, 0, 0)
|
|
toggleSirenMute(veh, true)
|
|
|
|
else
|
|
toggleSirenMute(veh, true)
|
|
end
|
|
|
|
m_siren_state[veh] = newstate
|
|
end
|
|
end
|
|
end
|
|
|
|
function RotAnglesToVec(rot) -- input vector3
|
|
local z = math.rad(rot.z)
|
|
local x = math.rad(rot.x)
|
|
local num = math.abs(math.cos(x))
|
|
return vector3(-math.sin(z)*num, math.cos(z)*num, math.sin(x))
|
|
end
|
|
|
|
function changeLightStage(state, advisor, PatternPrim, PatternSec)
|
|
TriggerServerEvent("els:changeLightStage_s", state, advisor, PatternPrim, PatternSec)
|
|
end
|
|
|
|
function changeAdvisorPattern(pat)
|
|
TriggerServerEvent("els:changeAdvisorPattern_s", pat)
|
|
end
|
|
|
|
function changePrimaryPattern(pat)
|
|
TriggerServerEvent("els:changePrimaryPattern_s", pat)
|
|
end
|
|
|
|
function changeSecondaryPattern(pat)
|
|
TriggerServerEvent("els:changeSecondaryPattern_s", pat)
|
|
end
|
|
|
|
function checkCar(car)
|
|
if car then
|
|
carModel = GetEntityModel(car)
|
|
carName = GetDisplayNameFromVehicleModel(carModel)
|
|
|
|
return carName
|
|
end
|
|
end
|
|
|
|
function checkCarHash(car)
|
|
if car then
|
|
for k,v in pairs(els_Vehicles) do
|
|
if GetEntityModel(car) == GetHashKey(k) then
|
|
return k
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function vehInTable (tab, val)
|
|
for index in pairs(tab) do
|
|
if index == val then
|
|
return true
|
|
end
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
function setExtraState(veh, extra, state)
|
|
if (not IsEntityDead(veh) and DoesEntityExist(veh)) then
|
|
if els_Vehicles[checkCarHash(veh)].extras[extra] ~= nil then
|
|
if(els_Vehicles[checkCarHash(veh)].extras[extra].enabled) then
|
|
if DoesExtraExist(veh, extra) then
|
|
SetVehicleExtra(veh, extra, state)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function isVehicleELS(veh)
|
|
return vehInTable(els_Vehicles, checkCarHash(veh))
|
|
end
|
|
|
|
function getVehicleLightStage(veh)
|
|
|
|
if (elsVehs[veh] ~= nil) then
|
|
return elsVehs[veh].stage
|
|
end
|
|
end
|
|
|
|
function Draw(text, r, g, b, alpha, x, y, width, height, ya, center, font)
|
|
SetTextColour(r, g, b, alpha)
|
|
SetTextFont(font)
|
|
SetTextScale(width, height)
|
|
SetTextWrap(0.0, 1.0)
|
|
SetTextCentre(center)
|
|
SetTextDropshadow(0, 0, 0, 0, 0)
|
|
SetTextEdge(1, 0, 0, 0, 205)
|
|
BeginTextCommandDisplayText("STRING")
|
|
AddTextComponentSubstringPlayerName(text)
|
|
SetUiLayer(ya)
|
|
EndTextCommandDisplayText(x, y)
|
|
end
|
|
|
|
function hornCleanup()
|
|
Citizen.CreateThread(function()
|
|
for vehicle, state in pairs(h_horn_state) do
|
|
if state >= 0 then
|
|
if not DoesEntityExist(vehicle) or IsEntityDead(vehicle) then
|
|
if h_soundID_veh[vehicle] ~= nil then
|
|
StopSound(h_soundID_veh[vehicle])
|
|
ReleaseSoundId(h_soundID_veh[vehicle])
|
|
h_soundID_veh[vehicle] = nil
|
|
h_horn_state[vehicle] = nil
|
|
end
|
|
end
|
|
end
|
|
end
|
|
return
|
|
end)
|
|
end
|
|
|
|
function sirenCleanup()
|
|
Citizen.CreateThread(function()
|
|
for vehicle, state in pairs(m_siren_state) do
|
|
if m_soundID_veh[vehicle] ~= nil then
|
|
if not DoesEntityExist(vehicle) or IsEntityDead(vehicle) then
|
|
StopSound(m_soundID_veh[vehicle])
|
|
ReleaseSoundId(m_soundID_veh[vehicle])
|
|
m_soundID_veh[vehicle] = nil
|
|
m_siren_state[vehicle] = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
for vehicle, state in pairs(d_siren_state) do
|
|
if d_soundID_veh[vehicle] ~= nil then
|
|
if not DoesEntityExist(vehicle) or IsEntityDead(vehicle) then
|
|
StopSound(d_soundID_veh[vehicle])
|
|
ReleaseSoundId(d_soundID_veh[vehicle])
|
|
d_soundID_veh[vehicle] = nil
|
|
d_siren_state[vehicle] = nil
|
|
end
|
|
end
|
|
end
|
|
return
|
|
end)
|
|
end
|
|
|
|
function _DrawRect(x, y, width, height, r, g, b, a, ya)
|
|
SetUiLayer(ya)
|
|
DrawRect(x, y, width, height, r, g, b, a)
|
|
end
|
|
|
|
function vehicleLightCleanup()
|
|
Citizen.CreateThread(function()
|
|
for vehicle,_ in pairs(elsVehs) do
|
|
if elsVehs[vehicle] then
|
|
if not DoesEntityExist(vehicle) or IsEntityDead(vehicle) then
|
|
if elsVehs[vehicle] ~= nil then
|
|
elsVehs[vehicle] = nil
|
|
end
|
|
end
|
|
end
|
|
end
|
|
return
|
|
end)
|
|
end
|
|
|
|
function LghtSoundCleaner()
|
|
vehicleLightCleanup()
|
|
hornCleanup()
|
|
sirenCleanup()
|
|
end
|
|
|
|
function changePrimaryPatternMath(way)
|
|
if playButtonPressSounds then
|
|
PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1)
|
|
end
|
|
local primMax = getNumberOfPrimaryPatterns(GetVehiclePedIsUsing(GetPlayerPed(-1)))
|
|
local primMin = 1
|
|
local temp = lightPatternPrim
|
|
|
|
temp = temp + way
|
|
|
|
if(temp < primMin) then
|
|
temp = primMax
|
|
end
|
|
|
|
if(temp > primMax) then
|
|
temp = primMin
|
|
end
|
|
|
|
lightPatternPrim = temp
|
|
|
|
if temp ~= 0 then lightPatternsPrim = temp end
|
|
changePrimaryPattern(lightPatternsPrim)
|
|
end
|
|
|
|
function changeSecondaryPatternMath(way)
|
|
if playButtonPressSounds then
|
|
PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1)
|
|
end
|
|
local primMax = getNumberOfSecondaryPatterns(GetVehiclePedIsUsing(GetPlayerPed(-1)))
|
|
local primMin = 1
|
|
local temp = lightPatternSec
|
|
|
|
temp = temp + way
|
|
|
|
if(temp > primMax) then
|
|
temp = primMin
|
|
end
|
|
|
|
if(temp < primMin) then
|
|
temp = primMax
|
|
end
|
|
|
|
lightPatternSec = temp
|
|
changeSecondaryPattern(lightPatternSec)
|
|
end
|
|
|
|
function changeAdvisorPatternMath(way)
|
|
if playButtonPressSounds then
|
|
PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1)
|
|
end
|
|
|
|
local primMax = getNumberOfAdvisorPatterns(GetVehiclePedIsUsing(GetPlayerPed(-1)))
|
|
|
|
local primMin = 1
|
|
local temp = advisorPatternSelectedIndex
|
|
|
|
temp = temp + way
|
|
|
|
if(temp < primMin) then
|
|
temp = primMax
|
|
end
|
|
|
|
if(temp > primMax) then
|
|
temp = primMin
|
|
end
|
|
|
|
advisorPatternSelectedIndex = temp
|
|
changeAdvisorPattern(advisorPatternSelectedIndex)
|
|
end
|
|
|
|
function setSirenStateButton(state)
|
|
if playButtonPressSounds then
|
|
PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1)
|
|
end
|
|
if m_siren_state[GetVehiclePedIsUsing(GetPlayerPed(-1))] ~= state then
|
|
TriggerServerEvent("els:setSirenState_s", state)
|
|
elseif m_siren_state[GetVehiclePedIsUsing(GetPlayerPed(-1))] == state then
|
|
TriggerServerEvent("els:setSirenState_s", 0)
|
|
end
|
|
end
|
|
|
|
function upOneStage()
|
|
if playButtonPressSounds then
|
|
PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1)
|
|
end
|
|
local vehNetID = GetVehiclePedIsUsing(GetPlayerPed(-1))
|
|
|
|
local newStage = 1
|
|
|
|
if (elsVehs[vehNetID] ~= nil and elsVehs[vehNetID].stage ~= nil) then
|
|
newStage = elsVehs[vehNetID].stage + 1
|
|
end
|
|
|
|
if newStage == 4 then
|
|
newStage = 0
|
|
end
|
|
|
|
changeLightStage(newStage, advisorPatternSelectedIndex, lightPatternPrim, lightPatternSec)
|
|
|
|
if GetVehicleClass(GetVehiclePedIsUsing(GetPlayerPed(-1))) == 18 then
|
|
if newStage == getVehicleVCFInfo(GetVehiclePedIsUsing(GetPlayerPed(-1))).misc.dfltsirenltsactivateatlstg then
|
|
toggleSirenMute(GetVehiclePedIsUsing(GetPlayerPed(-1)), true)
|
|
SetVehicleSiren(GetVehiclePedIsUsing(GetPlayerPed(-1)), true)
|
|
else
|
|
SetVehicleSiren(GetVehiclePedIsUsing(GetPlayerPed(-1)), false)
|
|
end
|
|
|
|
if(newStage == 0) then
|
|
SetVehicleSiren(GetVehiclePedIsUsing(GetPlayerPed(-1)), false)
|
|
TriggerServerEvent("els:setSirenState_s", 0)
|
|
TriggerServerEvent("els:setDualSirenState_s", 0)
|
|
TriggerServerEvent("els:setDualSiren_s", false)
|
|
end
|
|
end
|
|
end
|
|
|
|
function downOneStage()
|
|
if playButtonPressSounds then
|
|
PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1)
|
|
end
|
|
local vehNetID = GetVehiclePedIsUsing(GetPlayerPed(-1))
|
|
|
|
local newStage = 3
|
|
|
|
if(elsVehs[vehNetID] ~= nil and elsVehs[vehNetID].stage ~= nil) then
|
|
newStage = elsVehs[vehNetID].stage - 1
|
|
end
|
|
|
|
if newStage == -1 then
|
|
newStage = 3
|
|
end
|
|
|
|
changeLightStage(newStage, advisorPatternSelectedIndex, lightPatternPrim, lightPatternSec)
|
|
|
|
if GetVehicleClass(GetVehiclePedIsUsing(GetPlayerPed(-1))) == 18 then
|
|
if newStage == getVehicleVCFInfo(GetVehiclePedIsUsing(GetPlayerPed(-1))).misc.dfltsirenltsactivateatlstg then
|
|
toggleSirenMute(GetVehiclePedIsUsing(GetPlayerPed(-1)), true)
|
|
SetVehicleSiren(GetVehiclePedIsUsing(GetPlayerPed(-1)), true)
|
|
else
|
|
SetVehicleSiren(GetVehiclePedIsUsing(GetPlayerPed(-1)), false)
|
|
end
|
|
|
|
if (newStage == 0) then
|
|
SetVehicleSiren(GetVehiclePedIsUsing(GetPlayerPed(-1)), false)
|
|
TriggerServerEvent("els:setSirenState_s", 0)
|
|
TriggerServerEvent("els:setDualSirenState_s", 0)
|
|
TriggerServerEvent("els:setDualSiren_s", false)
|
|
end
|
|
end
|
|
end
|
|
|
|
function displayScreenKeyboard(text)
|
|
HideHudAndRadarThisFrame()
|
|
DisplayOnscreenKeyboard(1, text, "", "", "", "", "", 60)
|
|
while UpdateOnscreenKeyboard() == 0 do
|
|
DisableAllControlActions(0)
|
|
Wait(0)
|
|
end
|
|
if (not GetOnscreenKeyboardResult()) then return nil end
|
|
return GetOnscreenKeyboardResult()
|
|
end
|
|
|
|
function formatPatternNumber(num)
|
|
if num < 10 then
|
|
return "00" .. tostring(num)
|
|
elseif num < 100 and num >= 10 then
|
|
return "0" .. tostring(num)
|
|
else
|
|
return tostring(num)
|
|
end
|
|
end
|
|
|
|
function getVehicleVCFInfo(veh)
|
|
return els_Vehicles[checkCarHash(veh)]
|
|
end |