文本与文件

随机读取字符串

从文本文件或权重字符串中随机读取一项到变量,适用于随机词条、随机名单和概率抽取场景。

命令用途

ReadRandomStr 用于从文本文件或权重字符串中随机读取一项内容,并把结果写入指定变量。

它既可以像 ReadRandomLine 一样从文本文件中随机取一行,也可以直接使用“字符串1|权重1,字符串2|权重2...”这种写法做概率抽取。

命令名

ReadRandomStr

调用格式

ReadRandomStr <文件路径/权重字符串> <返回变量> [HardDisk]

参数说明

参数必填说明
文件路径/权重字符串是可以写文本文件路径,也可以直接写权重字符串,常见格式是 字符串1|权重1,字符串2|权重2,字符串3|权重3...,权重数字越大获取几率越小
返回变量是用于接收随机结果的变量,一般写 S 系列字符串变量,也可以写入其它可接收文本结果的变量。
HardDisk否文件模式下可用来实时读取硬盘内容;省略时优先读取引擎当前内存中的文本内容。

返回或影响

  • 该命令会把随机选中的内容写入指定变量。
  • 它不是条件判断命令,通常配合 #ACT、SendMsg、MOV 等流程继续使用。
  • 如果使用文件模式,带 HardDisk 时会优先读取物理文件中的实时内容。
  • 如果使用权重字符串模式,则直接按传入的字符串列表进行随机抽取。
  • 如果读取到的内容为空,返回变量可能保留该变量上一次的值,不能默认当作空字符串处理。

示例

基础用法

#ACT
ReadRandomStr ..\QuestDiary\随机词条.txt S15 HardDisk
SendMsg 0 "本次抽到的词条:<$STR(S15)>"

这段写法会从指定文本文件里随机取一项到 S15,适合随机词条、随机名称或随机奖励文案。

常见变体

#ACT
ReadRandomStr 仙|5,魔|3,神|1 S20

这段写法会直接按权重字符串随机抽取一项到 S20,适合不想单独维护文本文件的轻量概率抽取。

注意事项

  • ReadRandomStr 的作用和 ReadRandomLine 相近,但它还支持直接传入权重字符串。
  • 如果要判断“是否真的抽到了内容”,建议先把返回变量清空,再执行读取;例如先 MOV S10,再读入 S10。
  • 如果文本池里存在空行、注释行或格式不统一的内容,抽到后可能直接影响后续脚本拼接结果,最好先清理文本池。

相关命令