等概率或者按权限随机获取分割字符串


格式: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那么就取第二个,依次类推