键值对功能
;字符串引擎支持8000字符长度,建议控制在5000字符长度以内,主键值数量小于200组
;主要优化效率为读取常量时会大幅度增加效率,例:<$GETSTRVALUE(T1,1)>,<$GETSTRVALUE(T1,2)>
;高频触发类 如攻击触发 拾取触发等 不建议用键值对!!!
注:不建议在面板上使用,会导致耗时很高
功能:增加和修改字符型变量主键值对应值
格式:ADDSTRVALUE
参数1 参数2 参数3
参数1:字符型变量 (A变量
T变量 S变量) 如果是自定义字符型变量 格式为:HUMAN(XXX) 不要带<$> 但是要带HUMAN、GLOBAL
GUILD
参数2:主键值
参数3:对应值
取数字常量:<$Getintvalue(T1,1)> 取字符常量:<$GETSTRVALUE(T1,1)>
写入例子:
[@main]
#IF
#ACT
MOV T10 1=999,2=888,3=777
增加例子:
[@main]
#IF
#ACT
ADDSTRVALUE T10 4 996M2
修改例子:
[@main]
#IF
#ACT
ADDSTRVALUE T10 1 996M2.COM
获取字符串主键值 对应值:
格式:GETSTRVALUE
参数1 参数2 参数3
参数1:字符型变量 (A变量 T变量 S变量) 如果是自定义字符型变量 格式为:HUMAN(XXX) 不要带<$> 但是要带HUMAN、GLOBAL GUILD(注意自定义变量需要保存)
参数2:主键值
参数3:存入变量
例子:
[@获取主键值对应值]
#IF
#ACT
GETSTRVALUE T10 1 S10
SENDMSG 6 获取出来的为:<$STR(S10)>
删除字符型变量主键值:
DELSTRVALUE 参数1 参数2
参数1:字符型变量 (A变量
T变量 S变量) 如果是自定义字符型变量 格式为:HUMAN(XXX) 不要带<$> 但是要带HUMAN、GLOBAL
GUILD(注意自定义变量需要保存)
参数2:主键值
例子:
[@删除主键值]
#IF
#ACT
DELSTRVALUE T10 1
键值对获取全部主键命令
GETSTRKEY 参数1 参数2
参数1:键值对变量名称
参数2:存入变量
//例子
#if
#ACT
mov T1 1=2,2=1,996=2,引擎=3
GETSTRKEY T1 S1
;取出主键值为逗号分割(1,2,996,引擎)
sendmsg 7 <$str(S1)>
;配合分割字符串使用功能强大
MOV N11 1
GETVALIDSTRSUPER <$str(S1)> , S$获取主键值 N$总主键数量
while N11 < <$str(N$总主键数量)>
sendmsg 7 <$str(S$获取主键值<$str(N11)>)>
endwhile
<$GETSTRVALUE(T1,1)>
//例子
#if
#ACT
mov T1 1=996M2,2=996M2.COM
sendmsg 7
<$GETSTRVALUE(T1,1)>,<$GETSTRVALUE(T1,2)>
;说明
常量中的T1不支持套用<$str()>,因为加这个括号服务端会把他解出来,解出来的变量值将无法获取!
变量套表方法,我们可以在<$cfg_bianliang(1_1)>这个表1行1列中写入T1即可
变量获取添加方式:
T1
A1
S1
S$XX
HUMAN(变量)
键值对排序格式:玩家名字=捐献数量#时间戳
排序主键常量:<$GETSTRKEY(变量名,第几个)>
排序值常量:<$GETSORTSTRVALUE(变量名,第几个)>
;//示例
;重要说明:务必按照下方脚本逻辑进行编写脚本
[@高效缓存键值对排序]
#act
sortvarstr A81 3 1 1
;↓↓↓↓↓↓使用高效键值对排序时,将变量优先读取缓存中↓↓↓↓↓↓
sendmsg 6 排名第一名玩家名字:<$GETSTRKEY(A81,1)>。捐献数量:<$GETSORTSTRVALUE(A81,1)>
sendmsg 6 排名第二名玩家名字:<$GETSTRKEY(A81,2)>。捐献数量:<$GETSORTSTRVALUE(A81,2)>
sendmsg 6 排名第三名玩家名字:<$GETSTRKEY(A81,3)>。捐献数量:<$GETSORTSTRVALUE(A81,3)>
#if
#ACT
;修改主键“引擎”为“M2”
SETSTRVALUEKEY T1 引擎 M2
SENDMSG 6
<$STR(T1)>打印值:1=2,2=1,996=2,M2=3
键值对转josn格式常量
命令:<$SetStrtoJson(XXXXX)>
mov A10 a=2,a1=23,a2=24,a3=52
<$SetStrtoJson(A10)>
键值对转josn格式
常量:<$SetStrtoJson(XXXXX)>
[@main]
#ACT
mov A10
a=2,a1=23,a2=24,a3=52
SendMsg 0
当前值:<$SetStrtoJson(A10)>