传奇服务端爆率设置格式及修改后爆率异常过高的具体原因排查

来源: 作者: 点击:
爆率的标准格式是“1/数字 物品名称”,比如“1/5000 龙纹剑”。中间用一个英文半角空格隔开,不要用Tab键,也不要用中文空格,物品名字必须和 DBC2000 里 StdItems 数据库中的名字一字不差。一行只写一条,结尾不要带句号或特殊符号。你设置 1/5000 理论上没错,但刚砍几个就爆出来是概率的正常波动,就像买彩票第一张就中奖,不代表彩票造假,几率小的事也可能很早发生。

你下的免费版爆率异常高,大概率是文件里同一件装备被重复写了好多行。引擎读取时每行都是一次独立判定,如果文件里写了 10 行 “1/5000 龙纹剑”,实际单次掉落概率就接近 1/500 了,你看着没几个怪其实判定了几十次。打开 MonItems 目录下对应怪物的 txt 文件,检查有没有重复的条目,有的话删到只剩一行。

还要看文件里有没有 #CHILD 格式的分组爆率。比如写着 “#CHILD 1/1 RANDOM ( 1/1 龙纹剑 1/1 骨玉权杖 )”,这种意思是 100% 触发抽签,且必爆括号里的一样。这种格式如果混在传统格式里,会打乱你对爆率的预期,看不懂就先备份,然后把 #CHILD 开头的行暂时删掉测试。

除了 MonItems 文件夹,还有几个地方直接干涉爆率。M2Server 控制台参数设置里有个“怪物爆率倍数”,如果被设成了 10 倍,你写 1/5000 就变成 1/500。还有 QuestDiary 下的脚本文件,搜索 SETMONSTERDROP 或 ChangeDropRate 命令,很多版本会在杀怪脚本里动态加倍爆率。另外 DBC2000 的 Monster 数据库里有个 DropRare 字段,数值小于 1 会提高爆率,等于 1 是正常,大于 1 是降低,检查下是不是被改成了小数。

改完 MonItems 里的 txt 文件,有的引擎不会立即生效。进游戏用 GM 命令 @ReloadMonItems 刷新,不行就直接在 M2 控制台点“重新加载怪物爆率”,还不行就只能重启 M2Server 和 DBServer。注意改文件时别把编码存成 UTF-8 带 BOM,用系统自带的记事本或转成 ANSI 编码,不然引擎读不懂会按默认空值或旧值处理。