LFM2引擎读取文本内容到变量 - GetListString命令配置教程
摘要:LFM2引擎的GetListString命令用于按行号读取文本文件内容到变量,格式为文件路径加行号加变量1加变量2加是否绝对路径,行号从0开始,变量2可省略,读变量2时文本单行须为名称加冒号加数值格式。本文按帮助文档原文整理命令格式、行号与变量参数表、读取步骤与行号错位坑点,帮助脚本调试者把名单与代码分离维护。…
很多人在问,文本文件里存好的名单、数值,怎么在脚本运行时按行号读出来塞进变量里用。这件事在LFM2引擎里由GetListString命令完成,它位于兼容HeroM2模块,读取文本内容到变量一步到位,把指定行的文字直接取到脚本变量中供后续判断和显示。
脚本里要读排行榜名单、奖励列表这类外部文本时,总不能每行写死在代码里。用GetListString按行号做文本内容读取,文本和脚本分离,改数据不用动脚本。本文按LFM2引擎帮助文档原文,把这个行号变量命令的格式、行号与变量参数、读取步骤和常见坑点逐项整理出来。

读取文本命令格式
GetListString在脚本里的写法是命令名加文件路径加行号加变量,可选再带一个变量2和是否绝对路径参数。它属于兼容HeroM2模块的命令,写法沿用HeroM2约定,LFM2引擎脚本直接可用。
格式:
GetListString 文件路径 行号(行号从0开始) 变量1 变量2 是否绝对路径(0,1)
[@main]
#IF
#ACT
GetListString ..\QuestDiary\测试.txt 5 A10 N10
上例从QuestDiary目录下的测试.txt里读取第5行,把内容存进A10变量,同时按冒号拆分把后半段存进N10变量,这是帮助文档原文给出的示例。行号从0开始计数,这点和日常从1数起不同,写行号时要往下挪一位。
行号与变量参数说明
五个参数的作用整理如下表。
| 参数 | 取值/格式 | 说明 |
|---|---|---|
| 文件路径 | 如..\QuestDiary\测试.txt | 要读取的文本文件,支持相对路径 |
| 行号 | 从0开始的整数 | 指定读文本第几行,0对应第一行 |
| 变量1 | 如A10 | 读回内容存放处,必填 |
| 变量2 | 如N10,可省略 | 读冒号后半段,省略则不拆分 |
| 是否绝对路径 | 0或1 | 1为绝对路径,0为相对路径 |
帮助文档说明,变量2可以不需要;一旦读变量2,文本单行内容必须是人物名加冒号加数值这种格式,例如人物1:10、人物2:20。也就是说同一行里冒号前的部分进变量1,冒号后的数字进变量2,正好适配名字带数值的名单场景。这套数据加载逻辑记住后,读哪种名单都能套。
读取文本到变量步骤
用GetListString把外部文本读进脚本变量,按下面步骤操作。
第一步,准备好要读的文本文件,放到QuestDiary这类可访问目录,每行一条记录,需要拆分的行写成名称加冒号加数值格式。
第二步,确定要读第几行,记住行号从0开始,想读文本第一行就写0,读第六行才写5。
第三步,在脚本触发段写入GetListString加文件路径加行号加变量1,需要拆冒号两段就再补变量2和是否绝对路径参数。
第四步,保存脚本并重新加载,用SendMsg把读回的变量1、变量2显示出来,核对取到的内容和文本对应行是否一致。
读取文本常见坑点
按行号读文本,最容易在下面几处出错。
行号数错一位:行号从0开始,想读第一行却写了1,结果读到的是第二行。这是新手最常犯的错位,读出来内容不对先把行号减1核对。
变量2乱读:只有文本行本身是名称加冒号加数值格式,读变量2才有意义。普通一行纯文字硬读变量2,拆不出后半段,变量2会取不到预期值。
路径写错:文件路径相对脚本根目录解析,文件放错目录或路径里文件名打错,命令读不到文件就取不到内容,先确认文件确实存在于所写路径。
常见问题
1. 问:GetListString读出来的内容存进哪种变量?
答:命令把读到的文本存进你指定的变量里,示例用A10存文本、N10存冒号后的数值。变量分全局和私人两类,全局变量如G、A系列可跨场景共享数据,私人变量只影响当前人物。需要多人共享的名单用全局变量承接,只服务当前玩家的临时读取用私人变量即可。(本条问题整理自百度知道真实提问:传奇脚本全局所有变量使用说明,2024-08)
2. 问:自定义字符变量怎么和读取命令配合?
答:自定义字符变量以S开头后面跟数字或名称,例如S$我的人物名称,用MOV命令赋值。GetListString读回的是一段文字内容,正好适合放进S开头的字符变量里保存文本;如果要存数值,就用N、D这类数字型变量承接冒号后的部分。变量类型和读到的数据性质对上,后续拼接显示才不会乱。(本条问题整理自百度知道真实提问:传奇自定义字符变量怎么用,2025-08)
3. 问:读回数值后想做加减运算怎么办?
答:用INC和DEC命令做增减。INC N2后面跟取值相当于把N2加上该值,DEC同理做减法,第一个参数直接写变量名,后续取值要用字符串变量取值方式包裹。GetListString先把文本里的数值读进变量,再用INC、DEC累加,就能在读取基础上做后续数值计算。(本条问题整理自百度知道真实提问:传奇变量inc和dec的用法,2018-03)
4. 问:行号为什么从0开始?读第一行写几?
答:这是命令固定的计数方式,行号从0开始,文本第一行对应行号0,第二行对应行号1,依次类推。帮助文档示例读测试.txt的第5行写的是参数5,对应文本里实际第六行。配置时把想读的那一行往下数一位填行号,读错位先按这条减1核对。
5. 问:变量2是做什么用的?什么格式才拆得开?
答:变量2用来接冒号后半段的数值,不需要就不写这个参数。一旦写了变量2,文本单行必须是名称加冒号加数值格式,例如人物1:10、人物2:20,冒号前进变量1、冒号后进变量2。不是这种格式的纯文字行,硬读变量2取不到预期结果。
6. 问:GetListString和读配置项命令有什么区别?
答:两者都从外部文件取数据,但取法不同。GetListString按行号读取整个文本行,适合名单、列表这类一行一条的资料;ReadConfigFileItem按文件加节加键名读取ini里的指定配置项,适合键值对结构。名单逐行展示用GetListString,结构化参数键值用读配置项命令。(来源:LFM2引擎帮助文档,2026-10检索)
文本读取配置小结
读取文本内容到变量靠GetListString一行搞定:路径定文件、行号从0开始、变量1存整行、变量2拆冒号后半段。记住行号比日常多数一位,拆段要求文本是名称加冒号加数值格式,路径要相对脚本根目录写对。这条命令在兼容HeroM2模块,配好后名单、奖励列表就能和脚本分离维护,改数据不动代码。
GetListString读取文本到变量的示例来自LFM2引擎帮助文档,实测跑通按行号取数后成文,变量名请按自己脚本调整。
来源可溯:LFM2引擎帮助文档(脚本命令详解-功能操作命令页面)。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。
本文链接:https://www.m2gm.com/tech/lfm2/lfm2-getliststring-text/













