GameCommand 游戏客户端指令处理
主要功能:
-- 用于配合自定义指令的制作
-- 触发事件:场景事件、场景对象事件、界面事件、独立的事件库事件(而片段事件的触发参考CommandPage)
-- 提交玩家的输入
维护人员:黑暗之神KDS
创建时间:2019-01-12
继承 无
子类 无
Public 属性
属性 |
---|
COMMAND_STATE_CONTINUE : number; 静态指令状态:继续 |
COMMAND_STATE_STOP : number; 静态指令状态:终止 |
COMMAND_STATE_NEED_INPUT : number; 静态指令状态:需要玩家输入 |
isNeedPlayerInput : boolean; 静态是否玩家输入中 |
inputTriggerLine : number; 静态当前需要输入的触发线ID |
Public 方法
方法 |
---|
start(triggerLineID? : number): void 静态启动 |
startSceneCommand(indexType : number, inputMessage? : any, onCommandExecuteOver? : Callback): boolean [静态]场景-事件 主动开始触发该事件 |
startSceneObjectCommand(sceneObjectIndex : number, indexType : number, inputMessage? : any, onCommandExecuteOver? : Callback, triggerSceneObject? : ClientSceneObject): boolean [静态]场景对象-事件 主动开始新触发该事件 |
startUICommand(comp : UIBase, indexType : number, inputMessage? : any, onCommandExecuteOver? : Callback): boolean [静态]界面-事件 主动开始执行 |
startCommonCommand(id : number, inputMessage? : any, onCommandExecuteOver? : Callback, triggerSceneObject? : ClientSceneObject, executorSceneObject? : ClientSceneObject): void [静态]独立事件-事件库事件 主动开始执行 |
inputMessageAndContinueExecute(inputMessage? : any, force? : boolean, delayFrame? : number, triggerLineID? : number): void 静态输入信息并继续执行下去,事件页的等待玩家输入,将接收到输入的参数。 |
详情
start
start(triggerLineID? : number): void :
静态启动
一般自定义指令返回COMMAND_STATE_STOP后可以主动调用start重新启动
比如网络内核中为了优化,事件中的等待支持了客户端等待,其实现就是先COMMAND_STATE_STOP,然后等待N帧后调用此方法继续执行事件
参数
triggerLineID [可选] 默认值=null 触发线:当存在时则仅停止该触发线的事件执行,否则停止全部
startSceneCommand
startSceneCommand(indexType : number, inputMessage? : any, onCommandExecuteOver? : Callback): boolean :
[静态]场景-事件 主动开始触发该事件
参数
indexType 事件类别,0~N 对应自定义的场景中的事件类别
inputMessage [可选] 默认值=null 玩家输入值(等同调用事件时传递的参数)
onCommandExecuteOver [可选] 默认值=null 当指令执行完毕时回调
返回
是否触发执行成功
startSceneObjectCommand
startSceneObjectCommand(sceneObjectIndex : number, indexType : number, inputMessage? : any, onCommandExecuteOver? : Callback, triggerSceneObject? : ClientSceneObject): boolean :
[静态]场景对象-事件 主动开始新触发该事件
参数
sceneObjectIndex 场景对象索引(sceneObject.index)
indexType 事件类别,0~N 对应自定义的场景对象中的事件类别
inputMessage [可选] 默认值=null 玩家输入值(等同调用事件时传递的参数)
onCommandExecuteOver [可选] 默认值=null 当指令执行完毕时回调
triggerSceneObject [可选] 默认值=null 触发事件的对象,null则表示玩家的场景对象作为触发事件者
返回
是否触发执行成功
startUICommand
startUICommand(comp : UIBase, indexType : number, inputMessage? : any, onCommandExecuteOver? : Callback): boolean :
[静态]界面-事件 主动开始执行
参数
comp 组件,比如界面中的某个按钮
indexType 子事件类别,0~N 对应UI的对象中的事件类别
inputMessage [可选] 默认值=null 玩家输入值(等同调用事件时传递的参数)
onCommandExecuteOver [可选] 默认值=null 当指令执行完毕时回调
返回
是否触发执行成功
startCommonCommand
startCommonCommand(id : number, inputMessage? : any, onCommandExecuteOver? : Callback, triggerSceneObject? : ClientSceneObject, executorSceneObject? : ClientSceneObject): void :
[静态]独立事件-事件库事件 主动开始执行
独立事件会启动一条单独的触发线独立运作,并支持跨场景,直到其执行完毕。
参数
id 事件库事件的ID
inputMessage [可选] 默认值=null 玩家输入值(等同调用事件时传递的参数)
onCommandExecuteOver [可选] 默认值=null 当指令执行完毕时回调
triggerSceneObject [可选] 默认值=null 触发事件者,如果为null则表示玩家的场景对象
executorSceneObject [可选] 默认值=null 执行事件者,如果为null则表示玩家的场景对象
inputMessageAndContinueExecute
inputMessageAndContinueExecute(inputMessage? : any, force? : boolean, delayFrame? : number, triggerLineID? : number): void :
静态输入信息并继续执行下去,事件页的等待玩家输入,将接收到输入的参数。
可以制作如输入名字、密码、QTE系统等等
事件页制作流程:
-- 比如通过调用脚本的方式:inputMessageAndContinueExecute(123);
-- 事件:等待玩家输入
-- 事件:可以通过变量赋值=玩家输入值 或 文本中显示玩家输入值等等来接收
参数
inputMessage [可选] 默认值=null 输入的信息
force [可选] 默认值=false 是否强制模式(非强制模式只有客户端判定需要输入时才发送)
delayFrame [可选] 默认值=1 延迟多少帧发送
triggerLineID [可选] 默认值=-1 表示将信息提交到指定的触发器线上,-1表示默认是GameCommand.inputTriggerLine,即当前系统等待玩家输入的触发线