HGE引擎传奇架设常见BUG漏洞 怪物掉落重复刷金元宝复制交易卡位与脚本权限缺陷

来源: 作者: 点击:
HGE引擎底层已知Bug
多人同时击杀同一怪物时[@KillMonster]事件可能因线程竞争重复执行,导致物品双倍掉落或任务计数异常。角色数据先写内存再定时存DB,服务端异常断电会造成最近交易的金币、装备强化记录丢失,严重时UserItem.txt损坏致背包清空。M2Server.exe存在内存泄漏,长时间运行特别是频繁使用[@DelayGoto]或动态NPC时内存只增不减,最终卡死需定期重启。部分版本未校验客户端发来的传送坐标,发超范围坐标(如X=9999 Y=9999)可卡进未开放地图甚至触发空指针崩溃。自定义技能设MP消耗为负值不拦截,释放反而回蓝;攻击间隔低于100毫秒不硬性校验可实现超速攻击。NPC脚本中未过滤InputString输入的特殊字符(如分号井号)可绕过#if条件直接执行后续#act指令。QFunction-0.txt若含@@AdminCommand类文本且未屏蔽,低权限账号可能触发部分底层GM指令。

物品与货币刷取漏洞
最常见是NPC脚本中直接写了GAMEGOLD+或GAMEPOINT+未加触发条件或权限校验,玩家在对话框输入特定指令或反复点某任务NPC可无限加元宝金币——需全局搜索Market_Def和QFunction-0.txt删除裸写的给钱命令。红名村交任务道具若脚本未用Take删除任务物品,交完不消失可反复提交领金币。捆金条功能若脚本未先CHECKGAMEGOLD再扣款,会生成金条却不扣金币实现刷金条。沙巴克存钱输入负数(如-10000)在某些老版本会使余额增加而非减少。行会招募NPC和二级密码NPC的输入框常被利用WPE调用QF文本中的元宝发放代码刷元宝,建议直接删除这两类NPC或加字符过滤。

装备复制与交易漏洞
同账号双开在两窗口同时登录,交易确认瞬间断网或强退,利用服务端数据同步延迟可使装备同时存在于交易双方背包——在网关设置禁止同IP同账号多重登录可封堵。存入仓库瞬间小退,若服务端先存了背包快照未更新仓库DB,上线后仓库和背包各有一件相同装备——开启引擎物品唯一ID(勾选启用物品唯一编号)可防复制。部分版本背包满时交易锁定与取消有时序差,可被利用骗取对方道具或复制——交易脚本加操作冷却(@Delay 3000)限制频率。

权限提升与数据库漏洞
脚本里若留有CHANGEPERMISSION或AddTextList Ex.\AdminList.txt命令,玩家可通过特定对话触发把自身写入GM列表拿到最高权限——全局搜索删除这些危险命令,M2里确认所有管理命令所需权限≥1。DB默认密码123456或未设密码可被外部用DBCommander连入直接改等级元宝删改StdItems表——必须改复杂密码并限制数据库端口对外。老版本NPC对话框存在文本注入点可篡改爆率表或拖库。

地图与玩法逻辑漏洞
部分地图(赤月、尸王殿、自定义迷宫)存在坐标穿透点可卡进墙体或无碰撞区无伤打怪,在MapInfo.txt对应地图后加CHECKDUPLICATE或NORECALL限制。白日门赌场、某些礼包NPC若未做日领取标记(@标志变量)可无限领物品金币——脚本里用DAY换行号记录是否已领。摆摊输入负数金额或超长字符串在某些版本可致对方金币溢出。

客户端兼容与运行故障
Win10/Win11下NPC对话和物品名易显示方框乱码因引擎缺Unicode支持,需换修改版引擎或在Engine.ini指定中文字体Charset=134。系统短日期格式非yyyy-M-d会致M2报时间格式错误退出,改区域设置为yyyy-M-d即可。服务端路径含中文或空格常引起DLL加载失败闪退,必须放纯英文路径如D:\MirServer。地图白屏多因客户端Data目录缺对应.map文件或Pak密码不匹配,需同步补丁。