当前位置:首页 > 实操教程 > HGE引擎 > 正文内容

HGE引擎ReadIni脚本教程 - Ini文件读写配置指南

M2GM2026-09-27HGE引擎3
摘要:本文讲解HGE引擎ReadIni读取、WriteIni写入、DeleteKey删键、EraseSection删节点四条ini文件操作命令,按官方文档列出格式与参数,用表格拆解路径、节点、关键字、数据类型、临时变量名等项,给出标准脚本实例并按三阶演示按人分键存档,汇总路径混用、变量名格式、写入不落盘等坑点与六条问答。…
[TOCM]

做版本调试时,经常要把玩家的某个标记、某个累计数永久记下来,下次上线还在。靠G、A全局变量能存一类,但跨脚本、跨NPC单独归档时不够灵活,这时候就需要直接读写ini文件。ReadIni就是HGE引擎提供的从ini配置文件里取值的命令,配套WriteIni写入、DeleteKey删键、EraseSection删节点,四枚命令凑成一套完整的键值存储读写工具。

新手最容易踩的坑,是把ini文件当成普通文本往出读,结果路径写错、临时变量名多加了尖括号,值怎么读都是空。下面把这组命令的格式、参数和实测写法一次理清,照着在本地服务端跑一遍就能看到效果。

ReadIni读写ini文件配图 - M2GM

命令格式

读取ini文件用ReadIni,写入用WriteIni,删除节点关键字用DeleteKey,删除整个节点用EraseSection。四条命令的标准格式如下,全部在NPC脚本的#ACT段里调用。

; 读取INI文件
ReadIni ini文件名 节点名 关键字 读取数据类型(0-整数 1-字符) 路径类型(0-相对路径[版本内]/1-绝对路径) 临时变量名 读取模式(Force-强制从文件加载)

; 写入INI文件
WriteIni ini文件名 节点名 关键字 是否绝对路径(0-相对路径[版本内]/1-绝对路径) 数据值 保存模式(Force-强制存文件)

; 删除INI文件指定节点的关键字(即时保存INI文件)
DeleteKey ini文件名 节点名 关键字 是否绝对路径(0-相对路径[版本内]/1-绝对路径)

; 删除INI文件指定节点
EraseSection ini文件名 节点名 是否绝对路径(0-相对路径[版本内]/1-绝对路径)

帮助文档里特别提醒一句:临时变量名只填变量名本身,不能写成<$S变量名>或<$N变量名>的包裹格式。这一点新手出错率极高,后面避坑段还会展开。

ReadIni命令参数内容示意图 - M2GM

参数速查

四条命令共用同一套ini文件、节点名、关键字三元定位,区别只在读还是写。把常用参数拆成对照表,对照填即可。

参数位置 参数含义 实操填法
ini文件名 目标ini的相对或绝对路径 \QuestDiary\1.ini
节点名 ini里方括号段名 节点名
关键字 节点下的键 可用<$USERNAME>按人分键
读取数据类型 0整数、1字符 取数字填0,取文字填1
路径类型 0版本内相对路径、1绝对路径 版本内文件统一填0
临时变量名 读出的数据存到哪个变量 直接写S变量或N变量名
数据值 WriteIni要写入的内容 数字或字符串均可
保存读取模式 Force强制落盘或强载 需要即时生效加Force

读取出来的值,整数型落到N变量、字符型落到S变量,之后用<$N(变量名)>或<$S(变量名)>取出来展示。这套机制本质就是把零散数据持久化到磁盘ini,重启本地服务端也不丢。

避坑指南

第一个坑是临时变量名格式。帮助文档明确要求只写变量名,写成<$N(临时变量)>反而读不到值,这是ini文件读写里最高发的误操作。

第二个坑是路径。相对路径是相对于版本内QuestDiary这类目录写的,开头带反斜杠;一旦混用绝对路径,路径类型参数必须同步改成1,否则引擎按相对路径去找,文件根本对不上。

第三个坑是写入不落盘。WriteIni不带保存模式时,数据先在内存里,遇到批量写建议加Force强制存文件,避免本地服务端异常退出时丢失刚写的键值。

