附录
立即跳转标签
立即进入指定标签处理逻辑,适合条件分流、变量修正和主流程拆段。
命令用途
GOTO 用于立即进入指定标签处理逻辑。
它适合把一段脚本拆成多个连续标签,按条件分流、修正变量或继续执行后续流程。
命令名
GOTO
调用格式
GOTO <@标签名> [模式] [""] [类型] [参数1] [参数2] [参数3] [参数4] [参数5]
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
@标签名 | 是 | 基础写法中表示当前脚本文件里的目标标签名。 |
模式 | 否 | 仅见于现有补全资料的扩展写法,可写 1 到 4,分别表示小组成员触发、行会成员触发、当前地图人物触发、以自己坐标为中心的范围人物触发。 |
"" | 否 | 仅见于现有补全资料的固定占位,当前仓库没有更完整的引擎说明;如果你使用的是这类扩展写法,通常保持为空字符串。 |
类型 | 否 | 仅见于现有补全资料的扩展写法,可写 1 到 5,分别对应 QM、QF、RM、QMap、QChat。 |
参数1..参数5 | 否 | 扩展写法可继续带 5 个参数,目标标签中可通过 <$PARAM(5)> 到 <$PARAM(9)> 读取。 |
返回或影响
- 这是执行型命令,会立即进入目标标签处理逻辑。
GOTO不是#CALL,不会像跨脚本调用那样形成单独的调用层。- 如果目标标签只是用来抽离一段条件判断或变量修正,常见写法是先在目标标签里完成处理,再继续当前脚本后面的统一动作。
- 如果你不希望后续逻辑继续执行,应显式写
BREAK,或显式GOTO到结果标签、主菜单标签。
示例
基础用法
[@Main]
#IF
CheckLevelEx ? 50
#ACT
GOTO @AllowEnter
#ELSESAY
等级不足,暂时不能进入。
[@AllowEnter]
#ACT
MapMove 3 330 330
这段写法会在等级满足时立即切到 [@AllowEnter],继续执行传送逻辑。
条件分流
[@TryOpen]
#IF
CheckItem 黄金钥匙 1
#ACT
GOTO @OpenChest
#ACT
MessageBox 你还没有黄金钥匙。
BREAK
[@OpenChest]
#ACT
Take 黄金钥匙 1
Give 宝箱奖励 1
这类写法适合在当前标签里先做判断,满足条件时切到结果段,不满足时继续当前标签里的失败处理。
抽离处理段
[@CalcReward]
#ACT
MOV S领取物品 金创药
#IF
CheckLevelEx ? 100
#ACT
GOTO @处理标识
Give <$STR(S领取物品)>
#ELSEACT
MessageBox 对不起,100级才能使用此功能!
BREAK
[@处理标识]
#IF
CheckGameGold ? 10000
#ACT
MOV S领取物品 超级金创药
#IF
CheckGameGold ? 20000
#ACT
MOV S领取物品 打包金创药
这类写法适合先在主流程里保留默认值、准入判断和最终动作,再把中间的变量修正逻辑拆到独立标签中处理,避免把不同层级的条件直接堆在同一段 #ACT 中。
注意事项
GOTO适合做当前脚本内的流程切换和处理段拆分,不适合表达“执行完再返回”的跨脚本调用语义;这类场景优先考虑#CALL。- 如果某个功能执行完成后需要重新显示主菜单,应显式写
GOTO @MAIN,不要依赖脚本自动回到主入口。
