打怪击杀怪物之后没有任何物品掉落,这类问题优先从爆率文件读取状态、怪物编号匹配、爆率格式、M2引擎设置、怪物数据库五个方向排查,多数情况并不是版本损坏,而是文件路径或者配置格式错误,按照顺序逐项检测就能定位问题。
首先确认M2引擎日志输出,启动全套服务端,进入游戏击杀怪物,观察M2窗口打印日志。正常情况下击杀怪物会输出读取爆率文件的记录,如果日志提示找不到怪物爆率文件,代表引擎无法加载对应的txt文件。如果日志显示成功读取爆率文件但是没有触发掉落,说明爆率内部参数设置问题。没有任何爆率相关日志,需要检查M2引擎的爆率读取开关是否开启。打开M2引擎选项,找到怪物爆率相关设置,确认启用怪物爆率,部分版本会自带关闭爆率的选项,关闭之后所有怪物击杀都不会产出物品。
检查爆率存放目录与文件对应关系,Mir200文件夹下Envir目录内的MonItems文件夹,是爆率文件默认存放位置。MonItems里面每一个txt文件名称,需要和怪物数据库内的怪物编号完全一致,不能有多余空格。比如怪物数据库编号为101的稻草人,爆率文件名称就必须是101.txt。很多新手直接修改文件名,增加中文或者多余符号,引擎无法匹配,击杀该怪物不会读取任何掉落规则。打开怪物数据库,查看对应怪物的编号,到MonItems目录查找同名txt文件,缺少对应文件,怪物击杀后不会掉落任何东西。存在文件但是名称多空格,也会匹配失败,需要重命名,删除文件名前后多余空格。
打开爆率txt文件核对书写格式,文件内语法出错会导致整份爆率失效。标准格式为 掉落几率 物品名称,数字越小代表掉落概率越高,1/100代表百分之一概率掉落。每行一条掉落记录,不要使用中文全角逗号、空格或者特殊符号,所有分隔符必须是英文半角。文件内多余空行、注释符号写错,会造成该行失效。部分版本爆率文件开头需要固定标记,删除标记之后整份爆率失效。物品名称必须和物品数据库内的物品名称一字不差,多一个空格或者用字不同,就算触发掉落也不会生成物品。可以简单测试,增加一行1/1 屠龙,保存文件,重启M2,击杀怪物测试,能掉落代表文件读取正常,原有其他行参数概率太低。
爆率文件编码问题也会造成读取失败,记事本直接保存如果选择UTF编码,M2读取时识别乱码,直接跳过全部掉落行。选中爆率文件,右键使用记事本打开,点击另存为,底部编码选项选择ANSI,覆盖原文件保存,之后重启引擎。批量修改爆率文件时,所有txt文件都需要保持ANSI编码,批量转换编码可以使用文本工具处理。
怪物数据库校验,打开怪物数据库,找到当前测试的怪物条目,确认怪物编号、怪物名称没有异常,怪物数据库损坏或者字段错乱,会出现怪物可以刷新但是无法读取爆率。怪物的掉落组参数如果启用分组爆率,会不再读取MonItems下独立txt爆率文件,转而读取分组爆率配置,这个时候修改单个怪物txt不会生效,需要到分组爆率文件内调整掉落物品。
地图爆率过滤与全局掉落控制,部分版本增加全局爆率倍数设置,在M2引擎选项或者Envir内的全局参数文件中。爆率倍数设置为0,所有怪物不会掉落任何装备。部分地图有独立掉落开关,安全区、新手测试地图会关闭怪物掉落,更换野外地图测试,排除地图限制。还有版本增加怪物等级判断,低于设定等级击杀怪物不触发掉落,需要在M2内关闭这个限制或者调整等级参数。
脚本拦截掉落事件,部分登陆脚本、怪物死亡脚本写了取消掉落的指令,怪物死亡时脚本优先执行,直接清除掉落物品。打开QFunction-0.txt,查找怪物死亡相关触发段,检查是否有取消掉落的脚本代码。可以临时注释掉相关脚本,重启M2测试,能正常爆装备就代表脚本拦截了掉落逻辑。
文件权限与安全软件干扰,安全防护程序会锁定Envir目录,M2引擎无法读取MonItems内txt文件。将服务端目录加入信任列表,或者临时关闭防护程序再启动服务端。文件夹属性设置为只读,引擎无法读取内部爆率文件,右键文件夹属性,取消只读勾选,应用到所有子文件。
修改爆率文件后的生效方式,修改MonItems内txt文件,保存之后,部分引擎支持热加载爆率,在M2管理菜单选择重新加载爆率,不用重启整套服务端。不支持热加载的引擎,必须完全关闭M2程序,重新启动,新爆率配置才会加载。只保存txt文件不重载或者重启,游戏内不会看到改动效果。
快速测试方法,新建或者修改怪物爆率,设置1/1的必掉物品,进入游戏多次击杀,如果依旧没有掉落,代表引擎没有读取这个怪物的爆率文件。如果必掉物品可以正常产出,说明原有爆率行概率设置过低,不是读取故障。测试完成后再调整为需要的概率数值。修改爆率时做好MonItems文件夹备份,批量改动前复制整个目录,参数写错可以直接还原。不要一次性修改大量怪物爆率,逐个怪物测试,方便定位哪一个文件出现异常。
单机架设传奇打怪不爆装备完整排查方法含爆率文件路径与数据库校验步骤
来源:
作者:
点击:

