星河彩虹独立端知识库
文档目录
服务端说明

键值相关操作命令

##键值操作命令

SetStrValue 参数1 参数2 参数3 参数4 参数5 参数6
  • 参数1:
    操作变量 (支持自定义变量,自由变量)
  • 参数2:
    键名 (*表示批量处理)
  • 参数3:
    操作符 ( + 、 - 、 = 、* 、 / 、 \ 、 %)
  • 参数4:
    数值 (该参数为 NULL 表示删除这个键)
  • 参数5:
    数值类型 (0:字符 1:数字) 默认为1
  • 参数6:
    分隔符 (默认为"|")

  • 操作符
  • 整除向下
  • 整除向上
  • 取模
代码示例
[@示范]
#IF
True
#ACT
MOV S50 等级=10|经验=100|攻击=50
SENDMSG 7 [数字修改]赋值:<$STR(S50)>
SETSTRVALUE S50 经验 = 20 1 |
SENDMSG 5 [数字修改]返回:<$STR(S50)>
SENDMSG 5 [数字修改]返回:等级=10|经验=20|攻击=50
break

[@示范]
#IF
True
#ACT
MOV A50 镇魔塔1层玩家=小可爱|镇魔塔10层玩家=老枫叶|镇魔塔30层玩家=小枫叶
SENDMSG 7 [字符修改]赋值:<$STR(S50)>
SETSTRVALUE S50 * = 空 0 |
SENDMSG 5 [字符修改]返回:<$STR(S50)>
SENDMSG 5 [字符修改]返回:镇魔塔1层玩家=空|镇魔塔10层玩家=空|镇魔塔30层玩家=空
break

[@示范]
#IF
True
#ACT
CALCVAR GLOBAL 沙城主 = 城主名字=枫叶|城主职业=战士|城主等级=63|城主性别=男
SENDMSG 7 [自定义全局变量字符修改]赋值:<$GLOBAL(男战士)>
SETSTRVALUE GLOBAL|沙城主 城主等级 = 72 0 |
SENDMSG 5 [自定义全局变量字符修改]返回:<$GLOBAL(男战士)>
break

##返回键值变量

新增变量 $KV(X).Y.Z 返回键值变量相关参数

  • X:键值变量
  • Y:返回类型
  • Z:分隔符 (分割符为"|"可忽略该参数)
代码示例
[默认示例]
MOV S50 等级=10|经验=100|攻击=50 // 如果键值默认是"|"分割,则可使用以变量返回指定值

$KV($STR(S50)).等级    //返回值为10
$KV($STR(S50)).COUNT   //返回键数量
$KV($STR(S50)).KEYS    //返回所有键名(用|隔开)
$KV($STR(S50)).0.KEY   //返回第1个键名
$KV($STR(S50)).0.VALUE //返回第1个键值
$KV($STR(S50)).0.STR   //返回第1个键名键值

[默认示例]
MOV S50 等级=10#经验=100#攻击=50 // 如果键值是"#"分割,则需要使用Z参数

$KV($STR(S50)).等级.SPE(#)    //返回值为10
$KV($STR(S50)).COUNT.SPE(#)   //返回键数量
$KV($STR(S50)).KEYS.SPE(#)    //返回所有键名(用|隔开)
$KV($STR(S50)).0.KEY.SPE(#)   //返回第1个键名
$KV($STR(S50)).0.VALUE.SPE(#) //返回第1个键值
$KV($STR(S50)).0.STR.SPE(#)   //返回第1个键名键值

##键值变量排序命令

SortStrValue 参数1 参数2 参数3 参数4 参数5
  • 参数1:
    键值变量 (支持自定义变量,自由变量)
  • 参数2:
    排序数值位置 (从0开始)
  • 参数3:
    排序顺序规则 (0:从大到小 1:从小到大)
  • 参数4:
    一级分隔符 (默认为"|")
  • 参数5:
    二级分隔符 (默认为"=")
代码示例
[@示范]
#IF
True
#ACT
MOV A50 大枫叶=30|小枫叶=18|老枫叶=60
SortStrValue A50 1 0
SENDMSG 5 返回:<$STR(A50)>
SENDMSG 5 返回:老枫叶=60|大枫叶=30|小枫叶=18
break

[@示范]
#IF
True
#ACT
MOV A50 大枫叶=长度&30|小枫叶=长度&18|老枫叶=长度&60
SortStrValue A50 1 1 | &
SENDMSG 5 返回:<$STR(A50)>
SENDMSG 5 返回:小枫叶=长度&18|大枫叶=长度&30|老枫叶=长度&60
break