等概率或者按权限随机获取分割字符串
格式:RANSJSTR 参数1 参数2 参数3 参数4 参数5
参数1:需要获取随机的字符串 字符串#权重|字符串#权重 |=分割符 (字符串顺序无要求)
参数2:0~1(0=系统权重随机,有几个字符串就是几份之一,1=按#位权重随机总权重为各项;位权重总和)
参数3:0~3(0=参数4和参数5;显示#权重数字 1=参数4和参数5;不显示#权重数字 2=参数4;显示权重 参数5;不显示权重 3=参数4;不显示权重 参数5;显示权重)
参数4:随机到的字符串保存变量
参数5:剩余的字符串保存变量
例子1:
[@随机分割字符串]
#IF
#ACT
RANSJSTR 测试1#2000|测试2#1000|测试3#5000 1 3 S0 S1
;总权重说明:总权重为2000+1000+5000=8000
SENDMSG 0 随机的字符串:<$str(S0)>
SENDMSG 0 剩余字符串值:<$str(S1)>
;假设分割出来的是:测试2#1000
;继续分割剩余的字符串 总权重为2000-1000+5000=7000
RANSJSTR <$str(S1)> 1 3 S2 S3
SENDMSG 0 随机的字符串:<$str(S2)>
SENDMSG 0 剩余字符串值:<$str(S3)>
例子2:
[@随机分割字符串系统权重]
#IF
#ACT
RANSJSTR 木剑#3|铁剑#3|短剑#3 0 1 S0 S1
SENDMSG 0 随机的字符串:<$str(S0)>
SENDMSG 0 剩余字符串值:<$str(S1)>
;总权重说明:总权重为3(系统权重随机时,有几个字符串就是几份之一)
gives <$str(S0)>
SENDMSG 0 你获得了3把铁剑(假设分割出来的是铁剑)
权重规则解释:
如:RANSJSTR
测试2#300|测试1#100|测试3#200 1 3 S0 S1
那么总权重为:300+100+200=600 系统会从1~600随机出来一个数
如随机出来的是50,那么就和第一个字符串#权重|做对比 如果50比第一个字符串小于等于,那么就取第1个
如果随机出来的是400,那么就会用400-300=100 再和下面一个 测试1#100 对比然后小于等于100那么就取第二个,依次类推