996传奇 高效率键值对操作命令 完整版教程
命令基础说明
1. 字符串引擎支持8000字符长度,建议控制在5000字符以内
2. 主键值数量建议小于200组
3. 读取常量效率大幅度优化:<$getstrvalue(t1,1)>
4. 高频触发(攻击/拾取)不建议使用键值对
5. 自定义变量自动保存,无需SAVEVAR
第一步 键值对变量申明
将变量配置在 M2-功能设置-其他设置-个人键值对申明
引擎启动时自动同步到缓存,需要更新时用UPGRIDEVARCACHE同步
高效率缓存版命令
1. 同步变量到缓存
格式:UPGRIDEVARCACHE 参数1
参数1:变量名称(A/T/S/HUMAN(XXX)/GLOBAL/GUILD)
2. 增加/修改键值对
格式:ADDVARCACHE 参数1 参数2 参数3
参数1:变量名称 参数2:主键值 参数3:对应值
3. 修改字符型变量
格式:MOVVARCACHE 参数1 参数2
4. 删除键值对主键
格式:DELVARCACHE 参数1 参数2
参数1:变量 参数2:主键
高效率缓存实战案例
[@main]
#IF
#ACT
MOV N50 183
UPGRIDEVARCACHE T<$str(n50)>
PRINTUSETIME 1
MOVVARCACHE T<$str(n50)>
MOV N11 200
MOV N12 0
while N12 < <$str(n11)>
inc N12 1
ADDVARCACHE T<$str(n50)> <$str(n12)> 996m2.com
endwhile
MOV N14 500
MOV N13 0
PRINTUSETIME 2
while N13 < <$str(n14)>
INC N13 1
sendmsg 7 <$GETSTRVALUE(T<$str(n50)>,<$str(n13)>)>
endwhile
PRINTUSETIME 2
普通版键值对命令
1. 增加/修改值
格式:ADDSTRVALUE 参数1 参数2 参数3
2. 获取主键对应值
格式:GETSTRVALUE 参数1 参数2 参数3
3. 删除主键
格式:DELSTRVALUE 参数1 参数2
普通版实战案例
[@main]
#ACT
MOV T10 1=999,2=888,3=777
ADDSTRVALUE T10 4 996M2
GETSTRVALUE T10 1 S10
SENDMSG 6 获取出来的为:<$str(s10)>
DELSTRVALUE T10 1
获取全部主键命令
格式:GETSTRKEY 参数1 参数2
参数1:变量名 参数2:存入变量
#if
#ACT
mov T1 1=2,2=1,996=2,引擎=3
GETSTRKEY T1 S1
sendmsg 7 <$str(s1)>
MOV N11 1
GETVALIDSTRSUPER <$str(s1)> , S$获取主键值 N$总主键数量
while N11 < <$str(n$总主键数量)>
sendmsg 7 <$STR(S$获取主键值<$str(n11)>)>
endwhile
键值对常量取值
格式:<$getstrvalue(变量名,主键)>
示例:<$getstrvalue(t1,1)>
#if
#ACT
mov T1 1=996M2,2=996M2.COM
sendmsg 7 <$getstrvalue(t1,1)>,<$getstrvalue(t1,2)>
新手扩展实战案例
✅ 案例1:高效缓存 装备套装存储
[@套装存储]
#ACT
MOVVARCACHE T20
ADDVARCACHE T20 戒指 圣战戒指
ADDVARCACHE T20 手镯 圣战手镯
ADDVARCACHE T20 衣服 天魔神甲
SENDMSG 6 套装数据已存储到缓存键值对
✅ 案例2:自定义变量键值对
[@自定义变量]
#ACT
UPGRIDEVARCACHE HUMAN(玩家数据)
ADDVARCACHE HUMAN(玩家数据) 等级 100
ADDVARCACHE HUMAN(玩家数据) 元宝 9999
SENDMSG 6 自定义变量键值对设置完成
✅ 案例3:批量删除主键
[@批量删除]
#ACT
DELVARCACHE T10 1
DELVARCACHE T10 2
DELVARCACHE T10 3
SENDMSG 6 批量删除键值对主键完成
键值对排序命令
普通排序:SORTVARSTR 参数1 参数2 参数3 参数4
高效缓存排序:SORTVARSTRCACHE 参数1 参数2 参数3 参数4
参数1:变量名 参数2:排序数量(1-100) 参数3:0升序/1降序 参数4:时间戳排序
排序常量:<$getstrkey(变量名,序号)> <$getsortstrvalue(变量名,序号)>
[@高效缓存键值对排序]
#act
sortvarstr A81 3 1 1
UPGRIDEVARCACHE A81
sendmsg 6 第一名:<$getstrkey(a81,1)> 数量:<$getsortstrvalue(a81,1)>
sendmsg 6 第二名:<$getstrkey(a81,2)> 数量:<$getsortstrvalue(a81,2)>
sendmsg 6 第三名:<$getstrkey(a81,3)> 数量:<$getsortstrvalue(a81,3)>
修改键值对主键
格式:SETSTRVALUEKEY 变量名称 原主键 新主键
[@main]
#ACT
mov T1 1=2,2=1,996=2,引擎=3
SETSTRVALUEKEY T1 引擎 M2
SENDMSG 6 <$str(t1)>
重要注意事项
1. 自定义变量使用CALCVAR清理后,必须用UPGRIDEVARCACHE同步
2. 不建议在面板上使用键值对,会导致耗时过高
3. 常量不支持嵌套<$str()>,可使用cfg表间接调用
4. 高频触发脚本严禁使用键值对命令