附录
延时跳转标签
延迟一段时间后再进入指定标签处理逻辑,并可把少量上下文参数传给目标标签。
命令用途
DelayGoto 用于延迟一段时间后,再进入指定标签处理逻辑。
它适合先显示提示、等待短暂表现,或把少量上下文参数一起带到后续标签。
命令名
DelayGoto
调用格式
DelayGoto <毫秒> <@标签名> [参数1] [参数2] [参数3] [参数4] [参数5]
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
毫秒 | 是 | 延迟时间,单位为毫秒。 |
@标签名 | 是 | 延迟结束后要进入的目标标签。 |
参数1..参数5 | 否 | 扩展写法可继续带 5 个上下文参数,目标标签中可通过 S_CONTEXT[n] 读取。 |
返回或影响
- 这是执行型命令,会在延迟结束后进入目标标签处理逻辑。
- 最多可继续传
5个上下文参数。 - 目标标签中可通过
<$STR(S_CONTEXT[0])>到<$STR(S_CONTEXT[4])>读取这些参数。 - 如果后续需要回到主菜单、结果页或其它固定入口,应在目标标签里显式写
GOTO。
示例
基础用法
[@Main]
#SAY
3 秒后进入传送确认页...
#ACT
DelayGoto 3000 @ConfirmMap 比奇省 330 330
[@ConfirmMap]
#SAY
即将前往 <$STR(S_CONTEXT[0])>(<$STR(S_CONTEXT[1])>:<$STR(S_CONTEXT[2])>)
这段写法会在 3 秒后进入 [@ConfirmMap],并把地图名和坐标一起传过去。
输入防重入
(@@InPutInteger)
[@@InPutInteger5]
#IF
CheckLevelEx > 0
#ACT
DelayGoto 1 ~InPutInteger5
[~InPutInteger5]
#IF
CheckLevelEx > 0
#SAY
你输入的数字是:<$STR(M5)>
这类写法适合拦住连续点击或网络延迟下的重复触发,避免同一段输入流程被重复执行。
注意事项
DelayGoto适合一次性延时跳转,不适合做周期性触发;周期性流程应改看定时器机制。- 如果后续逻辑不需要等待或传参,通常直接使用
GOTO更直接。 - 目标标签中的上下文参数数量和顺序,应与前面的传参保持一致。
- 如果目标标签执行完后还需要回主菜单、回结果页或进入其它固定流程,应显式写后续跳转,不要依赖自动返回。
相关资源
- 蓝海软件工具集 — 变量命名一键规范,团队协作不踩坑
