CSOL 集成工具
作者

admin

命令的解释与执行

单例类 Command 用于处理控制器下达的命令。

字段

id

说明:命令的标识符,类型为 integer

注解: 控制器在下达命令时,会为每条命令分配一个唯一的标识符。执行器在取命令时根据标识符来区分两条名称相同的指令是否为同一条指令。

不应该直接修改此字段,而应该通过 update 更新此字段。

name

说明:命令的名称。 可取下列值:

命令 说明
Command.CMD_NOP 不执行任何操作
Command.CMD_START_GAME_ROOM 点击“开始游戏”按钮以开始一局新的游戏
Command.CMD_CHOOSE_CHARACTER 执行选择角色操作
Command.CMD_DEFAULT_IDLE 执行默认挂机动作
Command.CMD_EXTENDED_IDLE 执行扩展挂机动作
Command.CMD_CONFIRM_RESULTS 执行结算确认操作
Command.CMD_CREATE_GAME_ROOM 创建游戏房间
Command.CMD_BATCH_COMBINE_PARTS 在制造所批量合成配件
Command.CMD_BATCH_PURCHASE_ITEM 在商店内批量兑换指定物品
Command.CMD_LOCATE_CURSOR 定位鼠标光标位置
Command.CMD_CLEAR_POPUS 尝试清除所有弹窗

注解:随着执行器版本更新,会增加支持的命令。

不应该直接修改此字段,而应该通过 update 更新此字段。

timestamp

说明:命令下达的时间戳(单位为秒),类型为 integer

控制器在下达命令时以 UNIX 时间戳(单位为秒)的形式告知执行器该条命令下达的时刻。默认情况下,每条命令都具有 5 秒的有效期,超过该有效期的命令将被忽略。有效期机制可以确保在控制器因诸种因素1无法继续下达命令时,执行器在尽可能短的时间内停止执行,以最大程度减少对系统带来的影响。

不应该直接修改此字段,而应该通过 update 更新此字段。

repeatable

说明:命令是否可重复,类型为 boolean

注解:用于指明在一条命令的有效期内,是否重复执行该条命令。 例如,CMD_BATCH_COMBINE_PARTS 用于命令执行器执行合成配件的动作,执行一次配件合成的时间往往很短,若这样的命令只执行一次便停止,则控制器将不得不频繁地为同样的命令申请新的命令标识符(前面提到,标识符是区分两条指令是否为同一条指令的依据),并将新的命令标识符写入命令文件,造成额外的性能开销,引入该字段可以解决此问题。

不应该直接修改此字段,而应该通过 update 更新此字段。

finished

说明:命令是否执行完毕,类型为 boolean

注解:对于可重复命令,该字段应始终保持为 false

不应直接修改此字段,而应该通过调用 finish 修改。

status

说明:调用 update 更新命令后,命令的状态变化情况,可为下列标志位的组合。

标志 说明
Command.UNCHANGED 与上一次相比未发生任何变化 0x0
Command.INDENTIFIER_CHANGED 与上一次相比,标识符发生改变 0x1
Command.TYPE_CHANGED 与上一次相比,命令名称发生改变 0x2
Command.TIMEPOINT_CHANGED 与上一次相比,命令的时间戳发生改变 0x4
Command.REPEATABILITY_CHANGED 与上一次相比,命令的可重复性发生改变 0x8

应通过 get_status 方法获取该字段的值。

方法

update

原型:Command:update()

说明:读取命令文件,更新当前命令,并根据命令变化情况设置 status

get_status

原型:Command:get_status()

说明:获取命令的状态变化情况。

返回值:命令变化情况,即 status 字段。

claim

原型:Command:claim()

说明:领取当前需要执行的命令。

返回值:命令,例如 Command.CMD_NOP

finish

原型:Command:finish()

说明:将当前命令标记为已完成。

注解:对于可重复命令,调用该方法后命令仍将处于未完成状态,即 finished 字段一直保持为 false

脚注

  1. 在此前对集成工具的稳定性测试结果表明,连续数个星期(甚至数个月)保持计算机开启,并在此期间一直使用集成工具的挂机功能。计算机在长时间开启的情况下,可能存在由其他应用程序导致的内存泄漏(不同计算机内存泄漏情况存在较大差异,与其上运行的软件有关),进而造成系统可用内存空间不足,使控制器无法继续正常运行。↩︎