Gameofmir Help功能说明:CALLEX 多脚本同名标签调用
原来多次 #CALL 同一个 @地址,只能调用到一个地址。
新增 #CALLEX 后,支持多个脚本里使用同样的 @地址,引擎加载时会自动给重复的标签改名,保证每次调用都跳转到本次指定脚本中的标签。
-------------------------------------------------------------------------------
命令格式:
#CALLEX [\脚本文件名] @标签名
参数说明:
参数1:脚本文件路径,路径从 Envir\QuestDiary 下开始写,写法和原来的 #CALL 一样。
参数2:需要调用的标签名,格式为 @标签名。
-------------------------------------------------------------------------------
自动改名规则:
第一次加载同名标签,保持原标签名,例如 [@充值链接]。
第二次再加载同名标签,自动改为 [@充值链接~1]。
第三次再加载同名标签,自动改为 [@充值链接~2]。
后面依次类推。
说明:自动改名只针对本次 CALLEX 加载进来的入口标签,同时本次插入的 goto 也会自动改成对应的新标签。脚本文件内其它内容不会被改名。
-------------------------------------------------------------------------------
示例脚本:
主脚本:
[@main]
<充值1/@1> <充值2/@2> <充值3/@3> \
[@1]
#IF
#ACT
#CALLEX [\脚本1.txt] @充值链接
break
[@2]
#IF
#ACT
#CALLEX [\脚本2.txt] @充值链接
;前面有1个 @充值链接,本次解析会将 @充值链接 自动换成 [@充值链接~1]
break
[@3]
#IF
#ACT
#CALLEX [\脚本3.txt] @充值链接
;前面有2个 @充值链接,本次解析会将 @充值链接 自动换成 [@充值链接~2]
break
-------------------------------------------------------------------------------
被调用脚本示例:
脚本1.txt:
[@充值链接]
#IF
#ACT
SENDMSG 6 当前执行脚本1的充值链接
break
脚本2.txt:
[@充值链接]
#IF
#ACT
SENDMSG 6 当前执行脚本2的充值链接
break
脚本3.txt:
[@充值链接]
#IF
#ACT
SENDMSG 6 当前执行脚本3的充值链接
break
-------------------------------------------------------------------------------
CALL 和 CALLEX 区别:
1、#CALL 保持原来的处理方式,多个脚本里有相同 @地址时,最终仍然只会有一个同名标签生效。
2、#CALLEX 会在加载时自动生成唯一标签,适合多个文件中都使用同一个入口标签名的情况。
3、如果只调用一次,#CALLEX 和 #CALL 的写法效果基本一致。
4、需要多个相同标签分别执行时,请使用 #CALLEX。
-------------------------------------------------------------------------------
注意:
1、CALLEX 只用于 NPC 脚本预处理调用,写法位置和原来的 #CALL 一样。
2、脚本文件不存在或标签不存在时,会按原来的脚本加载错误提示输出。
3、自动改名发生在脚本加载阶段,不需要手动写 @充值链接~1、@充值链接~2。
4、如果脚本内部自己 goto 其它同名标签,引擎不会自动替换这些内部 goto,请按实际标签名写好。