Previous topicNext topic
Help > BLUE引擎2021更新 >
新增内嵌变量解析
====================================================================
比如已知 “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
====================================================================