在传奇类游戏的脚本系统中,check [123] 0 是一条用于判断变量状态的条件指令。该命令的核心作用是检测编号为123的自定义变量(通常称为“QF值”或“临时变量”)当前是否等于0。若条件成立,则执行后续操作;若不成立,则跳过或转向其他分支。
变量编号与用途
在M2引擎架构下,[123] 表示一个整型变量的索引号,范围通常为0至5000。这类变量由脚本开发者自行分配,用于记录玩家状态、任务进度、交互次数等临时数据。例如,某任务脚本可能将[123]设为“是否已领取奖励”的标志位:0表示未领取,1表示已领取。
条件判断逻辑
命令格式为:
IF
check [123] 0
ACT
...
当程序运行到此处时,会读取当前角色对应的[123]变量值。若其值恰好为0,则满足条件,继续执行#ACT段落中的指令(如给予物品、开启传送等);若为其他数值(如1、2、-1等),则直接跳过该分支,可能进入#ELSE或后续判断。
实际应用场景
任务触发控制:NPC对话脚本中常用此命令防止重复接任务。例如:
[@Main]
#IF
check [123] 0
#ACT
set [123] 1
give 金创药 10
message 任务已接取!
#ELSE
message 你已完成此任务。
此处首次对话时[123]=0,触发奖励并设为1;再次对话因值不为0,提示已完成。
冷却时间限制:用于限制技能或功能使用频率。假设[123]记录上次使用时间戳,脚本可结合DELAY命令实现冷却:
#IF
check [123] 0
#ACT
set [123] 1
movr D 300 ; 移动至坐标(300,300)
delay 60000 ; 60秒后重置
set [123] 0
多阶段任务衔接:复杂任务链中,不同阶段用不同变量值标识。例如[123]=0为初始状态,=1为收集材料中,=2为待交付。通过连续判断推进流程。
注意事项
变量初始值默认为0,但部分服务端可能未自动初始化,建议在脚本开头显式设置(如set [123] 0)。
同一变量在不同脚本文件中共享,需避免编号冲突。例如任务A与活动B同时使用[123]可能导致状态错乱。
该命令仅支持整数比较,无法直接判断字符串或物品属性,需配合其他指令(如CHECKITEM)实现复合条件。
掌握check [123] 0 的运作机制,能有效构建任务逻辑、控制功能触发,并提升脚本的稳定性与可维护性。实际编写时应结合SET、DELAY、JUMP等命令形成完整控制流。

