LFM2引擎读写配置项脚本实操 - WriteConfigFileItem命令教程
摘要:LFM2引擎用WriteConfigFileItem写、ReadConfigFileItem读ini配置项,按文件路径、设置名、用户名、内容变量定位记录,末参数1为绝对路径、留空为相对路径,两命令配合即变量持久化。本文按帮助文档原文整理格式、路径参数、实操步骤与Cache版对比,帮助调试者落地数据存档。…
读写配置项是把脚本运行中的数据写进ini文件、再从ini文件读回来的一对操作,在LFM2引擎里由WriteConfigFileItem写配置项和ReadConfigFileItem读配置项两条命令配合完成。它相当于一种变量持久化方式,适合需要跨登录、跨场景保存的数据,供版本技术研究与脚本调试使用。
新手常见的痛点是数据只活在当前对话里,玩家一下线、脚本一关就全丢了。用这对命令把数据落到ini文件,下次上线再读回来,就能解决这类临时变量不存档的问题。本文按LFM2引擎帮助文档原文,把这对ini配置项读写命令的格式、路径参数、实操步骤,连同ReadConfigFileItem命令与缓存配置命令的选型对比,逐项整理出来。

配置项命令格式
写配置项命令和读配置项命令参数结构一致,都是文件路径加设置名加用户加内容变量,末尾还能加一个路径类型参数。帮助文档原文给出的写法如下。
格式:
WriteConfigFileItem 文件名 设置 用户 内容 [是否绝对路径]
ReadConfigFileItem 文件名 设置 用户 内容 [是否绝对路径]
[@main]
<写配置项> <请输入你要写入配置项的内容/@@InPutString3>\
<读配置项内容/@读配置项> <$STR(S$配置项内容)>\
[@InPutString3]
#IF
#ACT
WriteConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S3)>
SENDMSG 6 你已经把你输入的内容写到配置文件中KEY.txt
[@读配置项]
#IF
#ACT
ReadConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S$配置项内容)>
SENDMSG 6 你已经把配置文件KEY.txt中的内容获取出
GOTO @main
上例里,玩家先通过InPutString3输入一段内容存进S3变量,写配置项命令把这段内容按用户名写进QuestDiary目录下的KEY.txt;读配置项命令再把同一用户名名下的内容读回到名为配置项内容的变量里。其中用户名取自<$USERNAME>这个系统变量,待读回的内容放进<$STR(S$配置项内容)>自定义变量,正文按规范转义呈现,脚本里照代码块原样写即可。
读写参数与路径说明
两条命令的参数按位置拆开说明。
| 参数位 | 写配置项 | 读配置项 | 说明 |
|---|---|---|---|
| 文件名 | 要写入的ini路径 | 要读取的ini路径 | 支持相对路径,如..\QuestDiary\KEY.txt |
| 设置 | 配置节名称 | 同左 | ini里的分组名 |
| 用户 | 键名,常按用户名区分 | 同左 | 每个玩家一条记录 |
| 内容 | 要写入的值 | 读回后存放的变量 | 写时取变量值,读时写入变量 |
| 是否绝对路径 | 末尾参数,1绝对路径 | 同左 | 0或留空为相对路径 |
帮助文档特别提示,写配置项命令最后加参数1表示用绝对路径,0或留空用默认相对路径;一旦启用绝对路径,路径参数必须写完整,缺一段都定位不到文件。删除操作配套两条命令:DelConfigFileItem按文件名加设置加用户删掉某一行,DelConfigFileSection按文件名加设置删掉整个配置节及其下面的项。
读写配置项实操步骤
用这对命令实现一段可存档的玩家数据读写,按下面步骤操作。
第一步,决定ini文件放哪个目录,示例用..\QuestDiary\KEY.txt,确认该目录可写,文件不存在时写命令会自动创建。
第二步,在NPC对话段提供写入口,用InPutString让玩家输入内容,把输入存进S3这类变量。
第三步,调用WriteConfigFileItem把文件路径、设置名、用户名、内容变量依次写全,末尾默认相对路径就不加参数。
第四步,提供读入口,调用ReadConfigFileItem按同样的路径、设置名、用户名把内容读回指定变量,再用SendMsg把结果显示给玩家。
第五步,需要清理时用DelConfigFileItem删单条或DelConfigFileSection删整个节,避免ini文件越积越大。
缓存命令对比分析
高频读写场景下,帮助文档另外提供了一组Cache缓存版命令:ReadCacheConfigFileItem、WriteCacheConfigFileItem、DelCacheConfigFileItem、DelCacheConfigFileSection。
缓存版与普通版功能对应,区别在性能和保存时机。缓存版对ini的操作只打开一次文件、后续一直放在内存里,所以读写速度快很多;代价是M2运行期间只能由脚本命令操作,手动去改ini文件不会被识别,改动要等关闭引擎时才写回ini。帮助文档举例,提现这类操作涉及手动删记录就不能用缓存版,而战斗力计算这类纯引擎内部、无人手动干预的操作就适合用缓存版。
选型原则:没有手动改ini需求的高频内部计算,优先用带cache的版本提速;存在手动维护ini的场景,老老实实用不带cache的普通命令。这套参数配置思路能帮你在性能和可维护性之间取舍。
常见问题
1. 问:脚本改了为什么游戏里面没变化?
答:常见原因是脚本改动后没有重载,或者NPC根本没走到你改的那段。先确认调用的NPC能正常打开、脚本段开头格式正确,再看启动M2时控制台有没有脚本错误提示行。登录脚本这类改动一般用重载命令即可生效,不必整个重启引擎。这对ini读写命令改完同样要重载脚本,新逻辑才会跑起来。(本条问题整理自百度知道真实提问:传奇服务端脚本改了,游戏里面没变化,2022-11)
2. 问:写配置项和普通变量保存有什么区别?
答:普通数字变量、字符变量多数只在内存里存活,下线或关闭后就丢;写配置项命令是把数据真正落到ini文件里,配合读配置项下次再读回来,相当于变量持久化。帮助文档原文说两条命令配合使用就相当于变量保存操作,适合需要跨登录保留的数据,而临时计算用普通变量即可。
3. 问:绝对路径和相对路径怎么选?
答:末尾参数1为绝对路径,0或留空为默认相对路径。示例用..\QuestDiary\KEY.txt这种相对路径,跟着版本目录走,整体迁移不用改脚本。只有当ini文件放在版本目录之外的固定位置时才用绝对路径,且帮助文档提醒绝对路径参数必须写完整,路径缺一段就定位失败。
4. 问:缓存版读写命令什么情况下不能用?
答:缓存版在M2运行期间只认脚本命令,手动改ini无效,而且要等关闭引擎才写回。凡是涉及人工手动维护ini的场景都不能用缓存版,帮助文档举的例子是提现,因为提现记录会被人工手动删除,手动操作对缓存版不生效。纯引擎内部、无人干预的高频计算才适合用缓存版。
5. 问:想删掉某一行配置或整个配置节用什么命令?
答:删单一行用DelConfigFileItem,参数为文件名加设置加用户,对应删掉某个用户名那一行;删整个配置节用DelConfigFileSection,参数为文件名加设置,会把整个分组及其下面的项一起删掉。删除前先确认节名和用户名写对,删错节会连带清掉该组下所有记录。(来源:LFM2引擎帮助文档,2026-10检索)
6. 问:脚本读不到ini配置、引擎启动报错怎么排查?
答:先确认脚本里写的文件路径与实际ini位置一致,相对路径相对脚本根目录解析。再按启动排查思路核对版本配置信息与网关配置文件,确认版本配置正确后重新打开网关。读写配置项命令定位不到文件,多半是路径写错或绝对路径没写完整,把路径对齐后命令就能正常读写。(本条问题整理自百度知道真实提问:传奇引擎启动程序有哪些报错及解决方法,2026-01)
7. 问:同一条用户名能存多条内容吗?
答:读和写都以文件路径加设置名加用户这个组合作为定位键,同一个用户在同一个设置节下对应一条记录。再次用相同组合写配置项,新值会覆盖旧值而不是追加新行。想给同一玩家存多类数据,就用不同的设置名区分,例如一个设置节存登录记录、另一个存积分记录。
配置项读写要点回顾
读写配置项这对命令把内存里的临时数据落成ini文件:WriteConfigFileItem写、ReadConfigFileItem读,参数按文件、设置、用户、内容依次排,末尾1为绝对路径。高频内部计算换缓存版提速,但有人手动维护ini就别用缓存版;删数据用DelConfigFileItem删行、DelConfigFileSection删节。配好后玩家数据就能跨登录保留,脚本调试时记得改完重载。
读写配置项的键值写法对照LFM2引擎帮助文档抄录,本地环境实测ReadConfigFileItem读取正常,配置路径以实际目录为准。
内容来源可溯:LFM2引擎帮助文档(脚本命令详解-功能操作命令页面)。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。
本文链接:https://www.m2gm.com/tech/lfm2/lfm2-readconfigfileitem-config/









