文本与文件
随机读取一行
从指定文本文件中随机读取一行内容到变量,适用于随机词条、随机名单、文本奖池和事件池场景。
命令用途
ReadRandomLine 用于从指定文本文件中随机读取一行文本,并把结果写入指定变量。
它适合处理按行存放的随机池内容,例如随机词条、随机怪物名、随机奖励文案、随机属性组和活动刷怪名单。
命令名
ReadRandomLine
调用格式
ReadRandomLine <文件路径> <返回变量> [HardDisk]
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
文件路径 | 是 | 目标文本文件路径。 |
返回变量 | 是 | 用于接收随机结果的变量,一般写 S 系列字符串变量,也可以写入其它可接收文本结果的变量。 |
HardDisk | 否 | 实时从物理硬盘读取;省略时优先读取引擎当前内存中的文本内容。 |
返回或影响
- 该命令会从目标文件中随机选取一行,并把结果写入指定变量。
- 它不是条件判断命令,通常配合
#ACT、GiveEx、MonGenEx、SendMsg等流程继续使用。 - 带
HardDisk时,会优先读取物理文件中的实时内容。 - 不带
HardDisk时,通常读取当前内存中的文本状态。 - 如果文件内容异常、为空或读不到有效行,返回变量不应直接假定为可靠的新值,业务上最好补兜底处理。
示例
基础用法
#ACT
ReadRandomLine ..\QuestDiary\活动配置\世界BOSS.txt AZJ1 HardDisk
SendMsg 0 "本次刷新的 BOSS 为:<$STR(AZJ1)>"
这段写法会从指定文本池里随机抽出一行,写入 AZJ1,再把抽中的结果输出到聊天栏或公告流程中。
常见变体
#ACT
ReadRandomLine ..\QuestDiary\鉴定系统\普通攻击属性.txt S100 HardDisk
ReadRandomLine ..\QuestDiary\鉴定系统\普通攻击点数.txt S101 HardDisk
GiveEx <$STR(S100)> 1 <$STR(S100)>=<$STR(S101)>
这类写法用于把多个文本池组合成随机属性或随机奖励结果。先分别抽取属性名和属性值,再把结果拼进后续发奖或生成逻辑。
注意事项
ReadRandomLine和ReadLine的区别在于前者是随机抽一行,后者是按指定行号读取。- 如果要判断“是否真的抽到了内容”,建议先把返回变量清空,再执行读取;例如先
MOV S10,再读入S10。 - 文本操作命令本身比较消耗资源,频繁从大文件中随机读行时要控制调用频率。
- 如果你的随机池里存在空行、注释行或格式不统一的内容,抽到后可能直接影响后续脚本拼接结果,最好先清理文本池。
