跳至正文
版本:latest - a1.147.x ⚖️

🚩 事件

Failed to load class data.

🎒 示例

信息

远程 代表对面的端,例如:如果我是客户端,远程就是服务器。 如果我是服务器,远程就是客户端。

基础用法

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)
提示

你可以在事件指南页面找到更多示例和详尽的指南。

事件指南core-concepts/scripting/events-guide

🗿 静态函数

Failed to load class data.