forked from Simnation/Main
ed
This commit is contained in:
parent
69aaef7d8c
commit
961260f3f5
2 changed files with 15 additions and 16 deletions
|
@ -17,25 +17,27 @@ local function HasItem(itemName, callback)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Create a unique event name for this check
|
||||||
|
local uniqueEventName = 'nightvision:itemCheckResult:' .. math.random(100000, 999999)
|
||||||
|
|
||||||
-- Set up the callback
|
-- Set up the callback
|
||||||
local callbackRegistered = false
|
local callbackRegistered = false
|
||||||
local eventHandler = RegisterNetEvent('nightvision:itemCheckResult', function(checkedItem, hasItem)
|
|
||||||
if checkedItem == itemName then
|
-- Register the event handler
|
||||||
itemCheckCache[itemName] = hasItem
|
local eventHandler = RegisterNetEvent(uniqueEventName)
|
||||||
lastCheckTime[itemName] = GetGameTimer()
|
AddEventHandler(uniqueEventName, function(hasItem)
|
||||||
callback(hasItem)
|
itemCheckCache[itemName] = hasItem
|
||||||
callbackRegistered = true
|
lastCheckTime[itemName] = GetGameTimer()
|
||||||
RemoveEventHandler(eventHandler)
|
callback(hasItem)
|
||||||
end
|
callbackRegistered = true
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Request the check from server
|
-- Request the check from server with our unique event name
|
||||||
TriggerServerEvent('nightvision:checkItem', itemName)
|
TriggerServerEvent('nightvision:checkItem', itemName, uniqueEventName)
|
||||||
|
|
||||||
-- Set a timeout to prevent hanging if something goes wrong
|
-- Set a timeout to prevent hanging if something goes wrong
|
||||||
SetTimeout(1000, function()
|
SetTimeout(1000, function()
|
||||||
if not callbackRegistered then
|
if not callbackRegistered then
|
||||||
RemoveEventHandler(eventHandler)
|
|
||||||
callback(false)
|
callback(false)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
@ -247,6 +249,3 @@ end)
|
||||||
RegisterNetEvent('nightvision:toggleHelmet', function()
|
RegisterNetEvent('nightvision:toggleHelmet', function()
|
||||||
TriggerEvent('nightvision:toggleGlasses', 'nightvision')
|
TriggerEvent('nightvision:toggleGlasses', 'nightvision')
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Register event handler for item check results
|
|
||||||
RegisterNetEvent('nightvision:itemCheckResult')
|
|
||||||
|
|
|
@ -15,10 +15,10 @@ local function HasItem(source, itemName)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Event for client to check if player has an item
|
-- Event for client to check if player has an item
|
||||||
RegisterNetEvent('nightvision:checkItem', function(itemName)
|
RegisterNetEvent('nightvision:checkItem', function(itemName, callbackEvent)
|
||||||
local src = source
|
local src = source
|
||||||
local hasItem = HasItem(src, itemName)
|
local hasItem = HasItem(src, itemName)
|
||||||
TriggerClientEvent('nightvision:itemCheckResult', src, itemName, hasItem)
|
TriggerClientEvent(callbackEvent, src, hasItem)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Register usable items
|
-- Register usable items
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue