跳至正文
版本:bleeding-edge 🩸

🚩 事件

Failed to load class '事件' (StaticClass) 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!")
信息

On Server, registering for remote events has an additional first parameter: Player, which is the client who sent the event.

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!")

通过事件传递实体​

Server/Index.lua
-- registers for a local Event
Events.Subscribe("MyEvent", function(my_text, my_vector, my_character, my_number)
Console.Log("Event received! " .. my_text .. " " .. my_vector.X .. " " .. my_character:GetViewMode() .. " " .. my_number)
-- outputs "Event received! hello nanos world! 123 1 456"
end)

-- passing Characters through events
local my_temp_character = Character(Vector(0, 0, 100), Rotator(), "nanos-world::SK_Male")

-- calls a local Event in all Server Packages
Events.Call("MyEvent", "hello nanos world!", Vector(123, 123, 123), my_temp_character, 456)

-- calls a remote Event in all Client Packages of all Players
Events.BroadcastRemote("MyEvent", Reliability.Reliable, "hello nanos world!", Vector(123, 123, 123), my_temp_character, 456)
Client/Index.lua
-- registers for the remote Event, the Character arrives as the same entity on the client
Events.SubscribeRemote("MyEvent", function(my_text, my_vector, my_character, my_number)
Console.Log("Remote event received! %s %s", my_text, tostring(my_character))
end)
备注

Events.Subscribe only receives local events (Events.Call), and Events.SubscribeRemote only receives remote ones. This is the behavior since the version 1.22 (see Compatibility Versions).

提示

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

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

🗿 静态函数​

Failed to load class '事件' (StaticClass) data.