深色模式
内置属性、数值计算与 operation
两种 operation
ADD 是固定加法。TOTAL_PERCENT 是对最终基础量的总乘区。对 AMOUNT 属性:
text
聚合值 = (基础值 + Σ ADD) × (1 + Σ TOTAL_PERCENT)例:基础生命 100,装备 ADD 50,Buff TOTAL_PERCENT 0.20:
text
(100 + 50) × (1 + 0.20) = 180PERCENT 与 RATING 属性只接受 ADD;它们本身已分别表示小数比例和 rating 点。API 中 0.15 表示 15%,但物品 JSON/Lore 输入写人类百分数 15,解析器会除以 100。
22 项内置属性的消费位置
| 属性 | 计算用途 | 有效值处理 |
|---|---|---|
physical_attack | 物理初始伤害 | ≥0 |
spell_attack | 法术初始伤害 | ≥0 |
true_damage | 真实伤害分量 | ≥0 |
attack_speed_bonus | 攻击间隔 | ≥-0.9 |
physical_defense / spell_defense | 对应减伤 | ≥0 |
两项 *_penetration_rate | 忽略对应防御的比例 | 0~1 |
accuracy_rating / evasion_rating | 闪避概率 | ≥0 |
critical_chance / critical_resistance | 暴击概率差 | 在战斗点夹取 |
critical_damage | 暴击倍率 | ≥1 |
lifesteal_rating | 实际非真实伤害损失后的吸血 | ≥0 |
reflection_rating | 实际非真实伤害损失后的反伤 | ≥0 |
healing_power / received_healing_bonus | 主动治疗乘区 | 结算时保证非负倍率 |
max_health | RPG 最大生命 | ≥1 |
flat_health_regeneration | 每秒固定恢复 | ≥0 |
percent_health_regeneration | 每秒按最大生命恢复 | ≥0 |
movement_speed_bonus | Paper owned modifier | 投影层处理 |
block_strength | 正面主动格挡 | 0~配置上限 |
“有效值夹取”不会改写原来源;查询原始聚合与战斗有效值时要理解两者语义不同。扩展属性不会自动获得以上夹取。
命中与闪避
text
闪避率 = maximumEvasionRate × evasion / (evasion + accuracy)accuracy 与 evasion 同为 0 时实现会走安全边界。最终按 INDEPENDENT 或 PRD 模型抽样。maximum-evasion-percent 是硬上限。
暴击
text
有效暴击率 = clamp(critical_chance - critical_resistance, 0, 1)
暴击后分量 = 暴击前分量 × critical_damage具体哪些分量可暴击由 Combat Plan capability 决定;不要假设真实伤害必然暴击。
伤害分量与防御
计划先产生三个分量:
text
physical = fixedPhysical + physical_attack × physicalMultiplier
spell = fixedSpell + spell_attack × spellMultiplier
true = fixedTrue + true_damage × trueMultiplier物理/法术防御分别应用:
text
有效防御 = defense × (1 - penetration)
减伤后伤害 = damage × reference / (reference + 有效防御)reference 取计划下限和攻击者相应参考属性中的安全值。真实伤害不走防御。主动格挡只在目标正面角内减少物理/法术分量,不减少真实伤害。
攻击速度
text
间隔 = ceil(max(minimumInterval, baseInterval / (1 + attackSpeedBonus)))基础默认 10 tick,最小 2 tick。权威监听器在冷却内拒绝重复计划,不能用客户端高频包绕过。
吸血与反伤
rating 转换为份额:
text
share = rating / (rating + reference)两者基于目标实际损失的物理+法术部分,不基于被上限截断前的理论伤害,也不含真实伤害。反伤受 minimum-remaining-health 保护,默认不会把攻击者反死。
治疗与恢复
主动治疗:
text
实际治疗 = base × max(0, 1 + healing_power + received_healing_bonus)并夹取到缺失生命。周期恢复:
text
本周期恢复 = (flat_regen + max_health × percent_regen) × intervalTicks / 20同样不会超过缺失生命。资源恢复使用资源定义对应的上限、固定/百分比恢复属性;玩家离线时不计算恢复。
默认战斗计划边界
- 基础近战与投射物是内置权威入口;投射物默认真实伤害倍率为 0。
- 只有实体对实体进入权威链;环境伤害继续原版。
- 其他插件若同时取消/重放伤害、额外调用 Bukkit damage 或 Mythic 原生 mechanic,会造成重复或冲突。正确做法是由一个入口生成一个 Plan。
算例
攻击者物攻 200,计划倍率 1;目标物防 100;穿透 25%;reference 100:
text
有效防御 = 100 × (1 - 0.25) = 75
伤害 = 200 × 100 / (100 + 75) ≈ 114.286若正面格挡 30%,物理伤害约为 80;若再触发 1.5 倍暴击,实际阶段顺序以 combat trace 为准。不要靠手算猜第三方扩展插入的阶段。