Add a client side boolean to register if the user has or not the radio and then trigger to all client. Do a client side check to see if the user has the radio and if so display the msg
local input = 0
local HasDarkNetAccess = false
RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded', function(xPlayer)
PlayerData = xPlayer
for i=1, #PlayerData.inventory, 1 do
if PlayerData.inventory[i].name == 'boitier_darknet' then
if PlayerData.inventory[i].count > 0 then
HasDarkNetAccess = true
end
end
end
end)
RegisterNetEvent('esx_weashop:darknet')
AddEventHandler('esx_weashop:darknet', function()
-- if PlayerData.job.name ~= 'police' then
if HasDarkNetAccess then
DisplayOnscreenKeyboard(false, "FMMC_KEY_TIP8", "", "", "", "", "", 150)
local input = true
Citizen.CreateThread(function()
while input do
if input == true then
HideHudAndRadarThisFrame()
if UpdateOnscreenKeyboard() == 3 then
input = false
elseif UpdateOnscreenKeyboard() == 1 then
local inputText = GetOnscreenKeyboardResult()
if string.len(inputText) > 0 then
TriggerServerEvent('SyncAmmuAd', inputText)
input = false
else
DisplayOnscreenKeyboard(false, "FMMC_KEY_TIP8", "", "", "", "", "", 150)
end
elseif UpdateOnscreenKeyboard() == 2 then
input = false
end
end
Citizen.Wait(0)
end
end)
end
-- end
end)
RegisterNetEvent('AddDarknet')
AddEventHandler('AddDarknet',function()
HasDarkNetAccess = true
end)
RegisterNetEvent('RemoveDarknet')
AddEventHandler('RemoveDarknet',function()
HasDarkNetAccess = false
end)
RegisterNetEvent('DisplayAmmuAd')
AddEventHandler('DisplayAmmuAd',function(inputText)
if HasDarkNetAccess then
SetNotificationTextEntry("STRING");
AddTextComponentString(inputText);
SetNotificationMessage("CHAR_AMMUNATION", "CHAR_AMMUNATION", true, 1, "~y~DarkBoitier~", "");
DrawNotification(false, true);
end
end)
Server
ESX.RegisterUsableItem('boitier_darknet', function(source)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
local xPlayers = ESX.GetPlayers()
local DarkNetItem = xPlayer.getInventoryItem('boitier_darknet')
if DarkNetItem.count > 0 then
for i=1, #xPlayers, 1 do
local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
if xPlayer.job.name ~= 'police' then
TriggerClientEvent('esx_weashop:darknet', source)
end
end
end
end)
RegisterServerEvent("SyncAmmuAd")
AddEventHandler('SyncAmmuAd', function(inputText)
TriggerClientEvent('DisplayAmmuAd', -1, inputText)
end)
AddEventHandler('esx:onAddInventoryItem', function(source, item, count)
if item.name == 'boitier_darknet' then
TriggerClientEvent('AddDarknet', source)
end
end)
AddEventHandler('esx:onRemoveInventoryItem', function(source, item, count)
if item.name == 'boitier_darknet' and item.count < 1 then
TriggerClientEvent('RemoveDarknet', source)
end
end)