Main/resources/[jobs]/[police]/lvc/UI/cl_audio.lua
2025-06-07 08:51:21 +02:00

115 lines
3.7 KiB
Lua

--[[
---------------------------------------------------
LUXART VEHICLE CONTROL V3 (FOR FIVEM)
---------------------------------------------------
Coded by Lt.Caine
ELS Clicks by Faction
Additional Modification by TrevorBarns
---------------------------------------------------
FILE: cl_audio.lua
PURPOSE: NUI Audio Related Functions.
---------------------------------------------------
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
---------------------------------------------------
]]
AUDIO = { }
local activity_timer = 0
local activity_reminder_index = 1
local activity_reminder_lookup = { [2] = 30000, [3] = 60000, [4] = 120000, [5] = 300000, [6] = 600000 }
AUDIO.radio_masterswitch = true
AUDIO.airhorn_button_SFX = false
AUDIO.manu_button_SFX = false
AUDIO.button_sfx_scheme_choices = button_sfx_scheme_choices
AUDIO.button_sfx_scheme = default_sfx_scheme_name
AUDIO.on_volume = default_on_volume
AUDIO.off_volume = default_off_volume
AUDIO.upgrade_volume = default_upgrade_volume
AUDIO.downgrade_volume = default_downgrade_volume
AUDIO.hazards_volume = default_hazards_volume
AUDIO.lock_volume = default_lock_volume
AUDIO.lock_reminder_volume = default_lock_reminder_volume
AUDIO.activity_reminder_volume = default_reminder_volume
------ACTIVITY REMINDER FUNCTIONALITY------
CreateThread(function()
while true do
while activity_reminder_index > 1 and player_is_emerg_driver do
if IsVehicleSirenOn(veh) and state_lxsiren[veh] == 0 and state_pwrcall[veh] == 0 then
if activity_timer < 1 then
AUDIO:Play('Reminder', AUDIO.activity_reminder_volume)
AUDIO:ResetActivityTimer()
end
end
Wait(100)
end
Wait(1000)
end
end)
-- Activity Reminder Timer
CreateThread(function()
while true do
if veh ~= nil then
while activity_reminder_index > 1 and IsVehicleSirenOn(veh) and state_lxsiren[veh] == 0 and state_pwrcall[veh] == 0 do
if activity_timer > 1 then
Wait(1000)
activity_timer = activity_timer - 1000
else
Wait(100)
AUDIO:ResetActivityTimer()
end
end
end
Wait(1000)
end
end)
---------------------------------------------------------------------
--[[Play NUI front in audio.]]
function AUDIO:Play(soundFile, soundVolume, schemeless)
local schemeless = schemeless or false
if not schemeless then
soundFile = AUDIO.button_sfx_scheme .. '/' .. soundFile;
end
SendNUIMessage({
_type = 'audio',
file = soundFile,
volume = soundVolume
})
end
--[[After activity has occurred, reset the activity timer to the selected reminder interval]]
function AUDIO:ResetActivityTimer()
activity_timer = activity_reminder_lookup[activity_reminder_index] or 0
end
--[[Getter for current time in seconds remaining.]]
function AUDIO:GetActivityTimer()
return activity_timer
end
--[[After activity has occurred, reset the activity timer to the selected reminder interval]]
function AUDIO:GetActivityReminderIndex()
return activity_reminder_index
end
--[[Setter for activity reminder index]]
function AUDIO:SetActivityReminderIndex(index)
if index ~= nil then
activity_reminder_index = index
end
end