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
|
||||
end
|
||||
|
||||
-- Create a unique event name for this check
|
||||
local uniqueEventName = 'nightvision:itemCheckResult:' .. math.random(100000, 999999)
|
||||
|
||||
-- Set up the callback
|
||||
local callbackRegistered = false
|
||||
local eventHandler = RegisterNetEvent('nightvision:itemCheckResult', function(checkedItem, hasItem)
|
||||
if checkedItem == itemName then
|
||||
itemCheckCache[itemName] = hasItem
|
||||
lastCheckTime[itemName] = GetGameTimer()
|
||||
callback(hasItem)
|
||||
callbackRegistered = true
|
||||
RemoveEventHandler(eventHandler)
|
||||
end
|
||||
|
||||
-- Register the event handler
|
||||
local eventHandler = RegisterNetEvent(uniqueEventName)
|
||||
AddEventHandler(uniqueEventName, function(hasItem)
|
||||
itemCheckCache[itemName] = hasItem
|
||||
lastCheckTime[itemName] = GetGameTimer()
|
||||
callback(hasItem)
|
||||
callbackRegistered = true
|
||||
end)
|
||||
|
||||
-- Request the check from server
|
||||
TriggerServerEvent('nightvision:checkItem', itemName)
|
||||
-- Request the check from server with our unique event name
|
||||
TriggerServerEvent('nightvision:checkItem', itemName, uniqueEventName)
|
||||
|
||||
-- Set a timeout to prevent hanging if something goes wrong
|
||||
SetTimeout(1000, function()
|
||||
if not callbackRegistered then
|
||||
RemoveEventHandler(eventHandler)
|
||||
callback(false)
|
||||
end
|
||||
end)
|
||||
|
@ -247,6 +249,3 @@ end)
|
|||
RegisterNetEvent('nightvision:toggleHelmet', function()
|
||||
TriggerEvent('nightvision:toggleGlasses', 'nightvision')
|
||||
end)
|
||||
|
||||
-- Register event handler for item check results
|
||||
RegisterNetEvent('nightvision:itemCheckResult')
|
||||
|
|
|
@ -15,10 +15,10 @@ local function HasItem(source, itemName)
|
|||
end
|
||||
|
||||
-- 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 hasItem = HasItem(src, itemName)
|
||||
TriggerClientEvent('nightvision:itemCheckResult', src, itemName, hasItem)
|
||||
TriggerClientEvent(callbackEvent, src, hasItem)
|
||||
end)
|
||||
|
||||
-- Register usable items
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue