跳到主要内容

EMC 玩家属性

EMC 玩家属性(EMCPlayerAttr)是 EMC RPG 生态的属性中枢插件,提供 80+ 玩家属性6 种伤害类型属性提供者接口伤害处理链,统一管理来自武器、饰品、技能等各系统的属性加成与伤害计算。

核心特性

  • 80+ 属性定义 — 涵盖基础三维、一级六维、攻击、防御、移动、技能、采集、元素、PVP/PVE 等 12 大类
  • 一级属性系统 — 力量、敏捷、智力、耐力、精神、感知 6 项基础六维
  • 物理/魔法双体系 — 分离物理攻击/防御与魔法攻击/防御,独立穿透计算
  • 10 种元素伤害 — 火焰、冰霜、雷电、毒素、虚空、神圣、暗影、风、土、水
  • 10 种元素抗性 — 对应每种元素的独立抗性
  • 6 种伤害类型 — 物理、魔法、真实、纯粹、环境、自定义
  • 属性提供者接口 — 任何系统(武器、饰品、技能、Buff)可注册属性提供者
  • 伤害处理链 — 多个处理器按优先级链式处理伤害计算
  • 3 种自定义事件 — 属性变更、属性重算、自定义伤害事件
  • Bukkit 属性同步 — 自动将计算结果同步到 Bukkit 原生属性(移速、最大血量等)
  • 武器/饰品桥接 — 内置 EMC 自定义武器和 EMC 自定义饰品的属性桥接

环境要求

项目要求
服务端Paper/Spigot 1.8+
JavaJava 8+
必需依赖
推荐依赖EMC 物品库、EMC 自定义武器、EMC 自定义饰品

安装步骤

  1. EMC玩家属性.jar 放入 plugins/ 目录
  2. (推荐)同时安装 EMC 物品库、自定义武器、自定义饰品
  3. 启动服务器,插件初始化属性管理器和伤害管理器
  4. 其他 RPG 生态插件在启动时自动注册属性提供者和伤害处理器

架构概览

EMCPlayerAttr
├── 属性管理器 (AttributeManagerImpl) — 属性计算与缓存
│ ├── 属性提供者注册 (IAttributeProvider)
│ ├── 属性修改器 (AttributeModifier)
│ └── 玩家属性数据 (PlayerAttributeDataImpl)
├── 伤害管理器 (DamageManagerImpl) — 伤害计算流程
│ ├── 伤害处理器链 (IDamageHandler)
│ ├── 伤害上下文 (DamageContext)
│ └── 伤害类型 (DamageType)
├── 桥接层 (bridge)
│ ├── WeaponAttributeProvider — 从武器读取属性
│ ├── WeaponDamageHandler — 武器伤害计算
│ ├── AccessoryAttributeProvider — 从饰品读取属性
│ └── AccessoryDamageHandler — 饰品伤害处理
├── 事件系统 (event)
│ ├── CustomDamageEvent — 自定义伤害事件
│ ├── PlayerAttributeChangeEvent — 属性变更事件
│ └── PlayerAttributeRecalculateEvent — 属性重算事件
├── 属性同步监听器 (AttributeSyncListener) — 同步到 Bukkit 原生属性
├── 玩家监听器 (PlayerListener) — 登入/登出数据管理
└── 公开 API (EMCPlayerAttrAPI) — 供生态插件调用

插件在生态中的位置

             EMC 物品库

EMC 自定义武器 ──→ EMC 玩家属性 ←── EMC 自定义饰品

其他 RPG 插件

EMC 玩家属性作为属性中枢,接收来自各系统的属性修改,统一计算最终值并同步到 Bukkit。