Previous topicNext topic
Help > 脚本命令使用详解 > 功能操作 >
跳转,延迟执行脚本

功能:

跳转,延时执行脚本。

格式

DELAYGOTO S Label

DELAYCALL S Label

参数一S单位为毫秒.参数二Label为跳转的脚本段,以上两个命令都可以进行跳转和延时执行脚本。
;=========================================================

[@MAIN]
<延时执行脚本
/@DELAYCALL> <清除延迟/@CLEARDELAYGOTO> \ \
<返回
/@main>

[@DELAYCALL]
#IF
#ACT
DELAYGOTO 3 @DELAYCALL1
#SAY
请稍候....

[@DELAYCALL1]
#ACT
GIVE 金币 100

[@CLEARDELAYGOTO]
#IF
#ACT
CLEARDELAYGOTO
#SAY
延迟跳转已清除\
<返回
/@MAIN>

;=========================================================
扩展DELAYCALL命令,支持5个上下文参数传输,防止参数被覆盖
参数一S单位为毫秒.参数二Label为跳转的脚本段,以上两个命令都可以进行跳转和延时执行脚本。
;=========================================================
错误用例:
;=========================================================
 [@重复执行]
#act
 Mov S_暂存变量 xxxxx
DelayCall 1000 @delayCall
[@delayCall]
#act
; “S_暂存变量”此时很可能已被其他用到“S_暂存变量”的操作所覆盖(特别是对于重复执行的字段),造成错误结果
MapMove <$STR(S_暂存变量)>
;=========================================================
扩展后的正确用例:
;=========================================================
; 随后<$STR(S_CONTEXT[0~4])>可以取得参数的内容,此组变量用于传输参数内容,此变量为固定变量,仅可修改[0-4]获取内容
DelayCall 1000 @delayCall <$STR(S_暂存参数0)> 参数1 参数2 参数3 参数4 // 参数0~4为可选项,可以是任意变量
[@delayCall]
#act
 ; <$STR(S_CONTEXT[0])>此时等于“<$STR(S_暂存参数0)>”,<$STR(S_CONTEXT[1])>等于“参数1”...
MapMove <$STR(S_CONTEXT[0])>