正在加载文档
随机抽取字符串(权重)
<!-- mindoc:slug=aa-1hgloo5j83dis -->
### 格式:
>RandWeightText 参数1 参数2 参数3
### 参数说明:
|位置|说明|备注|
|:----|:---|:---
|参数1 |长字符串 |多个字符串可用分隔符隔开,每个字符格式格式:(字符串,权重)</BR> 随机算法:(所有权重值相加为分母,单个物品权重为分子)|
|参数2 |分割符||
|参数3 |保存变量||
### 示例:
```
[@随机抽取]
#IF
#ACT
RANDWEIGHTTEXT 雷霆项链,1|雷霆护腕,5|雷霆道戒,3|雷霆道靴,1|雷霆腰带,1 | S1
SENDMSG 5 本机随机出的字符为:<$STR(S1)>,随机出雷霆护腕概率为5/11,随机出雷霆道戒概率为3/11,其它概率为1/11
break
```
### 扩展命令:
>RandWeightTextEx 参数1 参数2 参数3 参数4
### 参数说明:
| 位置 | 说明 | 备注 |
|:----- |:-------- |:--------- |
| 参数1 | 长字符串 | 多个字符串可用分隔符隔开,每个字符格式格式:(字符串`权重分隔符`权重)</BR> 随机算法:(所有权重值相加为分母,单个物品权重为分子) |
| 参数2 | 分割符 | |
| 参数3 | 权重分割符| 由于,无法直接从csv中读出的行,故扩展此参数 |
| 参数4 | 保存变量| |
### 示例:
```
[@随机抽取]
#IF
#ACT
RANDWEIGHTTEXT 雷霆项链,1|雷霆护腕,5|雷霆道戒,3|雷霆道靴,1|雷霆腰带,1 | , S1
SENDMSG 5 本机随机出的字符为:<$STR(S1)>,随机出雷霆护腕概率为5/11,随机出雷霆道戒概率为3/11,其它概率为1/11
break
```
### 权重规则解释:
如:RANDWEIGHTTEXT 雷霆项链,1|雷霆护腕,5|雷霆道戒,3|雷霆道靴,1|雷霆腰带,1 | S1
那么总权重为:1+5+3+1+1=11 系统会从1~11随机出来一个数 如随机出来的是3,那么就和第一个字符串,权重|做对比 如果3比第一个字符串小于等于,那么就取第1个
如果随机出来的是5,那么就会用5-1=4 再和下面一个 雷霆护腕,5 对比然后小于等于5那么就取第二个,依次类推