M2Server.exe 弹出 Exception ERangeError in module SystemModule.dll 00079691. Range check error,是 Delphi 编译的老引擎(HERO、3K、GOM 早期版、Blue 部分分支)典型的范围检查异常,意思是程序往一个定长变量(Byte/Word/ShortInt/SmallInt 或定长数组下标)里写了超界值,SystemModule.dll 是引擎内存调度与数据校验核心库,00079691 是它内部抛出异常的偏移地址。这个错和“能不能进游戏”无关,M2 起不来就是它卡死的,按下面顺序查,不用重装系统。
一、系统日期格式(最高频触发源)
控制面板→区域→其他设置→日期,短日期改成 yyyy-M-d 或 yyyy-MM-dd,长日期改 yyyy'年'M'月'd'日' 也行但短日期必须纯数字带短横,别用“2026年07月28日”这种中文格式。时间格式改 HH:mm:ss。改完重启机器再起 M2。老引擎读系统时间做种子运算,中文日期字符串长度超预设缓冲区直接抛 ERangeError。
二、大内存寻址冲突(加内存后突然出现就查这)
32 位 M2 吃不满 4G,物理内存加到 4G/8G 后 SystemModule.dll 分配连续内存块失败会报这个错。两种解法:
• 临时:Win+R 输 msconfig→引导→高级选项→勾“最大内存”填 2048→重启,架设完取消勾选;
- 启动项:M2Server.exe 快捷方式目标末尾加 -maxmem2048;
• 换同版本“大内存适配版”SystemModule.dll(必须同引擎 revision,HERO 的不能套 GOM 的)。
三、SystemModule.dll 本身状态
进 Mir200 目录看该文件在不在、大小是否正常(通常 1-4MB)。被杀软隔离的就几 KB 残片,从同版本完整引擎包复制覆盖,覆盖前关 Defender 和 360,覆盖后右键文件属性→常规最底下若显示“此文件来自其他计算机…”点“解除阻止”。严禁跨引擎版本换 DLL,HERO 1108 的 dll 套到 GOM 上必崩。
四、配置文件数值越界(自己改过 Setup 必查)
打开 Mir200\!Setup.txt,重点行:
• GamePort / LoginGatePort 必须在 1024-65535,别写 70000;
- MaxUser 别填 999999,常规 ≤10000;
• MapCount 别小于 MapInfo.txt 实际行数,也别填 9999;
• MonsterCount、ItemCount 填合理值,别留负数、字母、全角数字;
- 最近手改过的行全部过一遍,改前没备份就对照同引擎纯净端 !Setup.txt 逐行比。
五、MapInfo.txt 地图号溢出
Envir\MapInfo.txt 第一列地图编号:不用负数、不用 0-50 系统保留段重复、别从 0 跳到 999999,新增地图从 51 起递增;地图宽高别写 8000x8000 这种离谱值(标准 ≤1500x1500);总行数 ≤ !Setup.txt 里 MapCount。把最近加的隐藏地图、活动地图行先整段注释掉起 M2 测试。
六、物品/怪物/技能数据越界
• StdItems.DB(或 Item.DB):Idx 别 >65535,别重复,Name 不带全角空格和不可见字符,AC/DC/MC 等数值 ≤255,Price 纯数字;
- Monster.txt:怪物坐标 X/Y 非负且不超地图尺寸,刷怪数量单行 ≤200;
• Magic.DB:技能 MaxLevel ≤255(实际 5-10),特效索引别指向客户端没有的编号;
- MonGen.txt 里地图名、坐标、怪物名、数量、间隔按规范填,最近加的刷点先注掉。
七、Q 脚本与触发脚本
QFunction-0.txt、QManage.txt、Market_Def 里最近改过的段,特别是 #ACT Give Item 物品名 物品名不在 StdItems.DB、或脚本里给数组下标赋负数/超大值(#IF Check [100] 但数组只开 50),M2 初始化事件表时校验失败。把近期修改的脚本整段用 ;(分号)注释,冷启动 M2,能起就分段放开定位到具体行。
八、DBC 与路径
BDE Administrator 里 HeroDB 的 PATH 指向 Mud2\DB 或 DBServer\DB,纯英文无空格;服务端整体放 D:\MirServer 这种纯英文路径,别放“桌面\传奇服务端”。C 盘根目录删 PDOXUSRS.NET,DB 目录删 .lck 锁文件。区域格式改完、内存限制完、dll 覆盖完,全关 M2/DBServer/网关冷启动,别点“重载”。
这个报错 90% 落在“系统短日期带中文”或“加内存后 32 位引擎寻址炸”这两类,先改日期格式、msconfig 限 2G 内存、同版本 dll 覆盖这三步,三步之内没解决再动 MapInfo 和 StdItems。报错偏移 00079691 每次都一样说明是确定性数据校验失败,不是随机内存坏块,肯定能靠改配置修回来。
传奇M2启动报ERangeError SystemModule.dll 00079691修复
来源:
作者:
点击:

