击杀指定怪物必掉指定物品 · 概率阶梯提升 · 全局掉落 · 每玩家独立计数
Paper 1.20.1 | MythicMobs / NeigeItems / PlaceholderAPI 软依赖
Paper 1.20.1 | MythicMobs / NeigeItems / PlaceholderAPI 软依赖
PityDrop 是一款为 RPG 服务器设计的掉落保底 + 阶梯概率插件。
你是否遇到过这些问题?
- 玩家刷了几百只怪都不掉材料,心态爆炸
- 掉落概率写死,无法给肝帝「越刷越容易出」的体验
- 每个物品的掉落规则要写一大堆 MythicMobs 技能,维护困难
- 想看玩家刷怪进度,却没有任何数据可查
PityDrop 一次性解决:精确/随机保底、概率阶梯提升、掉落后重置、全局掉落、PAPI 变量、TrMenu 查询菜单,全部 YAML 配置,无需写任何代码。
击杀保底:指定怪物击杀 N 只必掉指定物品- 精确模式:300 只必掉
- 随机模式:250~350 只之间随机一个数,达到必掉
概率阶梯:基础 1% → 击杀 100 只后 5% → 200 只后 10%,级数不限
掉落后重置:物品掉落成功后,该物品计数清零、概率回基础值、随机保底重新 roll
每玩家独立计数:互不影响,杜绝抢怪纠纷
全局掉落:type: GLOBAL 击杀所有怪物统一计数,也可只统计 MythicMobs 或原版实体
条件限制:世界白名单(worlds)+ 权限要求(permission)
概率倍率联动:bonusChance / chanceMultiplier 支持 PAPI 占位符,可与副本/罗盘掉落倍率联动
发放失败保护:NeigeItems 物品发放失败时自动回滚本次计数,玩家不会白刷
三种物品来源:NeigeItems 物品 / MythicMobs 物品 / 原版物品
PlaceholderAPI 变量:击杀数 / 当前概率 / 保底阈值 / 距保底剩余
TrMenu 进度查询菜单:附带开箱即用的菜单文件
配置热重载:/pitydrop reload 立即生效,玩家进度保留
配置容错:config.yml 写错不会崩服,保留上一次成功配置并提示错误位置
| 累计击杀数 | 掉落概率 |
| 0 ~ 99 | 1%(基础概率) |
| 100 ~ 199 | 5%(第一阶梯) |
| 200 ~ 299 | 10%(第二阶梯) |
| 达到随机保底(如 300~500 中的某个数) | 100% 必掉 |
掉落成功后:计数归零、概率回到 1%、重新随机保底数。
只有玩家击杀才计数(环境伤害、怪物内斗不计)。
- 将 PityDrop-1.0.0.jar 放入服务器 plugins/ 文件夹
- 重启服务器(或使用 PlugMan 等热加载插件)
- 首次启动自动生成 plugins/PityDrop/config.yml
- 编辑配置后执行 /pitydrop reload 即时生效
前置要求:
| 插件 | 必需性 | 说明 |
| Paper 1.20.1 | 必需 | 服务端核心 |
| MythicMobs | 软依赖 | 用于 MythicMobs 怪物识别 |
| NeigeItems | 软依赖 | 用于发放 NeigeItems 物品 |
| PlaceholderAPI | 软依赖 | 用于 PAPI 变量与倍率解析 |
配置文件:plugins/PityDrop/config.yml
代码:
debug: false
save-interval-seconds: 30 # 玩家进度写回 players.yml 的间隔(秒)
rules:
# ---- 精确怪物规则 ----
- mob: "幽暗战士" # MythicMobs 内部 ID
type: MYTHIC # MYTHIC / VANILLA / GLOBAL
display: "&e幽暗战士" # 掉落提示消息里 {mob} 的显示名
# worlds: ["world"] # 可选:只在 world 世界计数
# permission: "xxx" # 可选:需要权限才计数
items:
- key: "sword" # 条目唯一 key(同一怪物内不重复)
type: NEIGEITEMS # NEIGEITEMS / MYTHICITEMS / VANILLA
id: "4c武器" # 物品 ID(VANILLA 填材质名,如 DIAMOND)
amount: 1
baseChance: 1.0 # 基础概率 %(1.0 = 1%)
steps: # 阶梯概率:击杀数达到 kills 后使用对应 chance
- kills: 100
chance: 5.0
- kills: 200
chance: 10.0
# bonusChance: '%chemdah_profile_data_掉落倍率%' # 额外概率加成(支持 PAPI)
# chanceMultiplier: 1.5 # 概率乘数(支持 PAPI)
guarantee:
mode: RANDOM # RANDOM = 随机保底;EXACT = 精确保底
min: 300
max: 500
# EXACT 模式写法:
# mode: EXACT
# value: 300
message: "&a保底触发!你累计击杀 &e{mob} &a{kills} 只,获得了 &e{item}"
# ---- 全局规则:击杀所有怪物(MM + 原版)都计数 ----
- mob: "*"
type: GLOBAL
display: "&6全部怪物"
items:
- key: "global_token"
type: NEIGEITEMS
id: "保底令牌"
amount: 1
baseChance: 0.5
steps:
- kills: 100
chance: 2.0
guarantee:
mode: RANDOM
min: 200
max: 400
全局掉落三种写法:
| 配置 | 效果 |
| type: GLOBAL + mob: "*" | 击杀所有怪物(MM + 原版)统一计数 |
| type: MYTHIC + mob: "*" | 击杀所有 MythicMobs 怪物统一计数 |
| type: VANILLA + mob: "*" | 击杀所有原版实体统一计数 |
精确规则与全局规则可同时存在、各自独立计数。
代码:
最终概率 = (当前阶梯概率 + bonusChance) × chanceMultiplier
bonusChance 与 chanceMultiplier 支持:
- 纯数字:bonusChance: 5、chanceMultiplier: 1.5
- PAPI 占位符:bonusChance: '%chemdah_profile_data_掉落倍率%'
| 命令 | 说明 | 权限 |
| /pitydrop stats | 查看自己的掉落进度 | 所有人 |
| /pitydrop stats <玩家> [怪物ID] | 查看他人进度 | pitydrop.admin |
| /pitydrop list | 列出所有掉落规则 | pitydrop.admin |
| /pitydrop reset <玩家> [怪物ID] [itemKey] | 重置进度 | pitydrop.admin |
| /pitydrop reload | 重载配置(玩家进度保留) | pitydrop.admin |
别名:/pd、/pity
| 变量 | 含义 |
| %pitydrop_kills_<mob>_<itemKey>% | 累计击杀数 |
| %pitydrop_chance_<mob>_<itemKey>% | 当前掉落概率 |
| %pitydrop_guarantee_<mob>_<itemKey>% | 当前保底阈值 |
| %pitydrop_remain_<mob>_<itemKey>% | 距保底还差多少 |
<mob> 填规则存储 ID:精确规则填怪物 ID,全局规则填 *。
示例:
代码:
%pitydrop_kills_幽暗战士_sword%
%pitydrop_remain_*_global_token%
- MythicMobs 怪物 ID 填内部 ID(InternalName),即 plugins/MythicMobs/mobs/*.yml 中每个怪物的名字
- 原版实体 type: VANILLA 时 mob 填实体类型名,如 ZOMBIE
- 建议保底值大于最高阶梯的 kills,否则更高概率段无意义(插件会打印警告)
- NEIGEITEMS 物品发放失败时自动回滚计数并告警;MythicMobs 物品暂无法确认发放结果
- YAML 只认空格缩进,请勿使用 Tab
v1.0.0
- 击杀保底(精确 / 随机区间)
- 概率阶梯提升 + 掉落后重置
- 全局掉落(GLOBAL / MYTHIC * / VANILLA *)
- 世界白名单、权限要求、PAPI 概率倍率
- NeigeItems 发放失败回滚保护
- PlaceholderAPI 变量 + TrMenu 进度查询菜单
- 配置热重载与容错
见本帖附件。
- QQ:2438072809(加好友请备注:PityDrop 插件)