----- Server ----
local objects = {}
--- comando para crear o destruir el objeto y almacenar en la tabla
addCommandHandler("water",
function(player)
if not objects[player] then
objects[player] = createObject(1221, 0, 0, 0)
else
destroyElement(objects[player])
objects[player] = nil
end
--- mandamos al client todos los objetos
triggerClientEvent("water_walk", root, objects)
end
)
---- si un jugador entra al server necesitamos mandarle la tabla de objetos
addEventHandler("onPlayerResourceStart", root,
function(loadedResource)
if loadedResource == resource then
triggerClientEvent(source, "water_walk", source, objects)
end
end
)
----- Client ----
local objects = {}
addEvent("water_walk", true)
addEventHandler("water_walk", root,
function(o)
objects = o
---- removemos el render por si la tabla esta vacia
removeEventHandler("onClientRender", root, managewaterwalk)
if objects and
--- Si la tabla no esta vacía y hay al menos un objeto iniciamos el render
for _, object, in pairs(objects) do
if object then
addEventHandler("onClientRender", root, managewaterwalk)
return
end
end
end
end
)
function managewaterwalk()
for player, object in pairs(objects) do
local x, y, z = getElementPosition(player)
setElementPosition(object, x, y, z - .5)
end
end
PD: no lo he probado así que me avisas si te sirve