调整爆率的核心操作集中在服务端Envir目录下的MonItems文件夹,但全局倍率、数据库字段和脚本命令会从不同层面叠加影响最终结果。
MonItems文件夹位于MirServer\Mir200\Envir\路径下,每个.txt文件对应一只怪物,文件名必须与Mir200\Mud2\DB\Monster.DB中的怪物名称完全一致,包括大小写和特殊符号。用游戏中@showmonname命令确认怪物的标准名称,避免因文件命名偏差导致修改不生效。打开任意爆率文件,内容格式为“概率 物品名称”,其中概率采用1/N写法,1/1表示每次必爆,1/100表示击杀一百次左右掉落一次。修改时只改分母,例如将1/140天师长袍改为1/70,爆率翻倍;改为1/1则每次必出。物品名称必须与Mir200\Mud2\DB\Item.DB中的记录完全匹配,后缀和符号不能简写,修改前可用M2控制台的@item命令验证物品是否存在。
带条件的掉落需要用#IF #ELSE #ENDIF完整包裹,缺少#ENDIF会导致该怪物所有掉落规则整体失效。部分引擎支持#CHILD子爆率写法,格式为#CHILD 1/2后跟括号内的物品列表,先按外层概率判定是否进入子池,再按子池内各自的概率抽取物品。GOM引擎2024年后版本要求文件保存为UTF-8无BOM编码,HERO引擎和旧版GOM必须用ANSI编码,编码不匹配时中文物品名会变成乱码,引擎无法解析。
全局爆率倍率在MirServer\Mir200\Envir\!Setup.txt中控制,找到DropRate字段,默认值通常为1.0或3.0,支持小数。最终爆率等于全局倍率乘以怪物单独爆率,例如全局倍率3.0、怪物单独爆率1/500,实际概率为1/(500/3)约等于1/167。想让某物品最终概率为1/1000,全局倍率为2.0时,单独爆率应设为1/2000。修改后保存文件,GOM引擎在M2控制台输入@reload setup即可实时生效,其他引擎需要重启M2Server.exe。
保存怪物爆率文件后,GOM引擎在M2控制台执行@reload monitems 怪物名可单独重载该怪物,不写怪物名则重载全部爆率文件。通用重载命令为@重载爆率或@ReloadMonItems,部分引擎的M2界面中有控制菜单下的重新加载怪物爆率选项,点击即可完成热更新,无需重启引擎。
采用MySQL存储动态配置的服务端,MonItems文件夹中的文件可能只是默认值,实际爆率从数据库drop_rate表读取。该表结构通常包含monster_id、item_id、drop_rate三个核心字段,drop_rate为浮点数,0.1表示10%概率。此时修改本地文件无效,需要通过SQL语句调整,例如UPDATE drop_rate SET drop_rate = 5.0 WHERE server_id = 1将指定区服的全部爆率改为5%。判断服务端属于文件驱动还是数据库驱动,可以在修改文件并重载后击杀目标怪物测试掉落是否变化,若无变化则爆率逻辑由数据库控制。
DBC2000版本的爆率参数嵌入在Monster.DB中,D列数值代表总爆率触发概率,采用1/X模式,例如设置5000时实际爆率为1/5000即0.02%。E至M列对应具体物品的权重值,仅调整D列会导致爆率触发后物品分配失衡,需要同时设置D列基数和物品列的权重。物品权重数值越小,该物品在爆率触发时被选中的概率越高。修改Monster.DB后必须关闭数据库工具、停止M2Server、重新打开数据库并启动引擎,数据变更才会加载。
常见修改无效的原因集中在三个环节。文件编码与引擎不匹配,用Notepad++打开爆率文件,在编码菜单中确认当前格式,GOM新版转为UTF-8无BOM,旧版和HERO转为ANSI后保存。文件名与怪物数据库名称存在偏差,包括尾随空格或中英文括号混用,用@showmonname获取的精确名称替换文件名。全局倍率与单独爆率的叠加计算未考虑,修改了单独爆率但全局倍率为0或未加载,最终概率仍为零。
稀有物品的单独爆率建议控制在1/5000至1/20000区间,极低概率不建议低于1/100000,部分引擎的随机数精度在该量级下会导致实际概率归零。每次调整后重启或重载,用@make命令模拟击杀测试实际掉落分布,再根据测试结果微调。
传奇爆率调整文件定位格式修改与生效完整操作指南
来源:
作者:
点击:

