🚩 事件
🎒 示例
信息
远程 代表对面的端,例如:如果我是客户端,远程就是服务器。 如果我是服务器,远程就是客户端。
基础用法
Client/Index.lua
-- 注册本地活动(本地 = 仅限客户端)
Events.Subscribe("MyLocalEvent", function(my_text)
Console.Log("本地已收到事件!" .. my_text)
-- 输出“本地已收到事件!你好 nanos world!”
end)
-- 在所有本地包中调用本地事件
Events.Call("MyLocalEvent", "你好 nanos world!")
-- 注册服务器事件(远程 = 服务器)
Events.SubscribeRemote("MyClientEvent", function(my_text)
Console.Log("已收到来自服务器的事件!" .. my_text)
-- 输出“已收到来自服务器的事件!你好 nanos world!”
end)
-- 在所有服务器包中调用远程事件
Events.CallRemote("MyServerEvent", Reliability.Reliable, "你好 nanos world!")
信息
在服务器上,注册远程事件会有一个额外的参数:Player,即发送该事件的客户端。
Server/Index.lua
-- 注册本地事件(本地 = 仅服务器)
Events.Subscribe("MyLocalEvent", function(my_text)
Console.Log("本地已收到事件!" .. my_text)
-- 输出“本地已收到事件!你好 nanos world!”
end)
-- 在所有本地包中调用本地事件
Events.Call("MyLocalEvent", "hello nanos world!")
-- 注册客户端事件(远程 = 客户端)
Events.SubscribeRemote("MyServerEvent", function(player, my_text)
Console.Log(player:GetName() .. " 发来一条来自客户端的事件!" .. my_text)
-- 输出“Syed 发来一条来自客户端的事件!你好 nanos world!”
-- 向发送此事件的玩家发送“回答”
Events.CallRemote("MyClientEvent", player, Reliability.Reliable, "你好 nanos world!这条消息只给你!")
end)
-- 向所有客户端包中的所有玩家发送远程事件
Events.BroadcastRemote("MyClientEvent", Reliability.Reliable, "你好 nanos world!")
通过事件传递实体
-- 注册事件(远程或本地)
Events.Subscribe("MyAnotherEvent", function(my_text, my_vector, my_character, my_number)
Console.Log("已收到事件!" .. my_text .. " " .. my_vector.X .. " " .. my_character:GetViewMode() .. " " .. my_number)
-- 输出“已收到事件!你好 nanos world!123 1 456”
end)
--通过事件传递角色
local my_temp_character = Character()
-- 在所有本地包中调用本地事件
Events.Call("MyEvent", "你好 nanos world!", Vector(123, 123, 123), my_temp_character, 456)
-- 在所有服务器包中调用远程事件
Events.CallRemote("MyEvent", Reliability.Reliable, "你好 nanos world!", Vector(123, 123, 123), my_temp_character, 456)
提示
你可以在事件指南页面找到更多示例和详尽的指南。