32 lines
635 B
Plaintext
32 lines
635 B
Plaintext
--@name RPC
|
|
--@author Opti1337
|
|
--@shared
|
|
|
|
RPC = {}
|
|
|
|
function RPC.add(name, cb)
|
|
net.receive(name, function()
|
|
local result = {}
|
|
|
|
for i = 1, net.readInt(8) do
|
|
table.insert(result, net.readType())
|
|
end
|
|
|
|
if CLIENT then
|
|
cb(unpack(result))
|
|
else
|
|
RPC.start(name, find.allPlayers(), unpack(result))
|
|
end
|
|
end)
|
|
end
|
|
|
|
function RPC.start(name, target, ...)
|
|
net.start(name)
|
|
local args = {...}
|
|
|
|
net.writeInt(#args, 8)
|
|
for _, v in pairs(args) do
|
|
net.writeType(v)
|
|
end
|
|
net.send(target)
|
|
end |