Mirserver
MonItems
怪物掉落配置目录,用于按怪物维护普通掉落、可挖物品和相关掉落内容。
目录作用
MonItems 是 Mir200\Envir 下的怪物掉落配置目录。
分组爆率编辑器:https://mon.bluem2.cn
文件命名
- 默认使用怪物名称作为爆率文件名。
- 怪物名称中如果带有
\,爆率文件名要改成用-连接。
例如,数据库怪物名为 魔龙教主\终极 时,对应爆率文件应写成 魔龙教主-终极.txt。
基础条目格式
语法
1/概率分母 物品名 数量
参数说明
| 字段 | 说明 |
|---|---|
1/概率分母 | 掉落概率。1/5 表示本条目有五分之一概率成立。 |
物品名 | 掉落物品名称。 |
数量 | 掉落数量。 |
结算规则
- 每一行掉落条目单独结算。
- 条目成立后,掉出该行指定的物品和数量。
- 多行同时存在时,各行是否生效互不影响。
示例
1/5 金币 200
1/2 强效魔法药 1
1/5 强效太阳水 1
条件条目格式
语法
1/概率分母 物品名 数量 变量 检测符 检测值 变化值 [扣减时机]
参数说明
| 字段 | 说明 |
|---|---|
1/概率分母 | 基础掉落概率。 |
物品名 | 掉落物品名称。 |
数量 | 掉落数量。 |
变量 | 用于条件判断的变量。 |
检测符 | 变量与检测值的比较方式。 |
检测值 | 参与比较的目标值。 |
变化值 | 条件满足后执行的变量增减值。 |
[扣减时机] | 可选。控制变量变化是在爆出时生效,还是未爆出也生效。 |
检测符说明
| 检测符 | 说明 |
|---|---|
> | 大于指定值时成立。 |
< | 小于指定值时成立。 |
= | 等于指定值时成立。 |
? | 大于或等于指定值时成立。 |
! | 小于或等于指定值时成立。 |
^ | 以指定内容开头时成立。 |
` | 以指定内容结尾时成立。 |
结算规则
- 先判断变量条件是否成立。
- 条件成立后,再继续处理本条目的掉落概率。
- 条目爆出后,可按设置增减对应变量。
示例
1/3 强效太阳水 1 $GAMEGOLD ? 100 -100
1/8 某区物品 1 $SERVERNAME = XX传奇1区
1/8 某物品 1 $USERID ^ head
同行权重掉落
语法
1/概率分母 物品1|权重1,物品2|权重2,物品3|权重3 数量
参数说明
| 字段 | 说明 |
|---|---|
1/概率分母 | 本条目的进入概率。 |
物品|权重 | 同一条目中的候选物品及其权重。 |
数量 | 实际掉落数量。通常写 1。 |
结算规则
- 先判断本条目的进入概率。
- 条目成立后,只会从当前条目列出的物品中随机产出一件。
- 权重只在当前条目内部比较,数值越大,被选中的占比越高。
示例
1/5 屠龙|10,开天|5 1
强制权重模式
语法
1/99999998 物品名1|权重1,物品名2|权重2,物品名3|权重3 1 $GAMEGOLD ? 1 -1
参数说明
| 字段 | 说明 |
|---|---|
1/99999998 | 表示使用强制权重模式。 |
物品|权重 | 当前奖励池内的候选物品及其权重。 |
数量 | 实际掉落数量。通常写 1。 |
变量 检测符 检测值 变化值 | 可选的条件判断与变量增减部分。 |
结算规则
- 这类条目进入后,必定只产出一件物品。
- 产出结果完全按当前条目中的权重决定。
- 权重应使用非
0数值。 - 不适合用于金币这类直接数值掉落。
随机进入权重模式
语法
1/3 物品名1|权重1,物品名2|权重2,物品名3|权重3
参数说明
| 字段 | 说明 |
|---|---|
1/3 | 当前权重池的进入概率。 |
物品|权重 | 当前条目中的候选物品及其权重。 |
结算规则
- 先判断本条目是否进入结算。
- 条目成立后,再从当前权重池中随机选出一件物品。
- 权重只在当前条目内部生效。
随机必出组
语法
;GETITEMFLAG(3)
1/5 金币 200
1/2 强效魔法药 1
1/99999999 上古神甲 1
1/99999999 上古宝甲 1
1/99999999 上古披风 1
1/99999999 上古羽衣 1
1/99999999 上古道袍 1
1/99999999 上古长袍 1
参数说明
| 字段 | 说明 |
|---|---|
;GETITEMFLAG(3) | 表示从随机必出组中抽取 3 件物品。 |
1/99999999 | 表示该条目参与随机必出组。 |
其他普通条目 | 仍按各自原有规则单独结算。 |
结算规则
- 文件中的普通掉落条目仍按各自行处理。
- 标记为
1/99999999的条目可参与随机必出组。 GETITEMFLAG(3)会从这组候选中随机取出指定数量的物品。
拆分文件与 #CALL
当一只怪物的掉落很多时,可以拆到多个子文件,再从主文件调用:
#CALL [MonDropItems\药品爆率.txt]
#CALL [MonDropItems\衣服爆率.txt]
- 把药品、装备、材料分开维护。
- 多只怪物共用同一组掉落模板。
- 降低单文件过长带来的排查成本。
用 #CALL 控制掉落条件与结果
如果某条掉落需要先跑脚本判断,再决定是否允许掉出,可以在条目中挂 #CALL:
这里触发的检测标签和结果标签,写在 QMapEvent-0.txt 中。
1/1 金条|22,祝福油|33,力量戒指|44,麻痹戒指|55,复活戒指|66 1 #CALL @爆出条件检测 @爆出物品执行
[@爆出条件检测]
#IF
CheckGameGold < 10
#ACT
Approve 0
[@爆出物品执行]
#ACT
GameGold - 10
- 先进入检测标签。
- 如果检测阶段执行
Approve 0,当前条目不再继续结算;Approve 1则允许继续。 - 如果检测通过,再继续判断这一行本身的掉落概率。
- 只有本行真正爆出物品后,结果标签才会执行。
结果标签里可直接读取本次掉落上下文:
<$PARAM(1)>:物品名<$PARAM(2)>:Looks<$PARAM(3)>:怪物名<$PARAM(4)>:地图名<$PARAM(5)>:X 坐标<$PARAM(6)>:Y 坐标
排查顺序
爆率写法已经正确,但实际结果不符合预期时,建议按下面顺序检查:
- 先确认爆率文件编码是否为
ANSI。 - 再确认怪物名和爆率文件名是否一一对应,带换行的怪物名是否已改成
-文件名。 - 再检查是否叠加了其他限爆脚本、引擎限爆或物品掉落限制。
- 如果使用了
#CALL,再检查检测标签是否提前执行了Approve 0。 - 如果使用了个人爆率调整命令,再确认当前个人爆率是否被调低。
测试时,优先使用普通账号和正常击杀流程,避免 GM 权限、秒杀脚本或异常死亡流程干扰结果。
与个人爆率命令的关系
MonItems 决定掉落条目本身的配置;个人爆率命令会继续影响实际结果。
