mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-16 22:46:03 +01:00
feat(server): triggerClientEvent with multi-target support
Since that once fivem PR is forever pending review.
This commit is contained in:
23
imports/triggerClientEvent/server.lua
Normal file
23
imports/triggerClientEvent/server.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
---Triggers an event for the given playerIds, sending additional parameters as arguments.\
|
||||
---Implements functionality from [this pending pull request](https://github.com/citizenfx/fivem/pull/1210) and may be deprecated.
|
||||
---
|
||||
---Provides non-neglibible performance gains due to msgpacking all arguments _once_, instead of per-target.
|
||||
---@param eventName string
|
||||
---@param targetIds number | number[]
|
||||
---@param ... any
|
||||
function lib.triggerClientEvent(eventName, targetIds, ...)
|
||||
local payload = msgpack.pack_args(...)
|
||||
local payloadLen = #payload
|
||||
|
||||
if type(targetIds) == 'table' and table.type(targetIds) == 'array' then
|
||||
for i = 1, #targetIds do
|
||||
TriggerClientEventInternal(eventName, targetIds[i] --[[@as string]], payload, payloadLen)
|
||||
end
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
TriggerClientEventInternal(eventName, targetIds --[[@as string]], payload, payloadLen)
|
||||
end
|
||||
|
||||
return lib.triggerClientEvent
|
||||
Reference in New Issue
Block a user