跳转到内容

System

系统

提供各类系统事件和相关信息

函数列表

IsDedicatedServer

  • 描述: 是不是专用服务器模式

  • 描述: 专用服务器只执行服务器相关代码

  • 范围: 服务端、客户端

返回字段:

返回字段字段类型说明
isDSboolean是不是专用服务器模式
if System:IsDedicatedServer() then
Log:PrintLog("多人游玩时的服务器端") -- 只会运行在游戏服务器上
end

IsStandalone

  • 描述: 是不是单机模式

  • 描述: 单机模式时, 服务器和客户端代码都在本地执行

  • 范围: 服务端、客户端

返回字段:

返回字段字段类型说明
isStandaloneboolean是不是单机模式
if System:IsStandalone() then
Log:PrintLog("单机模式")
end

IsServer

  • 描述: 是不是服务器端

  • 描述: 专用服务器或单机模式时返回true

  • 范围: 服务端、客户端

  • 警告: 单机模式时,IsServer和IsClient都返回true

返回字段:

返回字段字段类型说明
isServerboolean是不是服务器端
if System:IsServer() then
Log:PrintLog("单机模式或者多人模式的服务器端") -- 多人环境下,只会运行在游戏服务器上
end

IsClient

  • 描述: 是不是客户端

  • 描述: 非专用服务器模式或单机模式时返回true

  • 范围: 服务端、客户端

  • 警告: 单机模式时,IsServer和IsClient都返回true

返回字段:

返回字段字段类型说明
isClientboolean是不是客户端
if System:IsClient() then
Log:PrintLog("单机模式或者多人模式的客户端")
end

BindNotify

  • 描述: 注册消息通知

  • 范围: 服务端、客户端

参数列表:

参数类型说明
MsgIdnumber消息id,消息id必须大于0
Callbackfunction回调函数,当收到消息时此回调函数会被调用
Refany一个可选参数
local msgId = 1005
System:BindNotify(msgId,
function (msgId, msg, playerId)
Log:PrintLog("收到了", playerId, "发送的", msgId, msg.count, msg.text)
end
)
System:BindNotify(msgId,self.printTips,self) --- 函数版
function GameClient:printTips(msgId, msg)
Log:PrintLog( msg.text)
end

UnbindNotify

  • 描述: 注销消息通知

  • 描述: 只提供msgId时,会注销此msgId的所有通知

  • 范围: 服务端、客户端

参数列表:

参数类型说明
MsgIdnumber消息id,要注销的消息的消息id
Callbackfunction回调函数,之前注册消息通知时的回调函数,如果为nil则注销所有这个msgId的消息通知
local msgId = 1005
System:UnbindNotify(msgId)

UnbindAllNotify

  • 描述: 注销所有消息通知

  • 范围: 服务端、客户端

System:UnbindAllNotify() --注销所有的消息通知

SendToClient

  • 描述: 发送消息到客户端

  • 范围: 服务端

参数列表:

参数类型说明
PlayerIdnumber接收消息客户端的玩家id
MsgIdnumber消息id
Msgtable消息的内容,消息可以是number,string,bool或者table
local msgId = 1005
System:SendToClient(playerId, msgId, {count = 3, text = "你好"})

SendToAllClients

  • 描述: 发送消息到所有的客户端

  • 范围: 服务端

参数列表:

参数类型说明
MsgIdnumber消息id
Msgtable消息的内容,消息可以是number,string,bool或者table
local msgId = 1006
System:SendToAllClients(msgId, {notify = "所有客户端都会收到这条消息"})

SendToServer

  • 描述: 发送消息到服务器端

  • 范围: 客户端

参数列表:

参数类型说明
MsgIdnumber消息id
Msgtable消息内容,消息可以是number,string,bool或者table
local msgId = 1005
System:SendToServer(msgId, { message = "这是一条来自客户端的消息" })

RegisterEvent

  • 描述: 注册系统事件处理函数.系统事件由外部发送到此游戏

  • 范围: 服务端、客户端

参数列表:

参数类型说明
EventNamestring事件名称
Callbackfunction()当事件发生时会调用此回调函数
Args可变参数,事件发生时这些参数会一起传递到回调函数,可变参数在前,事件参数在后

返回字段:

返回字段字段类型说明
eventIdnumber事件处理函数id
System:RegisterEvent(Events.ON_BEGIN_PLAY,
function ()
Log:PrintLog("On Begin Play")
end
)

UnregisterEvent

  • 描述: 注销系统事件

  • 范围: 服务端、客户端

参数列表:

参数类型说明
EventNamestring事件名称
Callbackfunction()可选参数,注册系统事件处理时提供的回调函数
local eventId = System:RegisterEvent(Events.ON_BEGIN_PLAY,
function ()
Log:PrintLog("On Begin Play")
end
)
System:UnregisterEvent(Events.ON_BEGIN_PLAY)

UnregisterEventById

  • 描述: 注销系统事件

  • 范围: 服务端、客户端

参数列表:

参数类型说明
EventNamestring事件名称
EventIdnumber注册事件处理函数时返回的id
local eventId = System:RegisterEvent(Events.ON_BEGIN_PLAY,
function ()
Log:PrintLog("On Begin Play")
end
)
System:UnregisterEventById(Events.ON_BEGIN_PLAY, eventId)

RegisterGameEvent

  • 描述: 注册游戏内事件处理函数.游戏内事件由编程元件作者定义,并在需要时在元件脚本调用System.FireGameEvent来发送

  • 范围: 服务端、客户端

参数列表:

参数类型说明
EventNamestring事件名称
Callbackfunction()事件发生时会调用此回调函数
Args可变参数,事件发生时会一起传递给回调函数,可变参数在前,事件参数在后

返回字段:

返回字段字段类型说明
eventIdnumber事件处理函数id
local MyEvent = "我的自定义事件"
System:RegisterGameEvent(MyEvent,
function ()
Log:PrintLog("发生了我自定义的游戏事件")
end
)

UnregisterGameEvent

  • 描述: 注销游戏内事件处理函数

  • 范围: 服务端、客户端

参数列表:

参数类型说明
EventNamestring事件名称
Callbackfunction()可选参数,注册游戏内事件处理函数时提供的回调函数
local MyEvent = "我的自定义事件"
System:RegisterGameEvent(MyEvent,
function ()
Log:PrintLog("发生了我自定义的游戏事件")
end
)
System:UnregisterGameEvent(MyEvent)

UnregisterGameEventById

  • 描述: 注销游戏内事件处理函数

  • 范围: 服务端、客户端

参数列表:

参数类型说明
EventNamestring事件名称
EventIdnumber注册游戏内事件处理函数时返回的id
local MyEvent = "我的自定义事件"
local eventId = System:RegisterGameEvent(MyEvent,
function ()
Log:PrintLog("发生了我自定义的游戏事件")
end
)
System:UnregisterGameEventById(MyEvent, eventId)

FireGameEvent

  • 描述: 触发游戏内事件

  • 范围: 服务端、客户端

参数列表:

参数类型说明
EventNamestring事件名称
Args事件附带的可变参数
local MyEvent = "我的自定义事件"
System:FireGameEvent(MyEvent)

FireSignEvent

  • 描述: 触发信号

  • 范围: 服务端、客户端

参数列表:

参数类型说明
EventNamestring信号事件名称
PlayerIDsnumber[]在哪些玩家端触发信号; 不传时只会在当前端触发; 如果需要通知多个玩家触发,则需要在服务端进行调用,并传入需要触发信号的玩家id数组
System:FireSignEvent("111")

RegisterSignEvent

  • 描述: 注册信号处理函数

  • 范围: 客户端

参数列表:

参数类型说明
EventNamestring信号事件名称
Funcfunction()信号发生时的回调函数

返回字段:

返回字段字段类型说明
signEventIdnumber注册信号事件ID
local MyEvent = "我的自定义信号"
local eventId = System:RegisterSignEvent(MyEvent,
function ()
Log:PrintLog("发生了我的自定义信号事件")
end
)

UnregisterSignEvent

  • 描述: 注销信号处理函数

  • 范围: 客户端

参数列表:

参数类型说明
SignEventIdnumber注册信号事件时返回的ID
local MyEvent = "我的自定义信号"
local eventId = System:RegisterSignEvent(MyEvent,
function ()
Log:PrintLog("发生了我的自定义信号事件")
end
)
System:UnregisterSignEvent(eventId)

UnregisterAllSignEvent

  • 描述: 注销所有信号处理事件

  • 范围: 客户端

System:UnregisterAllSignEvent()

GetScriptParentID

  • 描述: 获取当前脚本挂载的元件ID

  • 范围: 服务端、客户端

返回字段:

返回字段字段类型说明
elmentIdnumber元件ID
local elementId = System:GetScriptParentID()