- ◆ 游戏版本
- 1.12.2
- ◆ 服务端核心
- CatServer
- ◆ 模组加载器
- Forge
代码:
# ============================================================
# PokeBattleRoyale 宝可梦大逃杀插件
# 适用: CatServer 1.12.2 + Pixelmon 8.x
# ============================================================
meta:
plugin: PokeBattleRoyale
version: 1.0.0
java: 8 (major version 52)
server: CatServer 1.12.2
dependency: Pixelmon 8.x (1.12.2)
jar: PokeBattleRoyale-1.0.0.jar
# ------------------------------------------------------------
# 一、已实现功能
# ------------------------------------------------------------
features:
- name: 缩圈系统
desc: 多阶段缩圈 (半径/静止时间/收缩耗时/圈外伤害均可配置)
detail:
- BossBar 倒计时
- 全服公告
- 标题提醒
- 圈边缘火焰粒子
- 世界边界物理限制
- 圈外持续掉血
- name: 击败掠夺
desc: 击败对方全部宝可梦 (PVP 战斗胜利)
effect:
- 直接把败者背包/装备全部收入自己背包
- 装不下的掉在脚边
- 败者被淘汰变旁观者
- name: 专属世界
desc: 配置文件指定大逃杀专属世界
effect:
- 参赛者开局随机散落圈内
- 淘汰者传送回出生点
- name: 物资刷新
desc: 管理员准星对准箱子执行 /br chest set <等级> 注册物资箱
effect:
- 定时按等级战利品表重刷内容
- name: 完全随机
desc: 四层随机叠加, 每次刷新结果完全不同
layers:
- 1. 空投等级权重随机
- 2. 物品概率过筛 (chance%)
- 3. 物品权重抽取
- 4. 数量区间随机
extra: 另加随机坐标投放空投箱
# ------------------------------------------------------------
# 二、快速上手 (管理员)
# ------------------------------------------------------------
quick_start:
- step: 1
action: 进入大逃杀世界
- step: 2
action: 站在圈中心执行, 设置缩圈圆心
commands:
- cmd: /br center <半径>
note: 站在圈中心执行, 设置缩圈圆心
- cmd: /br radius 300
note: 设置初始半径
- step: 3
action: 放几个箱子, 准星对准箱子执行
commands:
- cmd: /br chest set rare
note: 注册为"稀有"级物资箱
- cmd: /br loot list
note: 查看默认 4 级战利品表 (common/rare/epic/legendary)
- step: 4
action: 玩家 /br join 报名 -> 管理员 /br start 开赛
# ------------------------------------------------------------
# 三、命令列表
# ------------------------------------------------------------
commands:
- cmd: /br join
permission: pokebr.join
desc: 报名参赛
- cmd: /br leave
permission: pokebr.join
desc: 退出比赛
- cmd: /br status
permission: 所有人
desc: 查看战况/存活/击杀
- cmd: /br start
permission: pokebr.admin
desc: 开始倒计时并散落参赛者
- cmd: /br stop
permission: pokebr.admin
desc: 强制结束
- cmd: /br center
permission: pokebr.admin
desc: 脚下设置缩圈圆心
- cmd: /br radius <数值>
permission: pokebr.admin
desc: 设置初始半径
- cmd: /br chest set <等级>
permission: pokebr.admin
desc: 准星对准箱子注册物资箱
- cmd: /br chest list / clear
permission: pokebr.admin
desc: 查看/清空注册物资箱
- cmd: /br loot add <等级> <物品[:数据值]> <min-max> <权重> [概率%]
permission: pokebr.admin
desc: 添加战利品
- cmd: /br loot remove <等级> <序号>
permission: pokebr.admin
desc: 删除战利品
- cmd: /br loot list
permission: pokebr.admin
desc: 查看战利品表
- cmd: /br reload
permission: pokebr.admin
desc: 重载配置
# ------------------------------------------------------------
# 四、战利品配置格式
# ------------------------------------------------------------
loot_config:
example:
loot-tiers:
common: # 等级ID
min-items: 3 # 每箱最少物品数
max-items: 5 # 每箱最多物品数
weight: 50 # 随机空投选中该等级的权重
items: # "物品[:数据值]:数量min-max:权重:概率%"
- "BREAD:1-3:30:100" # 面包 1~3 个, 权重30, 100%参与
- "GOLDEN_APPLE:1-2:8:70" # 金苹果 1~2 个, 权重8, 70%概率参与
randomness:
title: 随机性说明 (四层叠加)
rules:
- 随机空投箱生成时, 按 weight 抽取等级 (legendary 5% / epic 15% / rare 30% / common 50%)
- 每件物品先掷 概率% 骰子, 没过筛的物品本轮不参与
- 过筛物品按 权重 抽取
- 数量在 min-max 区间均匀随机
- 空投坐标在当前缩圈半径内按极坐标均匀随机分布
# ------------------------------------------------------------
# 五、缩圈配置格式
# ------------------------------------------------------------
zone_config:
example:
zone:
phases: # "目标半径,静止秒,收缩秒,该阶段圈外伤害"
- "250, 180, 60, 1.0" # 静止180秒 -> 60秒内缩到250
- "180, 150, 45, 1.5"
- "10, 30, 15, 6.0" # 最终毒圈
announce-at: [120, 60, 30, 15, 10, 5, 3, 1] # 剩余N秒时公告
tips: 缩圈提示由以下 5 部分组成
tip_list:
- 全服聊天公告 (每档倒计时)
- BossBar 实时显示剩余秒数与目标半径
- 开始收缩时屏幕大标题
- 圈外玩家每秒警告
- 火焰粒子圈边界
# ------------------------------------------------------------
# 六、击败判定原理
# ------------------------------------------------------------
battle_judgement:
desc: Pixelmon 对战正常结束时, 一方所有宝可梦陷入濒死
flow:
- 事件: BattleEndEvent.results
- 败者: DEFEAT
- 胜者: VICTORY
- 插件切回主线程执行: 败者背包+装备 -> 胜者背包 (溢出落地) -> 败者淘汰
# ------------------------------------------------------------
# 七、常见问题
# ------------------------------------------------------------
faq:
- q: 击杀判定会不会误伤野外/竞技场战斗?
a: 只处理双方都是参赛者的对战, 其他战斗不受影响.
- q: 中途退出怎么办?
a: 退出即淘汰 (QUIT), 重连后为旁观者.
- q: 玩家被毒圈毒死算谁击杀?
a: 记为"毒圈"淘汰, 不产生物品转移.
- q: 能否投降?
a: "对手投降 (FORFEIT) 默认不掠夺, battle.loot-on-forfeit: true 可开启."