diff --git a/Client/Client.lua b/Client/Client.lua index 1096fce..937200e 100644 --- a/Client/Client.lua +++ b/Client/Client.lua @@ -1,19 +1,34 @@ local PlayerServerID = GetPlayerServerId(PlayerId()) local PlayersInRadio = {} +local firstTimeEventGetsTriggered = true +local RadioChannelsName = {--[[Will Be Automatically Filled With Channels' Name => e.g. every frequency between 0 and 1 will be named to Admin Radio]]} RegisterNetEvent('JolbakLifeRP-RadioList:Client:SyncRadioChannelPlayers') AddEventHandler('JolbakLifeRP-RadioList:Client:SyncRadioChannelPlayers', function(src, RadioChannelToJoin, PlayersInRadioChannel) + if firstTimeEventGetsTriggered then + for i, v in pairs(Config.RadioChannelsWithName) do + local frequency = tonumber(i) + local minFrequency, maxFrequency = frequency, frequency + 1 + for index = minFrequency, maxFrequency + 0.0, 0.01 do + RadioChannelsName[tostring(index)] = tostring(v) + end + if frequency ~= 0 then + RadioChannelsName[tostring(frequency)] = tostring(v) --Fix for channels such as "1" that is not double/float like "1.0" or "1.01" !! + end + end + firstTimeEventGetsTriggered = false + end PlayersInRadio = PlayersInRadioChannel if src == PlayerServerID then if RadioChannelToJoin > 0 then local radioChannelToJoin = tostring(RadioChannelToJoin) - if Config.RadioChannelName[radioChannelToJoin] and Config.RadioChannelName[radioChannelToJoin] ~= nil then -- Check if the current radioChannel had defined a name in config or not + if RadioChannelsName[radioChannelToJoin] and RadioChannelsName[radioChannelToJoin] ~= nil then -- Check if the current radioChannel had defined a name in config or not HideTheRadioList() -- Hide and close the radio list in case the player was already in a different radioChannel for index, player in pairs(PlayersInRadio) do if player.Source ~= src then - SendNUIMessage({ radioId = player.Source, radioName = player.Name, channel = Config.RadioChannelName[radioChannelToJoin] }) -- Add other radio members of the radio channel + SendNUIMessage({ radioId = player.Source, radioName = player.Name, channel = RadioChannelsName[radioChannelToJoin] }) -- Add other radio members of the radio channel else - SendNUIMessage({ radioId = src, radioName = player.Name, channel = Config.RadioChannelName[radioChannelToJoin], self = true }) -- Add self player to radio list + SendNUIMessage({ radioId = src, radioName = player.Name, channel = RadioChannelsName[radioChannelToJoin], self = true }) -- Add self player to radio list end end @@ -36,8 +51,8 @@ AddEventHandler('JolbakLifeRP-RadioList:Client:SyncRadioChannelPlayers', functio elseif src ~= PlayerServerID then if RadioChannelToJoin > 0 then local radioChannelToJoin = tostring(RadioChannelToJoin) - if Config.RadioChannelName[radioChannelToJoin] and Config.RadioChannelName[radioChannelToJoin] ~= nil then -- Check if the current radioChannel had defined a name in config or not - SendNUIMessage({ radioId = src, radioName = PlayersInRadio[src].Name, channel = Config.RadioChannelName[radioChannelToJoin] }) -- Add player to radio list + if RadioChannelsName[radioChannelToJoin] and RadioChannelsName[radioChannelToJoin] ~= nil then -- Check if the current radioChannel had defined a name in config or not + SendNUIMessage({ radioId = src, radioName = PlayersInRadio[src].Name, channel = RadioChannelsName[radioChannelToJoin] }) -- Add player to radio list ResetTheRadioList() -- Delete the PlayersInRadio contents so it opens up memory else SendNUIMessage({ radioId = src, radioName = PlayersInRadio[src].Name, channel = radioChannelToJoin }) -- Add player to radio list diff --git a/Config.lua b/Config.lua index b186090..0ab635a 100644 --- a/Config.lua +++ b/Config.lua @@ -1,5 +1,9 @@ Config = {} -Config.RadioChannelName = { - ["1"] = "Admin", - ["2"] = "Police", +Config.RadioChannelsWithName = { + ["0"] = "Admin", + ["1"] = "Police", + ["2"] = "Sheriff", + ["3"] = "Fbi", + ["4"] = "Ambulance", + ["5"] = "Artesh" } \ No newline at end of file