成长系统
EMC 自定义武器内置武器成长系统,武器通过战斗获得经验并升级,升级后 8 项属性自动成长。
核心机制
- 经验获取 — 击杀怪物和命中目标获得经验
- 升级判定 — 经验达到当前等级所需值时自动升级(可连续升级)
- 属性成长 — 每升一级,武器各属性按配置值增长
- 等级上限 — 每把武器有独立的最大等级(
max-level)
经验来源
击杀经验
击杀怪物获得经验,计算公式:
实际经验 = 默认经验 × 怪物倍率
在 config.yml 中配置:
growth:
kill-exp:
enabled: true
default: 10 # 默认击杀经验
mob-multiplier:
ENDER_DRAGON: 100.0 # 末影龙 = 10 × 100 = 1000 经验
WITHER: 80.0 # 凋灵 = 10 × 80 = 800 经验
WARDEN: 50.0 # 监守者 = 10 × 50 = 500 经验
ZOMBIE: 1.0 # 僵尸 = 10 × 1 = 10 经验
SKELETON: 1.2 # 骷髅 = 10 × 1.2 = 12 经验
命中经验
每次命中目标获得少量经验:
growth:
hit-exp:
enabled: true
default: 1 # 每次命中 1 经验
升级经验公式
每把武器可配置独立的经验公式,level 为当前等级变量:
growth:
exp-formula: "100 * level ^ 1.5"
各等级所需经验示例(公式 100 * level ^ 1.5):
| 等级 | 升级所需经验 | 累计经验 |
|---|---|---|
| 1 | 100 | 100 |
| 5 | 1,118 | 3,482 |
| 10 | 3,162 | 13,651 |
| 20 | 8,944 | 55,194 |
| 30 | 16,432 | 129,437 |
| 50 | 35,355 | 368,781 |
属性成长
每升一级,武器属性增加 per-level 配置的值:
growth:
per-level:
base-damage: 0.5 # 每级 +0.5 伤害
crit-chance: 0.002 # 每级 +0.2% 暴击率
crit-multiplier: 0.01 # 每级 +0.01 暴击倍率
attack-range: 0.02 # 每级 +0.02 攻击范围
armor-penetration: 0.1 # 每级 +0.1 穿甲
knockback: 0.005 # 每级 +0.005 击退
lifesteal: 0.002 # 每级 +0.2% 吸血
attack-speed: 0.005 # 每级 +0.005 攻速
属性计算
实际属性 = 基础属性 + 每级成长 × 当前等级
示例(屠龙刀,基础伤害 12.0,每级 +0.5):
| 等级 | 攻击力 |
|---|---|
| Lv.0 | 12.0 |
| Lv.10 | 17.0 |
| Lv.25 | 24.5 |
| Lv.50 | 37.0 |
升级消息
升级时向持有者发送消息:
growth:
levelup-message: "&a你的武器 &e{weapon_name} &a升级到了 &6Lv.{level}&a!"
broadcast-levelup: false # 设为 true 则全服广播
数据存储
武器的等级和经验通过 NBT/PDC 存储在物品本身上:
emcweapon_id— 武器 IDemcweapon_level— 当前等级emcweapon_exp— 当前经验
这意味着:
- 武器可以安全地放入箱子、交易、邮寄,数据不会丢失
- 不依赖外部数据库
- 跨版本兼容(1.14+ 使用 PersistentDataContainer,低版本使用 NBT)
查看武器成长状态
使用命令查看手持武器的成长信息:
/emcweapon info
输出示例:
────────────────────────────
屠龙刀 (ID: dragon_slayer)
攻击源: 斩击
攻击力: 17.0
等级: Lv.10/50
经验: 1523/3162
────────────────────────────
设计建议
- 前期武器:
max-level: 20~30,低成长系数,易满级 - 中期武器:
max-level: 30~50,中等成长,需要一定时间 - 终极武器:
max-level: 50~100,高成长系数,长期培养目标 - 经验公式:指数越高(如
^ 2),后期升级越慢;推荐^ 1.3 ~ 1.6