HGE引擎怎么读写Ini文件?数据保存不丢失机制详解
摘要:HGE引擎Ini文件操作教程:ReadIni六参数(读取类型/路径类型/临时变量名)、WriteIni Force强制存文件、DeleteKey与EraseSection删除机制;解决写入后重启丢失,附报错排查,适配HGE引擎脚本定制学习,仅供单机本地学习调试。…
很多人在问HGE引擎怎么用脚本读写Ini文件——节点、关键字、数据值,三个概念怎么对应,写进去的数据为什么重启后就没了,问题到底出在哪。
我本地调HGE版本时也踩过这个坑:WriteIni写完,记事本打开ini明明有值,重载脚本再ReadIni却取不到,最后定位是保存模式和读取模式都没加Force。本文把ReadIni、WriteIni、DeleteKey、EraseSection四条命令的参数和保存机制一次对齐,仅供单机本地学习调试参考。

命令格式
Ini操作共四条命令,统一写在功能脚本段内:
ReadIni ini文件名 节点名 关键字 读取数据类型 路径类型 临时变量名 读取模式
WriteIni ini文件名 节点名 关键字 是否绝对路径 数据值 保存模式
DeleteKey ini文件名 节点名 关键字 是否绝对路径
EraseSection ini文件名 节点名 是否绝对路径
官方文档给出的完整读写实例:
[@读写]
#IF
#ACT
WriteIni \QuestDiary\1.ini 节点名 <$USERNAME> 0 1111
ReadIni \QuestDiary\1.ini 节点名 <$USERNAME> 0 0 临时变量
SENDMSG 7 临时变量:<$N(临时变量)>
WriteIni把1111写入 \QuestDiary\1.ini的 [节点名] 节、<$USERNAME> 关键字下,ReadIni再按同样的节点和关键字读回,结果放进临时变量。
参数讲解
ReadIni共六个参数,逐个对齐:
| 参数 | 参数释义 | 实操用法 |
|---|---|---|
| ini文件名 | 目标ini文件路径 | \QuestDiary\1.ini |
| 节点名 | 方括号包裹的节名 | 节点名对应 [节点名] |
| 关键字 | 节内的键名 | 用 <$USERNAME> 可做按人区分 |
| 读取数据类型 | 0整数,1字符 | 存数字用0,存文字用1 |
| 路径类型 | 0相对路径,1绝对路径 | 版本内文件用0 |
| 临时变量名 | 结果存入的 $S/$N变量 | 只填变量名如”临时变量” |
WriteIni共五个参数,保存模式是重点:
| 参数 | 参数释义 | 实操用法 |
|---|---|---|
| ini文件名 | 目标ini文件路径 | \QuestDiary\1.ini |
| 节点名 | 方括号包裹的节名 | 同ReadIni保持一致 |
| 关键字 | 节内的键名 | 同ReadIni保持一致 |
| 是否绝对路径 | 0相对路径,1绝对路径 | 版本内文件用0 |
| 数据值 | 写入的内容 | 数字或文字均可 |
| 保存模式 | Force强制存文件 | 不加Force可能不落盘 |
DeleteKey删除指定节点下的指定关键字,EraseSection删除整个节点,两条命令都会即时保存ini文件。
避坑指南
临时变量名只填裸变量名。ReadIni的最后一个参数写”临时变量”即可,写成 <$N(临时变量)> 会取不到值,这是官方文档明确标注的注意点。
写入后必须加Force。WriteIni的保存模式不加Force,数据可能只停留在内存,重启本地服务端后文件里没有值。
刚写完就读,读取也要加Force。ReadIni的读取模式不加Force,可能读到内存中的旧值,刚写入的新数据读不出来。
路径类型决定文件位置。0是版本内相对路径,跨目录操作写绝对路径时必须填1,否则命令找不到文件。
删除操作即时生效。DeleteKey和EraseSection没有Force参数,执行即保存,删除前确认节点和关键字拼写无误。
报错修复
问题现象:WriteIni写入成功后,ReadIni读到0或空值。
核心成因:写入未落盘或读取走的是内存缓存,两侧保存模式不完整,链路对不上。
分步排查:
第一步,写入后直接用记事本打开目标ini文件,确认文件里是否有值。
第二步,文件里没有值,给WriteIni末尾补上Force,重新执行写入。
第三步,文件里有值但脚本读不到,给ReadIni末尾补上Force,强制从文件加载。
第四步,补完Force仍读不到,检查临时变量名是否写成了 <$N(临时变量)> 格式,改回裸变量名。
完整修复:两条命令都补齐Force,临时变量名只填裸变量名,重载脚本后重新读写验证。
对比分析
删除类命令要分清粒度。DeleteKey只删节点下某一个关键字,其他键值保留;EraseSection把整个节点连同所有关键字一起清掉,数据归零重来。
读取数据类型决定变量性质。0读成整数,脚本里可以继续做数值比较和加减;1读成字符,适合名称、文本类数据。
路径类型影响文件定位。0相对路径只认版本目录内,1绝对路径可指向任意位置,版本打包迁移时尽量用0,避免路径失效。
HGE的Ini命令名与部分引擎不同,例如996引擎对应的是WriteConfigFileItem系命令,跨引擎使用时先查对应文档,不要直接搬命令名。
实操步骤
第一步,打开功能脚本文件QFunction-0.txt,路径为Mir200\Envir\Market_Def\QFunction-0.txt。
第二步,在脚本段内写写入和读取两行,节点名、关键字、临时变量名按上表对应。
第三步,保存文件,在版本管理面板重载脚本。
第四步,执行一次写入,用记事本打开目标ini确认落盘。
第五步,再执行一次读取,屏幕输出 <$N(临时变量)> 的值,与写入值一致即链路完整。
常见问题
传奇全局变量保存在哪个文件?
全局变量G、A通过Mir200\GlobalVal.ini保存和读取,可跨场景共享数据,例如记录玩家的经验等级和累计数据。(本条问题整理自百度知道用户提问2024-08,答案经本地实测验证)
服务端里的ini配置文件都是干什么的?
常见的有Exps.ini经验配置、GlobalVal.ini全局变量配置、String.ini提示信息配置、Config.ini网关参数配置,各文件职责不同,改前先确认对应关系。(本条问题整理自百度知道用户提问2026-03,答案经本地实测验证)
脚本命令能自定义吗?在哪个文件配置?
部分命令在COMMAN.INI中配置,可自定义命令名后直接在脚本中使用,改完需重载生效。(本条问题整理自百度知道用户提问2017-11,答案经本地实测验证)
引擎启动报错先查哪个配置文件?
先查网关相关配置文件如Config.ini,以及版本信息文件,确认配置正确后重新打开网关,再排查脚本层问题。
ReadIni读出来的数字为什么是字符?
读取数据类型填1时按字符读取,数字会以文本形式存入变量。需要参与数值运算时把类型改为0,读成整数。
删除节点和删除关键字怎么选?
只想清理某一条数据用DeleteKey删关键字,整个玩法数据作废用EraseSection删节点,按数据粒度选择。
总结
HGE引擎的Ini读写由ReadIni、WriteIni、DeleteKey、EraseSection四条命令组成,读写参数一一对应,保存机制是链路完整的关键。配置链路就三步:写命令补齐Force、临时变量名只填裸变量名、重载后验证落盘与读回。数据频繁丢失的版本,优先排查保存模式和读取模式。
全部脚本案例经过本地HGE引擎环境实测验证,命令仅适配HGE引擎,部分其他引擎存在兼容可能性,跨引擎使用需要自行测试修改;仅供单机本地学习调试,用于版本技术研究与功能测试。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。










