System
系统
 提供各类系统事件和相关信息函数列表
IsDedicatedServer
- 
描述: 是不是专用服务器模式 
- 
描述: 专用服务器只执行服务器相关代码 
- 
范围: 服务端、客户端 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| isDS | boolean | 是不是专用服务器模式 | 
if System:IsDedicatedServer() then    Log:PrintLog("多人游玩时的服务器端") -- 只会运行在游戏服务器上endIsStandalone
- 
描述: 是不是单机模式 
- 
描述: 单机模式时, 服务器和客户端代码都在本地执行 
- 
范围: 服务端、客户端 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| isStandalone | boolean | 是不是单机模式 | 
if System:IsStandalone() then    Log:PrintLog("单机模式")endIsServer
- 
描述: 是不是服务器端 
- 
描述: 专用服务器或单机模式时返回true 
- 
范围: 服务端、客户端 
- 
警告: 单机模式时,IsServer和IsClient都返回true 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| isServer | boolean | 是不是服务器端 | 
if System:IsServer() then    Log:PrintLog("单机模式或者多人模式的服务器端") -- 多人环境下,只会运行在游戏服务器上endIsClient
- 
描述: 是不是客户端 
- 
描述: 非专用服务器模式或单机模式时返回true 
- 
范围: 服务端、客户端 
- 
警告: 单机模式时,IsServer和IsClient都返回true 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| isClient | boolean | 是不是客户端 | 
if System:IsClient() then    Log:PrintLog("单机模式或者多人模式的客户端")endBindNotify
- 
描述: 注册消息通知 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| MsgId | number | 消息id,消息id必须大于0 | 
| Callback | function | 回调函数,当收到消息时此回调函数会被调用 | 
| Ref | any | 一个可选参数 | 
local msgId = 1005System: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)endUnbindNotify
- 
描述: 注销消息通知 
- 
描述: 只提供msgId时,会注销此msgId的所有通知 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| MsgId | number | 消息id,要注销的消息的消息id | 
| Callback | function | 回调函数,之前注册消息通知时的回调函数,如果为nil则注销所有这个msgId的消息通知 | 
local msgId = 1005System:UnbindNotify(msgId)UnbindAllNotify
- 
描述: 注销所有消息通知 
- 
范围: 服务端、客户端 
System:UnbindAllNotify() --注销所有的消息通知SendToClient
- 
描述: 发送消息到客户端 
- 
范围: 服务端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| PlayerId | number | 接收消息客户端的玩家id | 
| MsgId | number | 消息id | 
| Msg | table | 消息的内容,消息可以是number,string,bool或者table | 
local msgId = 1005System:SendToClient(playerId, msgId, {count = 3, text = "你好"})SendToAllClients
- 
描述: 发送消息到所有的客户端 
- 
范围: 服务端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| MsgId | number | 消息id | 
| Msg | table | 消息的内容,消息可以是number,string,bool或者table | 
local msgId = 1006System:SendToAllClients(msgId, {notify = "所有客户端都会收到这条消息"})SendToServer
- 
描述: 发送消息到服务器端 
- 
范围: 客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| MsgId | number | 消息id | 
| Msg | table | 消息内容,消息可以是number,string,bool或者table | 
local msgId = 1005System:SendToServer(msgId, { message = "这是一条来自客户端的消息" })RegisterEvent
- 
描述: 注册系统事件处理函数.系统事件由外部发送到此游戏 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| EventName | string | 事件名称 | 
| Callback | function() | 当事件发生时会调用此回调函数 | 
| Args | … | 可变参数,事件发生时这些参数会一起传递到回调函数,可变参数在前,事件参数在后 | 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| eventId | number | 事件处理函数id | 
System:RegisterEvent(Events.ON_BEGIN_PLAY,    function ()        Log:PrintLog("On Begin Play")    end)UnregisterEvent
- 
描述: 注销系统事件 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| EventName | string | 事件名称 | 
| Callback | function() | 可选参数,注册系统事件处理时提供的回调函数 | 
local eventId = System:RegisterEvent(Events.ON_BEGIN_PLAY,    function ()        Log:PrintLog("On Begin Play")    end)System:UnregisterEvent(Events.ON_BEGIN_PLAY)UnregisterEventById
- 
描述: 注销系统事件 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| EventName | string | 事件名称 | 
| EventId | number | 注册事件处理函数时返回的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来发送 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| EventName | string | 事件名称 | 
| Callback | function() | 事件发生时会调用此回调函数 | 
| Args | … | 可变参数,事件发生时会一起传递给回调函数,可变参数在前,事件参数在后 | 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| eventId | number | 事件处理函数id | 
local MyEvent = "我的自定义事件"System:RegisterGameEvent(MyEvent,    function ()        Log:PrintLog("发生了我自定义的游戏事件")    end)UnregisterGameEvent
- 
描述: 注销游戏内事件处理函数 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| EventName | string | 事件名称 | 
| Callback | function() | 可选参数,注册游戏内事件处理函数时提供的回调函数 | 
local MyEvent = "我的自定义事件"System:RegisterGameEvent(MyEvent,    function ()        Log:PrintLog("发生了我自定义的游戏事件")    end)System:UnregisterGameEvent(MyEvent)UnregisterGameEventById
- 
描述: 注销游戏内事件处理函数 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| EventName | string | 事件名称 | 
| EventId | number | 注册游戏内事件处理函数时返回的id | 
local MyEvent = "我的自定义事件"local eventId = System:RegisterGameEvent(MyEvent,    function ()        Log:PrintLog("发生了我自定义的游戏事件")    end)System:UnregisterGameEventById(MyEvent, eventId)FireGameEvent
- 
描述: 触发游戏内事件 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| EventName | string | 事件名称 | 
| Args | … | 事件附带的可变参数 | 
local MyEvent = "我的自定义事件"System:FireGameEvent(MyEvent)FireSignEvent
- 
描述: 触发信号 
- 
范围: 服务端、客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| EventName | string | 信号事件名称 | 
| PlayerIDs | number[] | 在哪些玩家端触发信号; 不传时只会在当前端触发; 如果需要通知多个玩家触发,则需要在服务端进行调用,并传入需要触发信号的玩家id数组 | 
System:FireSignEvent("111")RegisterSignEvent
- 
描述: 注册信号处理函数 
- 
范围: 客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| EventName | string | 信号事件名称 | 
| Func | function() | 信号发生时的回调函数 | 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| signEventId | number | 注册信号事件ID | 
local MyEvent = "我的自定义信号"local eventId = System:RegisterSignEvent(MyEvent,    function ()        Log:PrintLog("发生了我的自定义信号事件")    end)UnregisterSignEvent
- 
描述: 注销信号处理函数 
- 
范围: 客户端 
参数列表:
| 参数 | 类型 | 说明 | 
|---|---|---|
| SignEventId | number | 注册信号事件时返回的ID | 
local MyEvent = "我的自定义信号"local eventId = System:RegisterSignEvent(MyEvent,    function ()        Log:PrintLog("发生了我的自定义信号事件")    end)System:UnregisterSignEvent(eventId)UnregisterAllSignEvent
- 
描述: 注销所有信号处理事件 
- 
范围: 客户端 
System:UnregisterAllSignEvent()GetScriptParentID
- 
描述: 获取当前脚本挂载的元件ID 
- 
范围: 服务端、客户端 
返回字段:
| 返回字段 | 字段类型 | 说明 | 
|---|---|---|
| elmentId | number | 元件ID | 
local elementId = System:GetScriptParentID()