mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-19 07:56:02 +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