怪物爆率详细设置
主程序怪物爆率 #CHILD 功能使用说明
============================================================
一、文件位置
============================================================
怪物爆率文件目录:
D:\MirServer\Mir200\Envir\MonItems\
示例:
鸡.txt
稻草人.txt
沃玛教主.txt
怪物名必须和 Monster.DB 中的怪物名称对应。
例如怪物名称是“鸡”,爆率文件就是:
MonItems\鸡.txt
测试理解案例:
D:\MirServer\Mir200\Envir\MonItems\稻草人.txt
1/1 太阳水
1/1 太阳水
1/1 太阳水
1/1 金币 3500
#CHILD 1/1 RANDOM [I0>=0,7,@爆率测试]
(
1/1 万年雪霜
)
D:\MirServer\Mir200\Envir\Market_Def\QFunction-0.txt
[@爆率测试]
#ACT
SENDMSG 6 爆率QF触发成功
GIVE 金币 1000
============================================================
二、普通爆率格式
============================================================
格式:
几率 物品名
几率 物品名 数量
示例:
1/1 鸡肉
1/10 金币 10000
1/50 万年雪霜
说明:
1/1 表示必爆。
1/10 表示 10 分之一概率。
金币后面的数字表示金币数量。
普通爆率功能保持原主程序逻辑不变。
============================================================
三、#CHILD 子爆率基础格式
============================================================
格式:
#CHILD 几率
(
子爆率内容
)
示例:
#CHILD 1/1
(
1/1 万年雪霜
1/2 强效金创药
1/3 强效魔法药
)
说明:
#CHILD 自身先判断一次几率。
进入 #CHILD 后,括号内每一行再按自身几率判断。
不写 RANDOM 时,括号内可以同时爆出多个物品。
============================================================
四、#CHILD RANDOM 随机子爆率
============================================================
格式:
#CHILD 几率 RANDOM
(
子爆率内容
)
示例:
#CHILD 1/1 RANDOM
(
1/1 万年雪霜
1/1 强效金创药
1/1 强效魔法药
)
说明:
加 RANDOM 后,进入子爆率时只随机抽取括号内一项。
抽中的那一项仍然会判断自身几率。
如果想保证进入后必出一件,括号内子项建议全部写 1/1。
错误示例:
#CHILD 1/1 RANDOM
(
1/10 万年雪霜
1/10 强效金创药
)
上面虽然进入了 RANDOM,但抽中的子项仍可能因为 1/10 没中而不爆。
============================================================
五、#CHILD 嵌套写法
============================================================
示例:
#CHILD 1/1 RANDOM
(
1/1 普通物品
#CHILD 1/2 RANDOM
(
1/1 稀有物品A
1/1 稀有物品B
)
)
说明:
当前主程序支持 #CHILD 内继续嵌套 #CHILD。
但不建议嵌套太深,GM维护会变复杂。
建议最多 2 层。
============================================================
六、#CALL 引用公共爆率文件
============================================================
格式:
#CALL [\爆率系统\基础爆率.txt] @药水
公共文件示例:
D:\MirServer\Mir200\Envir\MonItems\爆率系统\基础爆率.txt
内容:
[@药水]
#CHILD 1/1 RANDOM
(
1/1 强效金创药
1/1 强效魔法药
1/1 万年雪霜
)
说明:
#CALL 用于复用公共爆率。
例如多个怪物都要爆药水,可以统一写到公共文件里。
============================================================
七、#CHILD 条件判断
============================================================
格式:
#CHILD 几率 RANDOM [条件]
(
子爆率内容
)
示例:
#CHILD 1/1 RANDOM [N0>=1]
(
1/1 万年雪霜
)
说明:
只有条件成立时,才会进入这个 #CHILD。
条件不成立时,整个 #CHILD 不执行。
============================================================
八、支持的判断符号
============================================================
支持:
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
示例:
[N0=1]
[N0<>1]
[N0>10]
[N0<10]
[N0>=10]
[N0<=10]
============================================================
九、多条件 AND 写法
============================================================
格式:
[条件1;条件2;条件3]
示例:
#CHILD 1/1 RANDOM [N0>=1;D0<5;G10>=100]
(
1/1 条件奖励
)
说明:
默认是 AND 关系。
所有条件都成立,才会执行。
============================================================
十、多条件 OR 写法
============================================================
格式:
[条件1;条件2;条件3|OR]
示例:
#CHILD 1/1 RANDOM [N0>=1;D0<5;G10>=100|OR]
(
1/1 OR条件奖励
)
说明:
加 |OR 后,只要任意一个条件成立,就会执行。
|OR 写在条件组最后。
============================================================
十一、支持的变量范围
============================================================
当前主程序已支持:
P0 - P9 NPC临时私人变量
D0 - D9 NPC动态变量
M0 - M99 私人变量
N0 - N99 可保存私人数字变量
I0 - I99 全局动态数字变量
G0 - G499 全局数字变量
示例:
[N0>=1]
[M10=100]
[I0>0]
[G100>=10]
[N0<D0]
说明:
左边和右边都可以是变量。
例如 [N0<D0] 表示 N0 小于 D0 时成立。
右边也可以是固定数字,例如 [N0>=100]。
============================================================
十二、继承参数
============================================================
格式:
[条件,继承参数]
示例:
#CHILD 1/1 RANDOM [N0>=1,7]
(
1/1 继承变量奖励
)
继承参数说明:
0 = 不继承主人变量
1 = 英雄继承主人变量
2 = 宝宝/人形怪继承主人变量
4 = 宠物继承主人变量
3 = 1+2,英雄 + 宝宝/人形怪
5 = 1+4,英雄 + 宠物
6 = 2+4,宝宝/人形怪 + 宠物
7 = 1+2+4,全部继承
说明:
如果怪物是玩家本人击杀,直接判断玩家变量。
如果怪物是英雄、宝宝、人形怪、宠物击杀,则根据继承参数决定是否判断主人变量。
建议:
常规版本直接使用 7,最省心。
============================================================
十三、QFunction 触发脚本
============================================================
格式:
[条件,继承参数,@触发标签]
示例:
#CHILD 1/1 RANDOM [N0>=1,7,@测试爆率触发]
(
1/1 万年雪霜
)
QFunction-0.txt 中写:
[@测试爆率触发]
#ACT
SENDMSG 6 爆率触发成功
说明:
当 #CHILD 条件成立,并且 #CHILD 自身几率命中后,会触发 QFunction 标签。
如果标签没写 @,主程序会自动补 @。
执行顺序:
1. 判断条件
2. 判断 #CHILD 几率
3. 触发 QFunction 标签
4. 执行括号内子爆率
注意:
条件不成立,不触发。
#CHILD 几率没中,不触发。
只有进入该 #CHILD 后才触发。
============================================================
十四、BURSTRATE 兼容说明
============================================================
格式示例:
#CHILD 1/1 BURSTRATE RANDOM
(
1/1 万年雪霜
)
当前主程序对 BURSTRATE 已做兼容解析,不会报错。
但当前主程序没有完整接入 LFM2 那套“人物爆率倍率影响/不影响”的倍率链。
所以 BURSTRATE 目前主要是兼容标记。
建议:
普通 GM 配置可以先不写 BURSTRATE。
如果从其它版本移植爆率文件,保留 BURSTRATE 不会影响加载。
============================================================
十五、完整示例一:基础随机药水
============================================================
1/1 鸡肉
#CHILD 1/1 RANDOM
(
1/1 强效金创药
1/1 强效魔法药
1/1 万年雪霜
)
效果:
必爆鸡肉。
然后随机爆一个药水类物品。
============================================================
十六、完整示例二:条件爆率
============================================================
#CHILD 1/1 RANDOM [N0>=1,7]
(
1/1 万年雪霜
1/1 强效金创药
)
效果:
玩家 N0 >= 1 时,随机爆一个奖励。
英雄、宝宝、宠物击杀时,使用主人变量判断。
============================================================
十七、完整示例三:OR 条件 + 触发 QFunction
============================================================
#CHILD 1/1 RANDOM [N0>=10;G1>=100|OR,7,@爆率提示]
(
1/1 高级奖励
)
QFunction-0.txt:
[@爆率提示]
#ACT
SENDMSG 6 你触发了高级爆率奖励!
效果:
N0>=10 或 G1>=100 任意一个成立,就进入爆率。
进入后触发聊天提示。
============================================================
十八、当前不支持或不建议使用的内容
============================================================
1. U/J 变量暂未支持。
原因:当前主程序源码中没有确认到稳定对应数组,强行支持容易误判。
2. 普通掉落行后面直接写条件暂未支持。
例如下面这种不建议写:
1/1 万年雪霜 [N0>=1]
正确写法:
#CHILD 1/1 [N0>=1]
(
1/1 万年雪霜
)
3. @触发脚本复杂传参暂未扩展。
当前只支持触发 QFunction 标签。
4. BURSTRATE 真实倍率隔离暂未完整实现。
当前只做兼容解析。
============================================================
十九、GM 推荐写法
============================================================
普通怪物:
1/10 金币 10000
1/20 药水
随机奖励:
#CHILD 1/1 RANDOM
(
1/1 奖励A
1/1 奖励B
1/1 奖励C
)
条件奖励:
#CHILD 1/1 RANDOM [N0>=1,7]
(
1/1 条件奖励A
1/1 条件奖励B
)
带提示奖励:
#CHILD 1/1 RANDOM [N0>=1,7,@爆率提示]
(
1/1 条件奖励A
)
QFunction-0.txt:
[@爆率提示]
#ACT
SENDMSG 6 触发条件爆率奖励!
============================================================
二十、排错说明
============================================================
1. 怪物不爆任何东西
检查:
- MonItems 文件名是否和怪物名称一致。
- 文件是否放在正确目录。
- 几率是否写错。
- #CHILD 是否有左括号和右括号。
2. RANDOM 进入后没爆
检查:
- RANDOM 子项是否全部写 1/1。
- 如果子项写 1/10,抽中后仍可能不爆。
3. 条件奖励不爆
检查:
- 条件变量是否真的有值。
- 判断符号是否写正确。
- 多条件是否误用了 AND。
- 需要 OR 时是否写了 |OR。
4. QFunction 没提示
检查:
- QFunction-0.txt 是否有对应标签。
- 标签名是否一致。
- M2 是否重新加载了 QFunction。
- M2 日志是否提示:MonItems #CHILD trigger label not found
5. 英雄/宝宝击杀条件不生效
检查:
- 是否写了继承参数。
- 建议使用 ,7。
============================================================
二十一、最终建议
============================================================
稳定通用模板:
#CHILD 1/1 RANDOM [N0>=1,7,@爆率提示]
(
1/1 万年雪霜
1/1 强效金创药
1/1 强效魔法药
)
这个模板具备:
- 条件判断
- 英雄/宝宝/宠物继承主人变量
- 随机奖励
- QFunction 提示
- 当前主程序稳定支持