diff --git a/resources/Lux_ELS/client.lua.bak b/resources/Lux_ELS/client.lua.bak deleted file mode 100644 index 6dcd6a85d..000000000 --- a/resources/Lux_ELS/client.lua.bak +++ /dev/null @@ -1,643 +0,0 @@ ---[[ ---------------------------------------------------- -LUXART VEHICLE CONTROL (FOR FIVEM) ---------------------------------------------------- -Last revision: MAY 01 2017 (VERS. 1.01) -Coded by Lt.Caine ---------------------------------------------------- -NOTES - LVC will automatically apply to all emergency vehicles (vehicle class 18) ---------------------------------------------------- -CONTROLS - Right indicator: = (Next Custom Radio Track) - Left indicator: - (Previous Custom Radio Track) - Hazard lights: ] - Toggle emergency lights: Q (Text Chat Team) - Airhorn: E (Horn) - Toggle siren: 1 (Previous Radio Station) - Manual siren / Change siren tone: R (Next Radio Station) - Auxiliary siren: Z ---------------------------------------------------- -]] - -local count_bcast_timer = 0 -local delay_bcast_timer = 200 - -local count_sndclean_timer = 0 -local delay_sndclean_timer = 400 - -local actv_ind_timer = false -local count_ind_timer = 0 -local delay_ind_timer = 180 - -local actv_lxsrnmute_temp = false -local srntone_temp = 0 -local dsrn_mute = true - -local state_indic = {} -local state_lxsiren = {} -local state_pwrcall = {} -local state_airmanu = {} - -local ind_state_o = 0 -local ind_state_l = 1 -local ind_state_r = 2 -local ind_state_h = 3 - -local snd_lxsiren = {} -local snd_pwrcall = {} -local snd_airmanu = {} - --- these models will use their real wail siren, as determined by their assigned audio hash in vehicles.meta -local eModelsWithFireSrn = -{ - "FIRETRUK", - "exp", - "f750", - "ferrara", - "pengine" - "prescue", - "brush", - "enladder", - "bat3", -} - --- models listed below will use AMBULANCE_WARNING as auxiliary siren --- unlisted models will instead use the default wail as the auxiliary siren -local eModelsWithPcall = -{ - "AMBULANCE", - "FIRETRUK", - "LGUARD", -} - - ---------------------------------------------------------------------- -function ShowDebug(text) - SetNotificationTextEntry("STRING") - AddTextComponentString(text) - DrawNotification(false, false) -end - ---------------------------------------------------------------------- -function useFiretruckSiren(veh) - local model = GetEntityModel(veh) - for i = 1, #eModelsWithFireSrn, 1 do - if model == GetHashKey(eModelsWithFireSrn[i]) then - return true - end - end - return false -end - ---------------------------------------------------------------------- -function usePowercallAuxSrn(veh) - local model = GetEntityModel(veh) - for i = 1, #eModelsWithPcall, 1 do - if model == GetHashKey(eModelsWithPcall[i]) then - return true - end - end - return false -end - ---------------------------------------------------------------------- -function CleanupSounds() - if count_sndclean_timer > delay_sndclean_timer then - count_sndclean_timer = 0 - for k, v in pairs(state_lxsiren) do - if v > 0 then - if not DoesEntityExist(k) or IsEntityDead(k) then - if snd_lxsiren[k] ~= nil then - StopSound(snd_lxsiren[k]) - ReleaseSoundId(snd_lxsiren[k]) - snd_lxsiren[k] = nil - state_lxsiren[k] = nil - end - end - end - end - for k, v in pairs(state_pwrcall) do - if v == true then - if not DoesEntityExist(k) or IsEntityDead(k) then - if snd_pwrcall[k] ~= nil then - StopSound(snd_pwrcall[k]) - ReleaseSoundId(snd_pwrcall[k]) - snd_pwrcall[k] = nil - state_pwrcall[k] = nil - end - end - end - end - for k, v in pairs(state_airmanu) do - if v == true then - if not DoesEntityExist(k) or IsEntityDead(k) or IsVehicleSeatFree(k, -1) then - if snd_airmanu[k] ~= nil then - StopSound(snd_airmanu[k]) - ReleaseSoundId(snd_airmanu[k]) - snd_airmanu[k] = nil - state_airmanu[k] = nil - end - end - end - end - else - count_sndclean_timer = count_sndclean_timer + 1 - end -end - ---------------------------------------------------------------------- -function TogIndicStateForVeh(veh, newstate) - if DoesEntityExist(veh) and not IsEntityDead(veh) then - if newstate == ind_state_o then - SetVehicleIndicatorLights(veh, 0, false) -- R - SetVehicleIndicatorLights(veh, 1, false) -- L - elseif newstate == ind_state_l then - SetVehicleIndicatorLights(veh, 0, false) -- R - SetVehicleIndicatorLights(veh, 1, true) -- L - elseif newstate == ind_state_r then - SetVehicleIndicatorLights(veh, 0, true) -- R - SetVehicleIndicatorLights(veh, 1, false) -- L - elseif newstate == ind_state_h then - SetVehicleIndicatorLights(veh, 0, true) -- R - SetVehicleIndicatorLights(veh, 1, true) -- L - end - state_indic[veh] = newstate - end -end - ---------------------------------------------------------------------- -function TogMuteDfltSrnForVeh(veh, toggle) - if DoesEntityExist(veh) and not IsEntityDead(veh) then - DisableVehicleImpactExplosionActivation(veh, toggle) - end -end - ---------------------------------------------------------------------- -function SetLxSirenStateForVeh(veh, newstate) - if DoesEntityExist(veh) and not IsEntityDead(veh) then - if newstate ~= state_lxsiren[veh] then - - if snd_lxsiren[veh] ~= nil then - StopSound(snd_lxsiren[veh]) - ReleaseSoundId(snd_lxsiren[veh]) - snd_lxsiren[veh] = nil - end - - if newstate == 1 then - if useFiretruckSiren(veh) then - TogMuteDfltSrnForVeh(veh, false) - else - snd_lxsiren[veh] = GetSoundId() - PlaySoundFromEntity(snd_lxsiren[veh], "VEHICLES_HORNS_SIREN_1", veh, 0, 0, 0) - TogMuteDfltSrnForVeh(veh, true) - end - - elseif newstate == 2 then - snd_lxsiren[veh] = GetSoundId() - PlaySoundFromEntity(snd_lxsiren[veh], "VEHICLES_HORNS_SIREN_2", veh, 0, 0, 0) - TogMuteDfltSrnForVeh(veh, true) - - elseif newstate == 3 then - snd_lxsiren[veh] = GetSoundId() - if useFiretruckSiren(veh) then - PlaySoundFromEntity(snd_lxsiren[veh], "VEHICLES_HORNS_AMBULANCE_WARNING", veh, 0, 0, 0) - else - PlaySoundFromEntity(snd_lxsiren[veh], "VEHICLES_HORNS_POLICE_WARNING", veh, 0, 0, 0) - end - TogMuteDfltSrnForVeh(veh, true) - - else - TogMuteDfltSrnForVeh(veh, true) - - end - - state_lxsiren[veh] = newstate - end - end -end - ---------------------------------------------------------------------- -function TogPowercallStateForVeh(veh, toggle) - if DoesEntityExist(veh) and not IsEntityDead(veh) then - if toggle == true then - if snd_pwrcall[veh] == nil then - snd_pwrcall[veh] = GetSoundId() - if usePowercallAuxSrn(veh) then - PlaySoundFromEntity(snd_pwrcall[veh], "VEHICLES_HORNS_AMBULANCE_WARNING", veh, 0, 0, 0) - else - PlaySoundFromEntity(snd_pwrcall[veh], "VEHICLES_HORNS_SIREN_1", veh, 0, 0, 0) - end - end - else - if snd_pwrcall[veh] ~= nil then - StopSound(snd_pwrcall[veh]) - ReleaseSoundId(snd_pwrcall[veh]) - snd_pwrcall[veh] = nil - end - end - state_pwrcall[veh] = toggle - end -end - ---------------------------------------------------------------------- -function SetAirManuStateForVeh(veh, newstate) - if DoesEntityExist(veh) and not IsEntityDead(veh) then - if newstate ~= state_airmanu[veh] then - - if snd_airmanu[veh] ~= nil then - StopSound(snd_airmanu[veh]) - ReleaseSoundId(snd_airmanu[veh]) - snd_airmanu[veh] = nil - end - - if newstate == 1 then - snd_airmanu[veh] = GetSoundId() - if useFiretruckSiren(veh) then - PlaySoundFromEntity(snd_airmanu[veh], "VEHICLES_HORNS_FIRETRUCK_WARNING", veh, 0, 0, 0) - else - PlaySoundFromEntity(snd_airmanu[veh], "SIRENS_AIRHORN", veh, 0, 0, 0) - end - - elseif newstate == 2 then - snd_airmanu[veh] = GetSoundId() - PlaySoundFromEntity(snd_airmanu[veh], "VEHICLES_HORNS_SIREN_1", veh, 0, 0, 0) - - elseif newstate == 3 then - snd_airmanu[veh] = GetSoundId() - PlaySoundFromEntity(snd_airmanu[veh], "VEHICLES_HORNS_SIREN_2", veh, 0, 0, 0) - - end - - state_airmanu[veh] = newstate - end - end -end - - ---------------------------------------------------------------------- -RegisterNetEvent("lvc_TogIndicState_c") -AddEventHandler("lvc_TogIndicState_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 ped_s ~= GetPlayerPed(-1) then - if IsPedInAnyVehicle(ped_s, false) then - local veh = GetVehiclePedIsUsing(ped_s) - TogIndicStateForVeh(veh, newstate) - end - end - end -end) - ---------------------------------------------------------------------- -RegisterNetEvent("lvc_TogDfltSrnMuted_c") -AddEventHandler("lvc_TogDfltSrnMuted_c", function(sender, toggle) - local player_s = GetPlayerFromServerId(sender) - local ped_s = GetPlayerPed(player_s) - if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then - if ped_s ~= GetPlayerPed(-1) then - if IsPedInAnyVehicle(ped_s, false) then - local veh = GetVehiclePedIsUsing(ped_s) - TogMuteDfltSrnForVeh(veh, toggle) - end - end - end -end) - ---------------------------------------------------------------------- -RegisterNetEvent("lvc_SetLxSirenState_c") -AddEventHandler("lvc_SetLxSirenState_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 ped_s ~= GetPlayerPed(-1) then - if IsPedInAnyVehicle(ped_s, false) then - local veh = GetVehiclePedIsUsing(ped_s) - SetLxSirenStateForVeh(veh, newstate) - end - end - end -end) - ---------------------------------------------------------------------- -RegisterNetEvent("lvc_TogPwrcallState_c") -AddEventHandler("lvc_TogPwrcallState_c", function(sender, toggle) - local player_s = GetPlayerFromServerId(sender) - local ped_s = GetPlayerPed(player_s) - if DoesEntityExist(ped_s) and not IsEntityDead(ped_s) then - if ped_s ~= GetPlayerPed(-1) then - if IsPedInAnyVehicle(ped_s, false) then - local veh = GetVehiclePedIsUsing(ped_s) - TogPowercallStateForVeh(veh, toggle) - end - end - end -end) - ---------------------------------------------------------------------- -RegisterNetEvent("lvc_SetAirManuState_c") -AddEventHandler("lvc_SetAirManuState_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 ped_s ~= GetPlayerPed(-1) then - if IsPedInAnyVehicle(ped_s, false) then - local veh = GetVehiclePedIsUsing(ped_s) - SetAirManuStateForVeh(veh, newstate) - end - end - end -end) - - - ---------------------------------------------------------------------- -Citizen.CreateThread(function() - while true do - - CleanupSounds() - - ----- IS IN VEHICLE ----- - local playerped = GetPlayerPed(-1) - if IsPedInAnyVehicle(playerped, false) then - - ----- IS DRIVER ----- - local veh = GetVehiclePedIsUsing(playerped) - if GetPedInVehicleSeat(veh, -1) == playerped then - - DisableControlAction(0, 84, true) -- INPUT_VEH_PREV_RADIO_TRACK - DisableControlAction(0, 83, true) -- INPUT_VEH_NEXT_RADIO_TRACK - - if state_indic[veh] ~= ind_state_o and state_indic[veh] ~= ind_state_l and state_indic[veh] ~= ind_state_r and state_indic[veh] ~= ind_state_h then - state_indic[veh] = ind_state_o - end - - -- INDIC AUTO CONTROL - if actv_ind_timer == true then - if state_indic[veh] == ind_state_l or state_indic[veh] == ind_state_r then - if GetEntitySpeed(veh) < 6 then - count_ind_timer = 0 - else - if count_ind_timer > delay_ind_timer then - count_ind_timer = 0 - actv_ind_timer = false - state_indic[veh] = ind_state_o - PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - TogIndicStateForVeh(veh, state_indic[veh]) - count_bcast_timer = delay_bcast_timer - else - count_ind_timer = count_ind_timer + 1 - end - end - end - end - - - --- IS EMERG VEHICLE --- - if GetVehicleClass(veh) == 18 then - - local actv_manu = false - local actv_horn = false - - DisableControlAction(0, 86, true) -- INPUT_VEH_HORN - DisableControlAction(0, 20, true) -- INPUT_CELLPHONE_UP - --DisableControlAction(0, 173, true) -- INPUT_CELLPHONE_DOWN - --DisableControlAction(0, 174, true) -- INPUT_CELLPHONE_LEFT - --DisableControlAction(0, 175, true) -- INPUT_CELLPHONE_RIGHT - DisableControlAction(0, 140, true) -- INPUT_VEH_NEXT_RADIO - DisableControlAction(0, 157, true) -- INPUT_VEH_PREV_RADIO - DisableControlAction(0, 19, true) -- INPUT_CHARACTER_WHEEL - DisableControlAction(0, 85, true) -- INPUT_VEH_RADIO_WHEEL - DisableControlAction(0, 80, true) -- INPUT_VEH_CIN_CAM - - SetVehRadioStation(veh, "OFF") - SetVehicleRadioEnabled(veh, false) - - if state_lxsiren[veh] ~= 1 and state_lxsiren[veh] ~= 2 and state_lxsiren[veh] ~= 3 then - state_lxsiren[veh] = 0 - end - if state_pwrcall[veh] ~= true then - state_pwrcall[veh] = false - end - if state_airmanu[veh] ~= 1 and state_airmanu[veh] ~= 2 and state_airmanu[veh] ~= 3 then - state_airmanu[veh] = 0 - end - - if useFiretruckSiren(veh) and state_lxsiren[veh] == 1 then - TogMuteDfltSrnForVeh(veh, false) - dsrn_mute = false - else - TogMuteDfltSrnForVeh(veh, true) - dsrn_mute = true - end - - if not IsVehicleSirenOn(veh) and state_lxsiren[veh] > 0 then - PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - SetLxSirenStateForVeh(veh, 0) - count_bcast_timer = delay_bcast_timer - end - if not IsVehicleSirenOn(veh) and state_pwrcall[veh] == true then - PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - TogPowercallStateForVeh(veh, false) - count_bcast_timer = delay_bcast_timer - end - - ----- CONTROLS ----- - if not IsPauseMenuActive() then - - -- TOG DFLT SRN LIGHTS - if IsDisabledControlJustReleased(0, 85) or IsDisabledControlJustReleased(0, 52) then - if IsVehicleSirenOn(veh) then - PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - SetVehicleSiren(veh, false) - else - PlaySoundFrontend(-1, "NAV_LEFT_RIGHT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - SetVehicleSiren(veh, true) - count_bcast_timer = delay_bcast_timer - end - - -- TOG LX SIREN - elseif IsDisabledControlJustReleased(0, 19) or IsDisabledControlJustReleased(0, 157) then - local cstate = state_lxsiren[veh] - if cstate == 0 then - if IsVehicleSirenOn(veh) then - PlaySoundFrontend(-1, "NAV_LEFT_RIGHT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) -- on - SetLxSirenStateForVeh(veh, 1) - count_bcast_timer = delay_bcast_timer - end - else - PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) -- off - SetLxSirenStateForVeh(veh, 0) - count_bcast_timer = delay_bcast_timer - end - - -- POWERCALL - elseif IsDisabledControlJustReleased(0, 20) then - if state_pwrcall[veh] == true then - PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - TogPowercallStateForVeh(veh, false) - count_bcast_timer = delay_bcast_timer - else - if IsVehicleSirenOn(veh) then - PlaySoundFrontend(-1, "NAV_LEFT_RIGHT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - TogPowercallStateForVeh(veh, true) - count_bcast_timer = delay_bcast_timer - end - end - - end - - -- BROWSE LX SRN TONES - if state_lxsiren[veh] > 0 then - if IsDisabledControlJustReleased(0, 80) or IsDisabledControlJustReleased(0, 140) then - if IsVehicleSirenOn(veh) then - local cstate = state_lxsiren[veh] - local nstate = 1 - PlaySoundFrontend(-1, "NAV_LEFT_RIGHT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) -- on - if cstate == 1 then - nstate = 2 - elseif cstate == 2 then - nstate = 3 - else - nstate = 1 - end - SetLxSirenStateForVeh(veh, nstate) - count_bcast_timer = delay_bcast_timer - end - end - end - - -- MANU - if state_lxsiren[veh] < 1 then - if IsDisabledControlPressed(0, 80) or IsDisabledControlPressed(0, 140) then - actv_manu = true - else - actv_manu = false - end - else - actv_manu = false - end - - -- HORN - if IsDisabledControlPressed(0, 86) then - actv_horn = true - else - actv_horn = false - end - - end - - ---- ADJUST HORN / MANU STATE ---- - local hmanu_state_new = 0 - if actv_horn == true and actv_manu == false then - hmanu_state_new = 1 - elseif actv_horn == false and actv_manu == true then - hmanu_state_new = 2 - elseif actv_horn == true and actv_manu == true then - hmanu_state_new = 3 - end - if hmanu_state_new == 1 then - if not useFiretruckSiren(veh) then - if state_lxsiren[veh] > 0 and actv_lxsrnmute_temp == false then - srntone_temp = state_lxsiren[veh] - SetLxSirenStateForVeh(veh, 0) - actv_lxsrnmute_temp = true - end - end - else - if not useFiretruckSiren(veh) then - if actv_lxsrnmute_temp == true then - SetLxSirenStateForVeh(veh, srntone_temp) - actv_lxsrnmute_temp = false - end - end - end - if state_airmanu[veh] ~= hmanu_state_new then - SetAirManuStateForVeh(veh, hmanu_state_new) - count_bcast_timer = delay_bcast_timer - end - end - - - --- IS ANY LAND VEHICLE --- - if GetVehicleClass(veh) ~= 14 and GetVehicleClass(veh) ~= 15 and GetVehicleClass(veh) ~= 16 and GetVehicleClass(veh) ~= 21 then - - ----- CONTROLS ----- - if not IsPauseMenuActive() then - - -- IND L - if IsDisabledControlJustReleased(0, 84) then -- INPUT_VEH_PREV_RADIO_TRACK - local cstate = state_indic[veh] - if cstate == ind_state_l then - state_indic[veh] = ind_state_o - actv_ind_timer = false - PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - else - state_indic[veh] = ind_state_l - actv_ind_timer = true - PlaySoundFrontend(-1, "NAV_LEFT_RIGHT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - end - TogIndicStateForVeh(veh, state_indic[veh]) - count_ind_timer = 0 - count_bcast_timer = delay_bcast_timer - -- IND R - elseif IsDisabledControlJustReleased(0, 83) then -- INPUT_VEH_NEXT_RADIO_TRACK - local cstate = state_indic[veh] - if cstate == ind_state_r then - state_indic[veh] = ind_state_o - actv_ind_timer = false - PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - else - state_indic[veh] = ind_state_r - actv_ind_timer = true - PlaySoundFrontend(-1, "NAV_LEFT_RIGHT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - end - TogIndicStateForVeh(veh, state_indic[veh]) - count_ind_timer = 0 - count_bcast_timer = delay_bcast_timer - -- IND H - elseif IsControlJustReleased(0, 197) then -- INPUT_FRONTEND_CANCEL / Backspace - if GetLastInputMethod(0) then -- last input was with kb - local cstate = state_indic[veh] - if cstate == ind_state_h then - state_indic[veh] = ind_state_o - PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - else - state_indic[veh] = ind_state_h - PlaySoundFrontend(-1, "NAV_LEFT_RIGHT", "HUD_FRONTEND_DEFAULT_SOUNDSET", 1) - end - TogIndicStateForVeh(veh, state_indic[veh]) - actv_ind_timer = false - count_ind_timer = 0 - count_bcast_timer = delay_bcast_timer - end - end - - end - - - ----- AUTO BROADCAST VEH STATES ----- - if count_bcast_timer > delay_bcast_timer then - count_bcast_timer = 0 - --- IS EMERG VEHICLE --- - if GetVehicleClass(veh) == 18 then - TriggerServerEvent("lvc_TogDfltSrnMuted_s", dsrn_mute) - TriggerServerEvent("lvc_SetLxSirenState_s", state_lxsiren[veh]) - TriggerServerEvent("lvc_TogPwrcallState_s", state_pwrcall[veh]) - TriggerServerEvent("lvc_SetAirManuState_s", state_airmanu[veh]) - end - --- IS ANY OTHER VEHICLE --- - TriggerServerEvent("lvc_TogIndicState_s", state_indic[veh]) - else - count_bcast_timer = count_bcast_timer + 1 - end - - end - - end - end - - Citizen.Wait(0) - end -end)