Skip to content

Attributes

EntityParrot_ edited this page Jun 26, 2020 · 2 revisions

概览

属性(Attributes) 提供了一种控制玩家可以灵活将属性点投入其中以改变其各种基础属性的方式. 每一职业初始都可以拥有若干属性值, 技能也可以改动它, 并且拥有特定 Lore 的物品也可以提供指定的属性值.

启用属性系统

属性默认情况下已被禁用. 若要启用它, 编辑 config.yml 将 "Classes" 配置项下的子配置条目 "attributes-enabled" 更改为 true.

Attributes.yml

这是为属性系统的主配置文件. 您可以彻底地自定义它, 更改哪项属性是可用的或者它的执行逻辑. 可用的配置项有:

  • 属性名
  • 玩家可以投入其中属性点的最高数量
  • 于 GUI 中用于表示该属性的物品徽标
  • 它会影响到的动态技能设置
  • 它会影响到的基础属性

默认属性

活力(Vitality) +1 生命值
精神力(Spirit) +1 法力值上限(Mana) 和 +2.5% 回复速度
智慧(Intelligence) +2.5% 技能伤害
强度(Strength) +2.5% 物理伤害
敏捷(Dexterity) +2.5% 技能范围

属性修改器

属性可以直接修改指定的基础属性. 对应格式如下所示:

<基础属性>: '<计算公式>'

<基础属性> 部分为需要修改的基础属性, 可以为以下任意一种:

护甲(armor) [PREM, 1.9+] MC原生伤害减免
护甲韧性(armor-toughness) [PREM, 1.9+] MC原生次级伤害减免
攻击速度(attack-speed) [PREM, 1.9+] 物品攻击后读条至可再次攻击的时间
冷却时间(cooldown) [PREM] 修改技能的冷却时间
防御(defense-<种类>) [PREM] 减免来自特定伤害来源的伤害值. 详情请查阅 伤害来源 文档 来了解可用的伤害来源类型. 请输入全小写名称, 例如
"defense-block_explosion".
经验值(exp) [PREM] 提升全职业获取到的经验值
生命上限(health) 玩家的生命值上限
饱食度(hunger) [PREM] 增加每格饱食度可以支持的时间. 此属性始终基于 1 的基本值. 例如, 值为 2 的该属性可以使饱食条的持续时间增加一倍.
饱食度生命回复(hunger-heal) [PREM] 增加饱食后的生命恢复
击退抗性(knockback-resist) [PREM, 1.9+] 抗击退的几率, 值为小数 (1.0 为 100% 抗击退)
幸运(luck) [PREM, 1.9+] 掉落表中获得高级材料的几率提升
法力上限(mana) 玩家的法力值上限
法力回复(mana-regen) 玩家的法力值回复速度
移动速度(move-speed) 玩家的移动速度
物理伤害(physical-damage) 物理攻击造成的伤害值 (例如普攻或投掷物)
物理防御(physical-defense) 物理攻击的伤害减免 (普攻或投掷物)
技能伤害(skill-damage) 由技能造成的伤害值
特定技能伤害(skill-damage-<类别>) [PREM] 指定类别的技能造成的伤害值
技能防御(skill-defense) 技能攻击的伤害减免
特定技能防御(skill-defense-<类别>) [PREM] 指定类别的技能攻击伤害减免
____________________________________

动态设置

属性可以修改动态技能的设置值. 它们按照类别来分类 (Mechanic(机制), Target(目标), 或 Condition(条件)) 然后遵循以下格式:

<设置项>-<值名>: '<公式>'

以下示例代表每一属性点将提升 2% 的攻击(Damage):

Damage-value: 'a*0.02+1*v'

该示例表示发射更多的粒子特效:

Particle Projectile-amount: 'a*0.5+v'

您还可以添加条件以影响指定的内容. 该示例表示仅当目标设置项的 Icon Key 被设置为 "example" 时更改属性值:

Damage-value: 'a*0.05+1*v:icon-key=example'

您也可以添加多个公式语句来针对不同的组赋以不同的值. 该示例表示当目标的 Icon Key 被设置为 "example" 时提升 5% 的伤害, 而对于其他组仅提升 2%:

Damage-value: 'a*0.05+1*v:icon-key=example|a*0.02+1*v'

公式

若需要了解公式的详细符号含义, 请参阅该页面:

公式

公式实例

绝对数值

a*<num>+v <num> 为目标属性的变动值.

百分数值

v(a*<num>+1) <num> 是百分数对应的小数值. (例. 0.01 为 1%)

Clone this wiki locally