当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇M2启动报ERangeErrorSystemModule.dll00079691修复

热度:
M2Server.exe弹出ExceptionERangeErrorinmoduleSystemModule.dll00079691.Rangecheckerror,是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,HERO1108的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里最近改过的段,特别是#ACTGiveItem物品名物品名不在StdItems.DB、或脚本里给数组下标赋负数/超大值(#IFCheck[100]但数组只开50),M2初始化事件表时校验失败。把近期修改的脚本整段用;(分号)注释,冷启动M2,能起就分段放开定位到具体行。

八、DBC与路径
BDEAdministrator里HeroDB的PATH指向Mud2\DB或DBServer\DB,纯英文无空格;服务端整体放D:\MirServer这种纯英文路径,别放“桌面\传奇服务端”。C盘根目录删PDOXUSRS.NET,DB目录删.lck锁文件。区域格式改完、内存限制完、dll覆盖完,全关M2/DBServer/网关冷启动,别点“重载”。

这个报错90%落在“系统短日期带中文”或“加内存后32位引擎寻址炸”这两类,先改日期格式、msconfig限2G内存、同版本dll覆盖这三步,三步之内没解决再动MapInfo和StdItems。报错偏移00079691每次都一样说明是确定性数据校验失败,不是随机内存坏块,肯定能靠改配置修回来。
[顶部]