ReadIni读写脚本配置示意图 - M2GM

配置实战

下面给出帮助文档里的标准读写实例,配合本地测试环境可以直接跑。

[@读写]
#IF
#ACT
WriteIni \QuestDiary\1.ini 节点名 <$USERNAME> 0 1111
ReadIni \QuestDiary\1.ini 节点名 <$USERNAME> 0 0 临时变量
SENDMSG 7 临时变量:<$N(临时变量)>

[@删除关键字]
#IF
#ACT
DeleteKey \QuestDiary\1.ini 节点名 <$USERNAME> 0

[@删除节点名]
#IF
#ACT
EraseSection \QuestDiary\1.ini 节点名 0

初级玩法:照上面这段,把玩家名作为关键字,第一次写1111,读回来用SENDMSG打印,验证读写通路是否正常。

中级玩法:在节点下按玩家名分键,存该玩家的累计奖励次数,登录时ReadIni取出做判断,领奖后WriteIni累加,实现单人专属计数而不污染全局变量。

高阶玩法:用DeleteKey在玩家兑换后删掉对应键,用EraseSection在活动结束时清空整个节点,配合机器人脚本定时归档,做成一套独立的键值存储存档系统,ini文件读写在这里就承担了轻量存档的角色。

问题速查

1. ini文件读写命令适合存哪些数据?

适合存单人累计标记、活动参与次数、临时领取记录这类结构简单、需要重启保留的键值对。它不适合存大批量装备明细,那种还是走数据库或专门存档表更稳。ini文件读写的优势是随写随存、按玩家名分键隔离。

2. WriteIni写了值,ReadIni却读出来是空怎么排查?

先查临时变量名是否多加了尖括号包裹,再查路径类型与实际路径是否一致,最后确认读取数据类型与写入值匹配。遇到脚本改了游戏里没变化时,多半是路径或变量名对不上,逐行对照官方格式即可定位。(来源:百度知道,2022-11检索,已去隐私)

3. ReadIni读ini和全局变量G、A保存有什么区别?

全局变量G、A由引擎统一在GlobalVal.ini里托管,适合全服共享的少量数据;ini文件读写是自己指定文件名、节点和关键字,适合按人、按活动分文件归档,互不干扰。前者开箱即用,后者灵活可控,按数据隔离需求选。(来源:百度知道,2024-08检索,已去隐私)

4. 读取数据类型填0整数和1字符怎么选?

要取出来做加减判断就填0,数据落到N数字变量;要读出来当文字展示就填1,落到S字符变量。同一个键写进去的是什么类型,读的时候就要对应选类型,否则取出来的值会对不上。

5. 版本里那些Exps.ini、Config.ini能直接用ReadIni改吗?

不建议脚本去改写引擎自带的Exps.ini、Config.ini这类运行配置文件,它们由本地服务端启动时加载,运行中改写容易引发读取冲突。ReadIni、WriteIni更适合在QuestDiary下自建业务ini,例如自建1.ini存档,引擎自带配置仍走M2面板调整。(来源:百度知道,2026-03检索,已去隐私)

6. 删除关键字和删除整个节点分别用在哪?

删单个玩家的记录用DeleteKey,只清掉这一个键;某个活动彻底结束、整块废弃时用EraseSection,一次性清空整个节点。前者粒度细、后者清理彻底,删除节点会连带该节点下所有关键字一起抹掉。

小结

ReadIni、WriteIni、DeleteKey、EraseSection四条命令配合,构成HGE引擎里一套轻量的ini文件读写与键值存储能力,路径类型、临时变量名、数据类型三处对齐,读写就能稳定生效。把需要跨重启保留、又想按人隔离的数据放进自建ini,比硬塞全局变量更清晰。

ReadIni与WriteIni读写ini的全部案例已在本地HGE引擎环境逐项跑通,DeleteKey、EraseSection清理节点也验证生效;这组命令仅适配HGE引擎,部分其他引擎存在兼容可能性,跨引擎使用需要自行测试修改。

扫描二维码推送至手机访问。

本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。

本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。

本文链接:https://www.m2gm.com/tech/hge/readini-writeini/

分享给朋友: