新增内嵌变量解析
====================================================================
比如已知
“S12”的值为 "裁决之杖"
这里要检测 G裁决之杖
大于10给100元宝小于等于10给1元宝
====================================================================
老写法
#IF
TRUE
#ACT
MOV
S11 <$STR(G
INC S11 <$STR(S12)>
INC S11 >
MOV M11
<$STR(S11)>
#IF
LARGE M11 10
#ACT
GAMEGOLD +
100
#ELSEACT
GAMEGOLD +
1
新写法
#IF
TRUE
#ACT
MOV M11
<$STR(G<$STR(S12)>>
#IF
LARGE M11 10
#ACT
GAMEGOLD +
100
#ELSEACT
GAMEGOLD +
1
====================================================================
比如已知<$TARINFO_STATID>
这里要检测 个人变量HUMAN 攻击ID<$TARINFO_STATID> 是否声明 .如果未声明 则声明
如果已声明 则显示出来
攻击ID<$TARINFO_STATID>的值
====================================================================
老写法
#IF
TRUE
#ACT
MOV
STARINFO_STAT <$HUMAN(攻击ID
INC STARINFO_STAT
<$TARINFO_STATID>
INC STARINFO_STAT
)>
#IF
COMPVAL <$STR(STARINFO_STAT)> = ???
STR
#ACT
VAR STRING HUMAN 攻击ID<$TARINFO_STATID>
SENDMSG 7
该变量未声明
#ELSEACT
SENDMSG 7
当前变量的值为:<$STR(STARINFO_STAT)>
====================================================================
新写法
#IF
COMPVAL
<$HUMAN(攻击ID<$TARINFO_STATID>)> = ??? STR
#ACT
VAR STRING
HUMAN 攻击ID<$TARINFO_STATID>
SENDMSG 7 该变量未声明
#ELSEACT
SENDMSG 7
当前变量的值为:<$HUMAN(攻击ID<$TARINFO_STATID>)>
如果不好理解。
你可以给你的变量嵌套值当做常量理解
====================================================================
比如
#DEFINE $(统计变量)
G15
<$STR($(统计变量))>
即为G15的值
也可以这样理解
MOV S统计变量
G15
<$STR(<$STR(S统计变量)>)>
这样也是G15的值
====================================================================
脚本举例:支持无限嵌套变量的解析
带圆括号的动态变量支持内嵌固定变量写法
====================================================================
[@StdModeFunc65420]
#IF
CHECKGAMEGOLD
? 2000000000
#ACT
MESSAGEBOX
每人只能携带不超过20亿元宝,不能再继续增加了。\\
BREAK
#IF
CHECKCONTAINSTEXT <$PARAM(1)>
元宝
#ACT
MOV S1 <$PARAM(1)>
MOV S2 元宝
StringReplace S1
<$STR(S2)>
MOV M_元宝 <$STR(S1)>
MOV S_元宝总数
<$ITEMCOUNT(<$STR(S1)><$STR(S2)>)>
MUL M_元宝
<$STR(S_元宝总数)>
GAMEGOLD + <$STR(M_元宝)>
SENDMSG 6
<$USERNAME>,你获得了:<$STR(M_元宝)>元宝、当前元宝:<$GAMEGOLD>颗
TAKE
<$PARAM(1)>
<$STR(S_元宝总数)>
BREAK
====================================================================
[@StdModeFunc65421]
#IF
CHECKCONTAINSTEXT
<$PARAM(1)> 经验卷
#ACT
MOV S1 <$PARAM(1)>
MOV S2
经验卷
StringReplace S1 <$STR(S2)>
MOV M_经验 <$STR(S1)>
MOV
S_经验总数 <$ITEMCOUNT(<$STR(S1)><$STR(S2)>)>
MUL M_经验
<$STR(S_经验总数)>
CHANGEEXP + <$STR(M_经验)>
SENDMSG 5
<$USERNAME>,你获得了<$STR(M_经验)>点经验、当前经验:<$EXP>、升级经验:<$MAXEXP>
TAKE
<$PARAM(1)>
<$STR(S_经验总数)>
BREAK
====================================================================