文本与文件

随机读取一行

从指定文本文件中随机读取一行内容到变量,适用于随机词条、随机名单、文本奖池和事件池场景。

命令用途

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。
  • 文本操作命令本身比较消耗资源,频繁从大文件中随机读行时要控制调用频率。
  • 如果你的随机池里存在空行、注释行或格式不统一的内容,抽到后可能直接影响后续脚本拼接结果,最好先清理文本池。

相关命令