- 1. 总览
- 2. 解读
- 2.1. 概念
- 2.2. 逐步解释
- 2.3. 套装效果
- 2.4. 武器额外属性
- 2.5. 武士专精
- 2.6. 锻造前缀效果
- 2.7. 红色宝玉和黄色宝玉效果
- 2.8. 创伤系统
- 2.9. 饮食平衡系统
- 2.10. 装备效果
- 2.11. 淬炼宝玉效果
- 2.12. 药水效果
- 2.13. 目标药水效果表
- 2.14. 自身药水效果表
- 2.15. 武器强化加成
- 2.16. 武器星级效果
- 2.17. 灵力系统
- 2.18. 暗噬药水效果
- 2.19. 火锅和药水效果
- 2.20. 刺客专精
- 2.21. 古物系统
- 2.22. 献灵仪式效果
- 2.23. 职业武器加成
- 2.24. 二转技能战斗思想加成
- 2.25. 镀金系统
- 2.26. 特效武器
- 2.27. 攻击类型、武器附魔、职业属性、角色属性
- 2.28. 最大伤害计算
- 3. 其他属性计算
总览
版本
- manametalmod-7.4.2
位置
- project.studio.manametalmod
- event
- EventFx.class
- void combatAttack(LivingHurtEvent event)
源码
点此展开
1 |
|
前言
-解读
概念
- player/rootPlayer : 玩家自身实体
- event.ammount : 伤害 / 物理、魔法攻击力
- event.source : 伤害来源
- ItemStack item = player.func_71045_bC(); : 武器/手持的物品
- event.getEntityLiving : 获取被伤害的生物实体
- event.setCanceled(true); : 设置伤害无效
- field_76373_n : 外来伤害类型
- 1.0E8F : 为1后面8个0,即100000000,F代表浮点类型
- func_110143_aJ() : 当前血量
- func_110138_aP() : 血量上限
- mana.getMagicMax() : 魔力上限
- attack : 造成的伤害
- penetration_base : 穿透
- critDamage : 暴击伤害
- crit : 暴击率
- avoid : 回避率
- defense : 防御力
- final_attack : 最终伤害
- max_attack_base : 最大伤害
- attack_base_physical : 物理攻击力
- attack_base_magic : 魔法攻击力
- mixAttack : 全能攻击力
- hp_blood : 吸血
- xp : 职业经验获取量
- attack_base : 基础攻击力 百科上译为:物理/魔法攻击力
- mana.magicReliefTemp : 魔力减免
- no_tack_damage : 附加伤害 / 基础伤害
- Attack : 伤害倍率
- player.field_70170_p.field_73012_v.nextInt(10) == 0 : 10%概率
- field_70170_p.field_72995_K : 为true时对象是客户端线程上的,反之在服务器线程上
- field_70128_L : 单位是否死亡
- func_70606_j : 设置目标单位当前生命值
- 参考ItemToolOp.class
- Produce : m3生产系统
- addAllPower(AttackEffect data, int type, boolean isAttack) : 全能力提升,分伤害计算和受到伤害减免两部分,由第三参数isAttack区别,套装效果中攻击时伤害计算部分生效,受击时伤害减免部分生效,type取值范围[0, 10]
- player.field_71071_by.func_146026_a(Items.field_151043_k) : 消耗物品(金锭)
- func_70015_d() : setFire() 给予燃烧状态
- func_70027_ad() : isBurning() 处于燃烧状态
- func_70115_ae() : 处于骑乘状态
- func_70690_d(new PotionEffect()) : 为对象添加原版药水效果
- new PotionEffect(Potion.getPotionById(), 100, 0) : 原版药水效果,参数:药水id;持续时间,每20tick为1s,所以100代表5s;层数,如0为一层,2为三层。
- field_70122_E() : onGround() 处于落地状态
- func_70090_H : isInWater() 处于水下状态
- root.carrer.food_data[0] : 饮食平衡系统谷类
- root.carrer.food_data[1] : 饮食平衡系统蛋豆鱼肉类
- root.carrer.food_data[2] : 饮食平衡系统蔬菜类
- root.carrer.food_data[3] : 饮食平衡系统水果类
- func_77942_o() : 检查物品是否有NBT标签
- func_70691_i() : 回复血量(受限于最大血量限制)
- func_70606_j() : 强制设置当前血量(可以超过最大血量)
- func_110143_aJ() : 获取当前的血量数值
逐步解释
- 仅解释含event.ammount的部分:
- 代码自上而下顺序执行,后面可能会覆写前面效果
1 | if (item == null) { |
- 空手时,伤害为 1,后续代码不执行。
1 | if (rootPlayer == null || rootTarget == null) |
- 若玩家单位或攻击单位为空,后续代码不执行。
1 | if (player == event.entityLiving) { |
- 玩家攻击到自己时伤害无效,伤害为 0。
1 | if (item != null && |
- 手持ManaMetalAPI中指定的ItemDamageBlackList里的物品时,伤害为该物品的整数伤害数值。
- ManaMetalAPI.ItemDamageBlackList中的物品包含:
- Items.field_151110_aK : 鸡蛋
- Items.field_151079_bi : 末影珍珠
- Items.field_151126_ay : 雪球
- Decoration.baserock : 石块
- Items.field_151112_aM : 原版鱼竿
依据
1 | // ManaMetalAPI.ItemDamageBlackList |
1 | if (event.entityLiving instanceof IJobAdvEntity) { |
- 若攻击的对象实体含IJobAdvEntity接口,触发玩家职业是否已二转的判断,若不是二转职业,伤害为 1,后续代码不执行。
- 含该接口的对象有:
- 阿斯翠德 (BossAstrid)
- 赤血恶龙 (BossBloodDragon)
- 末日黑龙 (BossDoomsDragon)
- 镜中梦魇 (BossMirror)
- 艾莉西亚 (BossTime)
- 神王禁卫·艾莉西亚 (BossTimeHard)
- 即二转BOSS。
依据
1 | // IJobAdvEntity接口仅含一个方法canPlayerAttackThis |
1 | if (MMM.playerCanUseWeapon(player, rootPlayer) == UseWeaponResult.fail) |
- 若无法使用武器,后续代码不执行。
1 | if (event.source.field_76373_n != null && |
- 伤害来源为荆棘附魔时,荆棘伤害上限为100倍职业等级。
- 双方距离大于4格时,取消伤害,伤害为 0,后续代码不执行。
1 | if (item.func_77973_b() == ManaMetalMod.GodSword) { |
- 若手中武器为创造者之剑:
- 伤害设为1.0E8F。
- 若受击方不是玩家单位,触发addDamageFX()。
- 若受击方是BOSS单位,将玩家添加到“可获取BOSS掉落物”列表中,并计算掉宝率。
- 若受击方含IDungeonBoss接口(地下城怪),再判断是否为BOSS,将玩家添加到“可获取BOSS掉落物”列表中,并计算掉宝率。
- 后续代码不执行。
- 这部分代码有点冗余,判断BOSS单位何不直接调用MMM.isEntityBoss(),估计是迭代过,懒得改原先能跑通的代码。
- addDamageFX()方法:
- 猜测为发送造成伤害通知。
- 伤害为0或有无敌药水效果等情况,会取消伤害。
- 其他情况下发送64格范围全体通知,应用伤害字型时装,产生伤害特效。
- 掉宝率计算方式:
- i = 职业掉宝率+临时掉宝率
- i加上从M3药水效果中得到的临时掉宝率
- 若i大于对方掉宝率,对方掉宝率变为i
- 目前该掉宝率作用未知
依据
1 | // net.minecraft.entity.boss.IBossDisplayData |
1 | event.source.func_151518_m(); |
1 | if (MMM.isTinkersConstruct && TConstructCore.isTCWeapon(item)) |
- 若手中武器为匠魂的武器,伤害 × 12。
1 | if (ManaMetalAPI.ItemAttackBalance.containsKey(item.func_77973_b())) { |
- 若手中武器属于ManaMetalAPI.ItemAttackBalance列表中的物品,伤害加上武器attack属性的值。
ManaMetalAPI.ItemAttackBalance中的物品包含
- Botania
- manaGun
- terraSword
- thunderSword
- crystalBow
- starSword
- elementiumSword
- livingwoodBow
- enderDagger
- thornChakram
- kingKey
- missileRod
- aether
- notch_hammer
- lightning_knife
- phoenix_bow
- dart_shooter
- zanite_sword
- gravitite_sword
- flaming_sword
- lightning_sword
- holy_sword
- valkyrie_lance
- vampire_blade
- aoa
- HauntersStaff
- thaumcraft
- itemSwordElemental
- itemSwordVoid
- itemSwordCrimson
- itemBowBone
- itemWandCasting
- ChocolateQuest
- musket
- revolver
- staffPhysic
- staffMagic
- staffBlast
- staffFire
- staffLight
- ironSwordAndShield
- diamondSwordAndShield
- spiderSpear
- bullAxe
- ironBigsword
- diamondBigsword
- bigSwordBull
- monkingSword
- ironDagger
- diamondDagger
- tricksterDagger
- ninjaDagger
- monkingDagger
- ironSpear
- diamondSpear
- spearGun
- fireSpear
- ImmersiveEngineering
- itemRailgun
- itemRevolver
- itemChemthrower
- Metallurgy
- GameRegistry.findItem(“Metallurgy”, item.toLowerCase() + “.sword”)
- Techguns
- (GenericGun)item
- ThaumBasic
- herobrinesScythe
- revolver
- ThaumicTinkerer
- sword
- sword2
1 | if (MMM.isAether) |
Aether(天境)Mod伤害计算
1 | public static final void doEffectAttack(AttackEffect data, EntityPlayer player) { |
1 | rootPlayer.carrer.lastAttackTarget = event.entityLiving; |
- 记录玩家最后攻击的对象
- magicReliefTemp值归零,暂不明确用途
1 | if (rootPlayer.carrer.isTransfer2()) |
- 若玩家已二转,将最大伤害设为M3配置文件中的GlobalMaxDamage2
1 | if (event.source instanceof EntityDamageSourceElement) { |
- 若伤害类型是一种EntityDamageSourceElement,获取其type等属性。
- 参考
套装效果
1 | ArmorEffect.doEffectAttackKit(player, data, cantrigger, event, rootPlayer, rootTarget); |
- 应用盔甲效果
- 判断是否装备全套套装。
- 判断全套盔甲是否都为装备类型。
- 判断通过后返回盔甲材质,根据材质应用不同套装效果。
- 套装效果详解
- 注:伤害计算的套装效果计算时不包含百科中“受到伤害时”、“额外消耗魔力”等词条,在EventFx.entityHurtsFX()方法中计算受到伤害效果。
- 若盔甲是ItemToolArmorSpecial,即可升级的盔甲,也即那些毕业套。
- 获取套装中最低的等级,若不是全套ItemToolArmorSpecial或套装类别不统一,则返回-1。
- 当最低等级大于-1,获取盔甲路线和材质进行应用效果。
- 盔甲路线对应:0——基础 1——深渊路线 2——超越路线
- DefendGuard_1(保卫使者):
- 深渊路线-深渊守门人套装:
- 强化等级 >= 5阶:防御力+75后防御力+5%。
- 强化等级 >= 15阶:防御力+15%、伤害减免+10%。
- 强化等级 >= 30阶:攻击时获得7s最大5层每次叠加1层的药水效果“深渊护卫的意志”,冷却时间2秒。 注:百科上原文为“持续5秒”。
- 强化等级 >= 35阶:防御力+20%、伤害减免+15%。
- 强化等级 >= 40阶:防御力-400,之后剩余的所有防御力若大于0,乘以0.4加到攻击力上,用于转换的防御力不会损失。
- 基础与超越路线-神圣守护者套装:
- 强化等级 >= 5阶:防御力+50、伤害减免+5%。
- 强化等级 >= 15阶:防御力+10%、伤害减免+10%。
- 强化等级 >= 30阶:攻击时获得7s最大5层每次叠加1层的药水效果“巨人守卫的意志”,冷却时间2秒。
- 强化等级 >= 35阶:防御力+20%。
- 深渊路线-深渊守门人套装:
- WraithReaper_1(亡魂死神):
- 套装效果:攻击生命值低于50%的目标时,造成的伤害提高30%、穿透值提高4点。
- 深渊路线-残暴梦魇套装:
- 强化等级 >= 5阶:造伤+10%、爆伤+5%。
- 强化等级 >= 10阶:攻击时获得10s最大100层每次叠加1层的药水效果“无尽梦魇”,无冷却时间。
- 强化等级 >= 15阶:造伤+15%、爆伤+10%。
- 强化等级 >= 20阶:造伤+7%、爆伤+5%,攻击时获得5s最大5层每次叠加1层的药水效果“残暴屠宰”,冷却时间2秒。
- 强化等级 >= 25阶:造伤+20%、爆伤+15%。
- 强化等级 >= 30阶:攻击时,所有以玩家为中心,11格半径内的单位(是EntityMob或含net.minecraft.entity.monster.IMob接口)获得5秒0级的药水效果“噩梦领域”,冷却时间5秒。
- 强化等级 >= 35阶:攻击拥有状态“噩梦领域”的单位额外造成50%暴击伤害。
- 强化等级 >= 40阶:最终伤害+25%、造伤+25%、暴伤+50%。
- 强化等级 >= 45阶:攻击时,根据6格半径内拥有“噩梦领域”状态的目标数量,每个增加5%造伤、3%暴伤。
- 基础与超越路线-审判之眼套装:
- 强化等级 >= 5阶:基础攻击力+18。
- 强化等级 >= 10阶:对BOSS单位造伤+10%。
- 强化等级 >= 15阶:基础攻击力+36。
- 强化等级 >= 20阶:攻击时10%概率获得16s最大10层每次叠加1层的药水效果“灵魂虹吸”,无冷却时间。状态>=10层时,触发叠加时对BOSS单位造伤+20%。
- 强化等级 >= 25阶:攻击生命值低于50%的BOSS单位时,造伤+30%(该BOSS单位在服务器线程上)。
- 强化等级 >= 30阶:攻击生命值低于50%的BOSS单位时,造伤+20%,爆伤+10%,同时目标获得7秒0级的药水效果“死神印记”,无冷却时间。
- 强化等级 >= 35阶:攻击BOSS单位时,造伤+75%;攻击非BOSS单位时,造伤-50%。
- 强化等级 >= 40阶:若目标单位有“死神印记”效果,使自身获得7秒0级的药水效果“审判者之眼”,无冷却时间。
- 强化等级 >= 45阶:若目标单位有“死神印记”效果,,使目标获得6s最大10层每次叠加1层的药水效果“审判终曲”,无冷却时间。若自身拥有“审判者之眼”状态,且目标拥有“审判终曲”状态,终伤+10%。
- 强化等级 >= 50阶:若目标单位未死亡、拥有“审判终曲”状态、没有无敌药水状态、血量低于生命上限的1%,玩家(服务端)将该目标当前生命值设置为1点。注:百科上原文为“立即杀死”。
- SecretMagic_1(秘法魔力):
- 套装效果:魔力值高于90%时,造伤+30%、穿透+4。
- 深渊路线-禁忌秘术套装:
- 强化等级 >= 5阶:造伤+12%,魔力减免+1%。
- 强化等级 >= 10阶:造伤+20%。
- 强化等级 >= 15阶:造伤+16%,魔力减免+2%。
- 强化等级 >= 25阶:造伤+24%,魔力减免+4%。
- 强化等级 >= 30阶:增加等同于32%魔力上限的附加伤害。
- 强化等级 >= 35阶:当自身“超能负荷”状态>=5层时,终伤+10%,爆伤+15%。
- 强化等级 >= 40阶:攻击时获得15s最大(玩家魔力上限的30%)层每次叠加(基本伤害 * 0.03F + 1.0F)层的药水效果“魔力护盾”,无冷却时间。
- 强化等级 >= 45阶:若玩家拥有“魔力护盾”状态,造伤+35%,暴击率+30,爆伤+10%,攻击时增加3%基本伤害的魔力值。
- 基础与超越路线-符纹魔导套装:
- 强化等级 >= 5阶:攻击时增加0.1%基本伤害的魔力值,魔力减免+1%。
- 强化等级 >= 10阶:攻击时获得45秒(玩家魔力上限的15%)层的药水效果“魔力护盾”,冷却时间45秒。
- 强化等级 >= 15阶:攻击时增加0.1%基本伤害的魔力值,魔力减免+2%。
- 强化等级 >= 25阶:攻击时增加0.2%基本伤害的魔力值,魔力减免+4%。
- 强化等级 >= 30阶:增加等同32%最大魔力值的附加伤害。
- 强化等级 >= 35阶:若自身拥有“魔力护盾”状态,造伤+20%,爆伤+15%,暴击率+15,回避率+15。
- 强化等级 >= 50阶:攻击时若自身未持有“魔导爆发”状态,则获得7s最大20层每次叠加1层的药水效果“魔导充能”,无冷却时间。
- EternalSpirit_1(永生之灵)
- 深渊路线-无尽贪欲套装:
- 强化等级 >= 5阶:吸血+2%。
- 强化等级 >= 10阶:攻击时获得10s最大10层每次叠加1层的药水效果“血刃切割”,冷却时间2秒。触发叠加效果时,若“血刃切割”层数>=10,吸血+5%,附加伤害+目标血量上限的1%(BOSS单位为0.1%)。
- 强化等级 >= 15阶:吸血+4%。
- 强化等级 >= 20阶:攻击时获得20秒0级的药水效果“血色愉悦”,无冷却时间。同时造伤+35%,爆伤+10%。
- 强化等级 >= 25阶:攻击时获得20s最大5层每次叠加1层的药水效果“嗜血本能”,冷却时间3秒。
- 强化等级 >= 30阶:攻击时若自身血量大于最大生命的90%,终伤+10%,爆伤+20%。
- 强化等级 >= 40阶:攻击时若自身血量小于最大生命的70%,吸血+4%。
- 强化等级 >= 45阶:攻击时获得5s最大10层每次叠加1层的药水效果“鲜血渴望”,无冷却时间。每层增加4%造伤。状态>=10层时,终伤+10%。
- 基础与超越路线-永恒神灵套装:
- 强化等级 >= 20阶:攻击时附加等同自身最大生命值16%的附加伤害。
- 强化等级 >= 25阶:未拥有任何创伤时,攻击附加等同自身最大生命值32%的附加伤害。
- 强化等级 >= 30阶:若自身血量大于最大生命的50%,造伤+30%,获得20秒0级的药水效果“生命之源-力量”,无冷却时间;反之,获得20秒0级的药水效果“生命之源-抵御”,无冷却时间。
- 强化等级 >= 50阶:攻击时获得7s最大5层每次叠加1层的药水效果“神灵祝福”,冷却时间2秒。状态>=5层时,增加最大生命值64%的附加伤害。
- 深渊路线-无尽贪欲套装:
- 返回ArmorEffect.class的void doEffectAttack,应用其他套装效果。
- HighlycrystalArmor_1(致命晶套装)
- 造伤+40%,攻击目标不为空时,移除服务端玩家的“剧毒”药水效果
- Adamantine_1(精金套装)
- 全能力巨量提升(type=3):造伤+30%,暴击率+10,穿透+4,终伤+4%。
- 造伤+70%,吸血+5%。
- Mithril_1(秘银套装)
- 全能力巨量提升(type=3):造伤+30%,暴击率+10,穿透+4,终伤+4%。
- 造伤+60%,吸血+5%。
- SoulSteel_1(魂钢套装)
- 全能力巨量提升(type=3):造伤+30%,暴击率+10,穿透+4,终伤+4%。
- 造伤+50%,吸血+5%。
- MysteriousIron_1(玄铁套装)
- 全能力巨量提升(type=3):造伤+30%,暴击率+10,穿透+4,终伤+4%。
- 造伤+40%,吸血+5%。
- HolyCopper_1(圣铜套装)
- 全能力巨量提升(type=3):造伤+30%,暴击率+10,穿透+4,终伤+4%。
- 造伤+30%,吸血+5%。
- BloodDragonArmor_1(恶咒套装)
- 血量大于最大生命的90%时,造伤+60%,全能力巨量提升(type=5):造伤+40%,暴击率+14,穿透+6,终伤+6%。
- 注:百科上原文为“生命值高于90%时,全能力极大提升,造成的伤害增加45% ”。
- LapudaCore.MeteoriteArmor.ArmorMaterials[0](初-远古套装)
- 全能力中幅提升(type=1):造伤+20%,暴击率+6,穿透+2,终伤+2%。
- 血量大于最大生命的90%时,造伤+20%。
- LapudaCore.MeteoriteArmor.ArmorMaterials[1](极-远古套装)
- 全能力大幅提升(type=2):造伤+25%,暴击率+8,穿透+3,终伤+3%。
- 血量大于最大生命的90%时,造伤+20%。
- LapudaCore.MeteoriteArmor.ArmorMaterials[2](灭-远古套装)
- 全能力巨量提升(type=3):造伤+30%,暴击率+10,穿透+4,终伤+4%。
- 血量大于最大生命的90%时,造伤+20%。
- LapudaCore.MeteoriteArmor.ArmorMaterials[3](真-远古套装)
- 全能力海量提升(type=4):造伤+35%,暴击率+12,穿透+5,终伤+5%。
- 血量大于最大生命的90%时,造伤+20%。
- oceanArmor_1(海洋套装)
- 全能力小幅提升(type=0):造伤+15%,暴击率+4,穿透+1,终伤+1%。
- 每级垂钓等级增加4%造伤。
- farmArmor_1(丰饶套装)
- 全能力小幅提升(type=0):造伤+15%,暴击率+4,穿透+1,终伤+1%。
- 每级农耕等级增加4%造伤。
- BossStartDragonArmor_1(星辰龙套装)
- 全能力巨量提升(type=3):造伤+30%,暴击率+10,穿透+4,终伤+4%。
- 造伤+40%。
- TempleArmor_1(失落套装)
- 全能力中幅提升(type=1):造伤+20%,暴击率+6,穿透+2,终伤+2%。
- 攻击BOSS时,造伤+40%。
- StrongholdArmor_1(红光战神套装)
- 血量小于最大生命的50%时,造伤+80%,全能力海量提升(type=4):造伤+35%,暴击率+12,穿透+5,终伤+5%。
- ShadowSecretGold_1(暗影秘金套装)
- 全能力小幅提升(type=0):造伤+15%,暴击率+4,穿透+1,终伤+1%。
- 每级采矿等级增加4%造伤。
- FeatherSnakeArmor_1(白羽套装)
- 全能力大幅提升(type=2):造伤+25%,暴击率+8,穿透+3,终伤+3%。
- 攻击时服务端玩家获得10s最大0层的药水效果“羽蛇守护”,无冷却时间
- DungeonGolden_1(神庙金套装)
- 全能力大幅提升(type=2):造伤+25%,暴击率+8,穿透+3,终伤+3%。
- 攻击时消耗金锭,造伤+60%,穿透+4。
- WeaponCore.bedrock_level_1.ArmorMaterials[1](基岩魔力-全能套装)
- 全能力中幅提升(type=1):造伤+20%,暴击率+6,穿透+2,终伤+2%。
- WeaponCore.bedrock_level_1.ArmorMaterials[2](基岩魔力-攻击套装)
- 造伤+25%,暴击率+8。
- WeaponCore.bedrock_level_1.ArmorMaterials[3](基岩魔力-防御套装)
- 吸血+5%。
- WeaponCore.bedrock_level_2.ArmorMaterials[1](基岩勇士-全能套装)
- 全能力巨量提升(type=3):造伤+30%,暴击率+10,穿透+4,终伤+4%。
- WeaponCore.bedrock_level_2.ArmorMaterials[2](基岩勇士-攻击套装)
- 造伤+35%,暴击率+8。
- 注:百科原文为”暴击率提高12点”。
- WeaponCore.bedrock_level_2.ArmorMaterials[3](基岩勇士-防御套装)
- 吸血+10%。
- LegendaryWeaponCore.Bear(野熊套装)
- 职业经验获取量+10%。
- LegendaryWeaponCore.Falcon(老鹰套装)
- 暴击率+15,职业经验获取量+10%。
- LegendaryWeaponCore.Fox(狡狐套装)
- 穿透+5,职业经验获取量+10%。
- LegendaryWeaponCore.Wolf(野狼套装)
- 造伤+15%,职业经验获取量+10%。
- UndeadGraveCore.ArmorM1(勇士套装)
- 造伤+10%,吸血+5%。
- UndeadGraveCore.ArmorM2(游侠套装)
- 造伤+20%,暴击率+7。
- UndeadGraveCore.ArmorM2(法师套装)
- 造伤+10%,暴击率+5。
- 攻击时,服务端玩家恢复15点魔力值。
- WeaponCore.legend_ore.ArmorMaterials[0](地狱使者套装)
- 全能力小幅提升(type=0):造伤+15%,暴击率+4,穿透+1,终伤+1%。
- WeaponCore.legend_ore.ArmorMaterials[1](充能地狱使者套装)
- 全能力中幅提升(type=1):造伤+20%,暴击率+6,穿透+2,终伤+2%。
- WeaponCore.legend_ore.ArmorMaterials[2](觉醒地狱使者套装)
- 全能力大幅提升(type=2):造伤+25%,暴击率+8,穿透+3,终伤+3%。
- WeaponCore.legend_ore.ArmorMaterials[3](真。地狱使者套装)
- 全能力巨量提升(type=3):造伤+30%,暴击率+10,穿透+4,终伤+4%。
- WeaponCore.epic_ore.ArmorMaterials[0](传说勇士套装)
- 造伤+10%,暴击率+3。
- WeaponCore.epic_ore.ArmorMaterials[1](充能传说勇士套装)
- 造伤+15%,暴击率+5。
- WeaponCore.epic_ore.ArmorMaterials[2](觉醒传说勇士套装)
- 造伤+20%,暴击率+7。
- WeaponCore.epic_ore.ArmorMaterials[3](真。传说勇士套装)
- 造伤+25%,暴击率+9。
- ItemArmor.ArmorMaterial.GOLD(金套装)
- 造伤+30%。
- ItemArmor.ArmorMaterial.CHAIN(锁链套装)
- 造伤+15%,穿透+3。
- ManaMetalMod.ArmorKnight(骑士套装)
- 暴击率+5,穿透+2。
- ItemArmor.ArmorMaterial.DIAMOND(钻石套装)
- 造伤+10%。
- 服务端玩家攻击时对目标赋予10s最大0层的“破甲”药水效果,无冷却时间。
- WeaponCore.BloodMetal.armorMaterial(暗红钢套装)
- 吸血+10%。
- WeaponCore.Dark.armorMaterial(黑暗钢套装)
- 血量小于最大生命的30%时,造伤+35%。
- WeaponCore.AncientThulium.armorMaterial(远古铥套装)
- 攻击的目标为上一次攻击的目标时,造伤+20%。
- WeaponCore.ManaS.armorMaterial(魔法钢套装)
- 服务端玩家恢复20魔力值。
- WeaponCore.UniverseEnergy.armorMaterial(宇宙能量套装)
- 造伤+20%,暴击率+5。
- WeaponCore.NeutronEnergy.armorMaterial(奥哈立尔钢套装)
- 造伤+10%。
- WeaponCore.Endless.armorMaterial(无限钢套装)
- 魔力值高于50%时,造伤+25%。
- WeaponCore.Crimson.armorMaterial(红莲金属套装)
- 生命大于等于血量上限时,造伤+35%。
- WeaponCore.Cobalt.armorMaterial(钴蓝套装)
- 造伤+15%。
- WeaponCore.Palladium.armorMaterial(钯金套装)
- 吸血+5%。
- WeaponCore.RuneSteel.armorMaterial(符纹钢套装)
- 全能力小幅提升(type=0):造伤+15%,暴击率+4,穿透+1,终伤+1%。
- WeaponCore.TrueAncientThulium.armorMaterial(觉醒远古铥战斗套装)
- 造伤+20%,吸血+5%。
- armor_Titanium_1(钛金套装)
- 全能力中幅提升(type=1):造伤+20%,暴击率+6,穿透+2,终伤+2%。
- armor_Lead_1(重铅套装)
- 造伤+10%,爆伤+10%。
- goldSteeleafIngotArmor_1(黄金钢叶套装)
- 全能力中幅提升(type=1):造伤+20%,暴击率+6,穿透+2,终伤+2%。
- 攻击Boss单位时,造伤+20%。
- powerIronwoodIngotArmor_1(强化铁木套装)
- 全能力中幅提升(type=1):造伤+20%,暴击率+6,穿透+2,终伤+2%。
- 吸血+5%。
- FIERY(炽铁套装)
- 攻击正在燃烧的目标时,造伤+35%。
- KNIGHTMETAL(骑士套装)
- 骑乘时,造伤+50%。
- KNIGHTPHANTOM(幻影骑士套装)
- 全能力大幅提升(type=2):造伤+25%,暴击率+8,穿透+3,终伤+3%。
- 吸血+10%。
- YETI(雪怪套装)
- 全能力大幅提升(type=2):造伤+25%,暴击率+8,穿透+3,终伤+3%。
- 服务端玩家攻击目标时,目标获得10秒2级的冰缓效果,无冷却时间。
- ARCTIC(极地套装)
- 全能力中幅提升(type=1):造伤+20%,暴击率+6,穿透+2,终伤+2%。
- CompressionSteelArmor_1(压缩钢套装)
- 造伤+20%,吸血+10%。
- MMM.isThaumcraft 神秘:
- MisriruArmorMaterial(米斯里鲁套装)
- 造伤+35%。
- MisriruArmorMaterialTrue(觉醒米斯里鲁套装)
- 造伤+50%,吸血+15%。
- SPECIAL(揭示护目镜)
- 造伤+20%,穿透+2。
- VOID(虚空套)
- 造伤+20%,穿透+4,吸血+10%。
- FORTRESS(神秘要塞套装)
- 造伤+30%,吸血+10%。
- MMM.isBotania 植物魔法:
- MANASTEEL(魔钢套装)
- 魔力大于50%时,造伤+20%,穿透+5。
- TERRASTEEL(泰拉钢套)
- 造伤+30%,吸血+10%。
- B_ELEMENTIUM(源质钢套装)
- 魔力低于80%时,造伤+30%,穿透+5。
- MANAWEAVE(魔源套装)
- 造伤+10%,穿透+2
- 攻击时恢复50魔力。
- MMM.isMoCreatures 更多生物:
- crocARMOR()
- 造伤+25%。
- 服务端玩家攻击目标时,使目标获得5秒2级的冰缓效果,无冷却时间。
- furARMOR(毛皮套装)
- 造伤+20%。
- hideARMOR(兽皮套装)
- 造伤+20%,穿透+4。
- MMM.isAether 天境:
- Armor_Zanite(紫晶套装)
- 造伤+10%,穿透+2。
- Armor_Gravitite(重力晶套装)
- 玩家处于落地状态时,造伤+60%。
- Armor_Neptune(海神套装)
- 玩家处于水下状态时,造伤+65%,穿透+8。
- Armor_Phoenix(凤凰套装)
- 服务端玩家攻击目标时,使目标燃烧10s。若目标处于燃烧状态,造伤+90%。
- Armor_Obsidian(黑曜套装)
- 穿透+11,吸血+10%。
- Armor_Valkyrie(武神套装)
- 造伤+30%,穿透+5,吸血+10%。
- MMM.isChocolateQuest 寻找巧克力:
- CQ_dragon(龙之头盔)
- 造伤+60%,穿透+9。
- CQ_king(国王盔甲)
- 造伤+30%,吸血+10%。
- TURTLE(乌龟套装)
- 吸血+10%。
- 服务端玩家获得200秒0级的药水效果PotionM3.potionbrewing3和PotionM3.potionResistance2,无冷却时间。
- MONSTER_FUR(未找到翻译,可能为蜘蛛套装)
- 造伤+30%。
- 服务端玩家攻击目标时,使目标获得5秒2级的冰缓效果,无冷却时间。
- CQ_bull(公牛套装)
- 增加等同于防御值的基础攻击力。
- CQ_slime(史莱姆套装)
- 服务端玩家攻击时消耗粘液球,造伤+70%。
- 服务端玩家攻击时有20%概率获得一个粘液球。
- CQ_mage(法师套装)
- 造伤+10%。
- 服务端玩家攻击时恢复60魔力值。
- MMM.isMetallurgy 冶金:
- metallurgy.tartarite(熔火石套装)
- 造伤+50%,穿透+4,吸血+5%。
- metallurgy.adamantine(幽冥剧毒套装)
- 造伤+40%。
- 服务端玩家攻击目标时,使目标获得5秒3级的冰缓效果,无冷却时间。
- metallurgy.atlarus()
- 略……
依据
1 |
|
依据-毕业套效果
1 | public static final int isArmorFullLV(EntityPlayer player) { |
1 | WeaponEffect.doEffectAttack(data, MMM.getWeaponToolMaterial(item), player, event.entityLiving, rootPlayer, rootTarget, event.source, event.ammount, cantrigger, item); |
武器额外属性
- 判断是否可以触发攻击(cantrigger),并且有材质(Material)
- 应用ItemCustomizeTools效果,若NBT中存在名为”IItemCustomizeTag”的键,根据其值(id)给予不同的效果
- 在百科中为“额外属性”,参考
- id == -1 : 无效果
- id == 0 : 造伤+10%,穿透+3
- id == 1 : 造伤+15%,穿透+2
- id == 2 : 造伤+20%,穿透+1
- id == 3 : 吸血+2%
- id == 4 : 造伤+10%,穿透+1,暴击率+5
- id == 5 : 造伤+15%,穿透+1,暴击率+6
- id == 6 : 造伤+20%,穿透+1,暴击率+7
- id == 7 : 生命值高于一半时,造伤+35%
- id == 8 : 魔力值高于一半时,造伤+35%
- id == 9 : 吸血+4%
- 若材料为HolySoul(圣魂),且目标单位为ILegendEntity(阿斯翠德、真马、神艾),造伤+40%
- 若材料为Astrid,且玩家当前生命未满时,造伤+40%,穿透+3
- 若材料为Paganism,玩家恢复24点生命
- 若材料为Pirate(海盗),暴击率+10
- 若材料为Luna,爆伤+20%,穿透+2
- 若物品所属Mod为Botania、Thaumcraft、ProjectE,应用各自联动Mod的武器效果
依据-武器效果
1 | public static final void doEffectAttack(AttackEffect data, Item.ToolMaterial Material, EntityPlayer player, EntityLivingBase target, ManaMetalModRoot rootPlayer, ManaMetalModRoot rootTarget, DamageSource source, float damage, boolean cantrigger, ItemStack weapon) { |
依据-ItemCustomizeTools效果
1 | ItemCustomizeTools.weaponEffect(data, Material, player, target, rootPlayer, rootTarget, source, damage, cantrigger, weapon); |
联动Mod武器效果
1 | public class BotaniaWeaponCore { |
1 | EventSpecialization.doEffectAttack(data, player, event.entityLiving, rootPlayer, rootTarget, event.source, event.ammount, cantrigger, attackType); |
武士专精
- 若职业为武士
- 检查专精ID 61、69、70 是否点亮,每个增加10%造伤
- 检查专精左上角是否点亮,减少25%终伤
源码
1 | public class EventSpecialization { |
1 | CastingEffect.doEffectAttack(data, item, player, cantrigger, attackType); |
锻造前缀效果
- 无前缀/通用一般前缀 : 无效果
- 通用垃圾前缀 : 造伤-10%,穿透-2,暴击率-5
- 传奇前缀 : 造伤+30%,穿透+5,暴击率+10
- 终极前缀 : 造伤+40%,穿透+8,暴击率+20
- 尖刺 : 造伤+10%
- 锋利 : 造伤+15%
- 恶魔 : 造伤+20%
- 暴力 : 暴击率+10
- 狂暴 : 暴击率+15
- 暴怒 : 暴击率+20
- 若武器类型为物理近战:
- 强力 : 造伤+10%
- 强壮 : 造伤+15%
- 强大 : 造伤+20%
- 若武器类型为物理远程:
- 精准 : 造伤+10%
- 准确 : 造伤+10%
- 迅猛 : 造伤+10%
- 若武器类型为魔法:
- 神奇 : 造伤+10%
- 神秘 : 造伤+15%
- 魔导 : 造伤+20%
- 参考
源码
1 | public static final void doEffectAttack(AttackEffect data, ItemStack item, EntityPlayer player, boolean cantrigger, WeaponType weapontype) { |
1 | MagicJadeRed.getAttackEffect(data, player, event.entityLiving, event.source, rootPlayer, rootTarget, event.ammount, false, false); |
红色宝玉和黄色宝玉效果
源码
1 | public static final AttackEffect getAttackEffect(AttackEffect data, EntityPlayer player, EntityLivingBase target, DamageSource soure, ManaMetalModRoot root_player, ManaMetalModRoot root_target, float attack, boolean isCrit, boolean hasCrit) { |
1 | DamageSystemEvent.doDamageAttack(data, player, event.source, rootPlayer, rootTarget); |
创伤系统
- 检查配置文件中是否打开UseDamageSystem项,无则返回
- 检查TraumaSystemTime创伤保护时间,大于0则返回
- 通过以上检测后,遍历并应用创伤效果
- 创伤效果
- 脱水 : 受到的伤害+10%
- 营养不良 : 造伤-5%,穿透-1,防御力-30,回避率-10,暴击率-10,受到的伤害+5%
- Magic1 : 受到的伤害+10%
- Magic2 : 受到的伤害+30%
- 刺伤 : 造伤-20%,穿透-4,受到的伤害+5%
- 感冒 : 造伤-10%,穿透-2
- 中暑 : 造伤-10%,穿透-2
- 烧烫伤 : 造伤-20%,穿透-4
- 冻伤 : 造伤-20%,穿透-4
- 皮肉伤 : 造伤-5%,穿透-1,受到的伤害+5%
- 扭伤 : 造伤-10%,穿透-2,受到的伤害+5%
- 拉伤 : 造伤-15%,穿透-3,受到的伤害+5%
- 擦伤 : 造伤-20%,穿透-4,受到的伤害+5%
- 骨折 : 暴击率-30,回避率-30
- 粉碎性骨折 : 暴击率-90,回避率-90
- 骨头断裂 : 暴击率-150,回避率-150
- 撕裂伤 : 魔法攻击力-10,物理攻击力-10,穿透-4,受到的伤害+5%
- 内溃伤 : 魔法攻击力-20,物理攻击力-20,穿透-6,受到的伤害+5%
- 脑震荡 : 魔法攻击力-30,物理攻击力-30,穿透-8,受到的伤害+5%
- 深度撕裂伤 : 造伤-20%,穿透-6,防御力-40,回避率-40,暴击率-40,受到的伤害+10%
- 颅内溃伤 : 造伤-25%,穿透-8,防御力-50,回避率-50,暴击率-50,受到的伤害+20%
- 多重器官衰竭 : 造伤-50%,穿透-16,防御力-200,回避率-100,暴击率-100,受到的伤害+30%
- 参考
源码
1 | public static void doDamageAttack(AttackEffect data, EntityPlayer player, DamageSource source, ManaMetalModRoot rootPlayer, ManaMetalModRoot rootTarget) { |
1 | FoodSystem.doEffect(data, player, rootPlayer); |
饮食平衡系统
- 营养值最高为30点
- 蛋豆鱼肉类每1点提高全能攻击力1点
- 谷类每1点提高防御力1点
- 蔬菜类每6点提高穿透1点
- 水果类每1点提高暴击率1点、回避率1点
源码
1 | public class FoodSystem { |
1 | ArmorEffect.doArmorData(data, player, event.entityLiving, rootPlayer, rootTarget, event.source, event.ammount, true); |
装备效果
- 应用装备镀金效果,攻击时,叠加所有镀金层数,每一层增加3%造伤、1暴击率、1穿透
- 若装备包含NBT标签(类型为10,即Compound复合标签)”weapon_strengthen”(即鉴定后),每1点品质增加1%的造伤
- 若装备存在名为listID的标签(额外属性NBT),且类型是11,从listID数组中取出属性枚举,并从listEffect中取出对应属性的数值,提升人物属性。分两个标签存是为了扩展性
- 又捉到一行废代码,"ArmorStrengthen"估计是防具强化,最近被移除的功能
源码
1 | public static final void doArmorData(AttackEffect data, EntityPlayer player, EntityLivingBase target, ManaMetalModRoot root, ManaMetalModRoot rootTarget, DamageSource source, float damage, boolean isAttack) { |
1 | QuenchingJadeCore.doEffectAttack(data, item, player, cantrigger); |
淬炼宝玉效果
- 应用淬炼宝玉效果
- WeaponBase1 : 穿透+1,造伤+10%,暴击率+3
- WeaponBase2 : 穿透+2,造伤+10%,暴击率+1
- WeaponBase3 : 穿透+1,造伤+15%,暴击率+2
- WeaponBase4 : 穿透+2,造伤+10%,暴击率+1
- WeaponBase5 : 穿透+1,造伤+20%,暴击率+3
- WeaponRare1 : 穿透+2,造伤+25%,暴击率+3
- WeaponRare2 : 穿透+3,造伤+20%,暴击率+3
- WeaponRare3 : 穿透+2,造伤+25%,暴击率+3
- WeaponRare4 : 穿透+3,造伤+20%,暴击率+3
- WeaponRare5 : 穿透+2,造伤+20%,暴击率+4
- WeaponEpic : 穿透+3,造伤+30%,暴击率+5
- 不同属性存在相同效果,所以经常会感觉洗了和没洗一样x
源码
1 | public static final void doEffectAttack(AttackEffect data, ItemStack item, EntityPlayer player, boolean cantrigger) { |
1 | PotionData.potionEffect(player, data, cantrigger, event.entityLiving, rootPlayer, rootTarget, attackType, true); |
药水效果
- 应用目标和自身的药水效果
- 由于代码量过多,下表为AI生成,可作参考
目标药水效果表
| 药水 ID (代码变量名) | 对该目标攻击加成 (Attack) | 目标防御削弱 (Lower Stats) | 其它属性修正 | 特殊逻辑 / 备注 |
|---|---|---|---|---|
| potionShocked | - | 韧性 -0.025, 穿透防御 -5 |
- | 电击效果削弱敌方防御 |
| potionPaperShikigami | - | 穿透防御 -10 |
- | 纸符咒效果 |
| potionPoisonSwamp | attack + 50% |
韧性 -0.05 |
- | 毒沼状态下受创大幅增加 |
| potionKillDemon | attack + 20% |
- | - | 斩妖效果 |
| potionNightContract | attack + (LV+1)*10% |
- | - | 暗夜契约,随等级提升 |
| potionDivineLight | attack + 30% |
- | - | 神圣之光 |
| potionAbsoluteTenacity | - | - | - | 特殊:强制对玩家造成 500点 剧毒伤害 |
| potionBreakdown | attack + 10% |
- | - | 崩溃效果 |
| potionMoonCut | attack + 20% |
- | - | 月光斩标记 |
| potionDamageShield | attack + 50% |
- | - | 伤害护盾反制标记 |
| potionBadArmor | attack + 30%*(1+LV) |
- | - | 破甲状态:等级越高受创越重 |
| potionBow1 | attack + 10% |
韧性 -0.05 |
- | 远程标记 1 |
| potionBowTarget | attack + 150% |
- | critDamage + 150% |
致命标记:极大幅度提升远程伤害 |
| potionC4 | attack + 30% |
- | crit + 16, penetrate + 8 |
连段/标记效果 C4 |
| potionC5 | attack + 50% |
穿透防御 -10 |
- | 强力削弱 |
| potionC12 | attack + 30% |
- | penetrate + 10, critDamage + 0.3 |
高级组合加成 |
| potionH2 | attack + 20% |
穿透防御 -10 |
- | 削弱型标记 |
| potionASP_r1 | attack + LV*0.5% |
- | - | 随等级微量提升攻击 |
| potionASP_f2 | attack + LV*5% |
- | - | |
| potionTorrentSlash | attack + 15% |
- | - | 激流斩标记 |
自身药水效果表
| 药水 ID (代码变量名) | 攻击系加成 (Attack/Final) | 防御系加成 (Def/Reduce) | 其它属性 (穿透/职业/暴击等) | 特殊逻辑/备注 |
|---|---|---|---|---|
| Year8Food | attack + 88% |
- | - | 八周年系列:极高加成 |
| Year8Power | attack + 30% |
- | - | 八周年系列 |
| Year8Potion | 基础物攻/魔攻 +88 |
- | - | 增加面板基础值 |
| Year8Crystal | final_attack + 8% |
- | - | 最终伤害增益 |
| K3 | attack + 150%, final_attack + 50% |
- | - | 爆发性极强 |
| Dake | final_attack + 20% |
- | - | 每级额外增加 10% 终伤 |
| JunterTrack | attack + 60%, final_attack + 6% |
- | - | 随等级大幅提升 (1.2倍/级) |
| PurePrayer | attack + 60% |
defense + 60 |
final_attack + 5% |
全能型高级增益 |
| Phantom | - | damage_reduce + 75% |
- | 顶级减伤生存药水 |
| BadArmor | - | defense - 100*(1+LV) |
- | 负面效果:大幅削弱防御 |
| LostSoul | - | 无敌帧 -(1+LV)*5 |
- | 负面效果:更易被连续攻击 |
| StarBash | 基础物攻/魔攻 +(1+LV)*20 |
- | final_attack + (1+LV)*5% |
同时加基础属性与终伤 |
| GreatDivine | attack + 30% |
avoid + 10 |
crit + 10, critDamage + 30% |
包含最终伤害 5% |
| Paoxiao | attack + 30% |
- | - | 基础攻击百分比 |
| Alcohol | attack + (LV+1)*30% |
- | final_attack + (LV+1)*4% |
酒精增益,随等级成长极高 |
| AlcoholDrunk | damage_add + (LV+1)*10% |
defense - (LV+1)*120 |
- | 双刃剑:增伤但大幅降防 |
| AbsoluteDefense | - | del_damage = true |
- | 受击时免疫伤害并消耗等级 |
| ASP_d3 | - | defense + 原防御 * 500% |
- | 坦克核心:5倍防御强化 |
| ASP_f11 | - | damage_reduce + 75% |
- | 同幻影药水效果 |
| Honey | - | - | critDamage + 20%, penetrate + 3 |
根据“养蜂”等级额外加 attack |
| Curse | attack - 30% |
- | damage_add + 20% |
负面效果:降攻且受创增加 |
| Paralysis | attack - 2.0 |
defense - 300 |
crit/avoid/penetrate 大幅降低 |
致命负面:全属性瘫痪 |
| MoonEvent | attack + 20% |
defense + 16 |
crit/avoid + 4, penetrate + 1 |
均衡型系统增益 |
| Breakthrough | - | - | max_attack + 3.0 |
突破伤害上限 |
| PureSpring | - | - | career_increase + 5% |
职业资源获取速度 |
源码
1 | public static final AttackEffect potionEffect(EntityPlayer player, AttackEffect data, boolean cantrigger, EntityLivingBase target, ManaMetalModRoot rootPlayer, ManaMetalModRoot rootTarget, WeaponType type, boolean isAttack) { |
1 | event.ammount += ItemStrengthenHelp.getWeaponAttackRoll(item) * ItemStrengthenHelp.getWeaponStrPower(item.func_77973_b()); |
武器强化加成
- 应用武器强化后总攻击力加成,将各种强化系统(强化数、品质、宝玉)提供的攻击力进行累加
- 判断是否存在”weapon_strengthen”标签(已鉴定)
- 初始化attack变量为0
- 获取”attack”标签的值(武器基础攻击力)并累加到attack变量
- 获取装备所需等级和质量,通过公式(quality > 10) ? ((quality / 4 + LV / 14) * quality) : ((1 + LV / 20) * quality)计算后累加到attack
- 高品质阶段(quality > 10),加成计算公式为 : (Quality/4 + LV/14) × Quality,这是一个平方级的增长曲线
- 基础品质阶段 (quality <= 10),加成计算公式为 : (1 + LV/20) × Quality,这是一个线性增长曲线
- 当品质跨过10这个门槛时,加成计算从“线性”跃迁到“类平方”
- Java中的整数除法(如 LV / 14)会向下取整。例如,如果等级是 13,13 / 14 的结果是 0。
- 由于 LV / 14 的取整特性,你会发现攻击力不是每一级都提升,而是每升 14 级时,数值会有一个明显的跳跃感
- 获取”extra_attack”标签的值(额外攻击力)并累加到attack变量
- 获取蓝色宝玉,通过公式 if (id < 50) { attack += id + 1;} else { attack += id - 49; }累加到attack变量
- 返回一个不为负数的attack变量
- 最后将attack变量加上一个固定值 1 计入伤害
源码
1 | public static int getWeaponAttackRoll(ItemStack item) { |
1 | ItemStrengthenHelp.getWeaponStarEvent(item, data, player, event.entityLiving, rootPlayer, rootTarget, event.source, event.ammount, cantrigger); |
武器星级效果
- 每一星级+10%造伤
- 拥有三星NBT标签时根据其值获取相应属性,暴击率+8 或 基础攻击力+16 或 穿透+1
- 拥有五星NBT标签时根据其值获取相应属性,暴击率+16 或 基础攻击力+24 或 穿透+3
- 拥有十星NBT标签时根据其值获取相应属性,吸血+10% 或 对BOSS单位造伤+30% 或 穿透+8 或 终伤+7% 或 基础攻击力+64
源码
1 | public static void getWeaponStarEvent(ItemStack item, AttackEffect data, EntityPlayer player, EntityLivingBase target, ManaMetalModRoot rootPlayer, ManaMetalModRoot rootTarget, DamageSource source, float damage, boolean cantrigger) { |
1 | SpiritualPower.doEffectAttack(data, player, event.entityLiving, rootPlayer, rootTarget); |
灵力系统
- 应用每个灵力槽提供的全能攻击力
- 再应用每个灵力槽提供的品质效果
| 槽位索引 | 详细效果描述 |
|---|---|
| [0] | 等级1:赋予目标缓慢效果;等级2:穿透+2;等级3/5/6:暴伤+10%/20%/30%;等级4:赋予目标破甲效果。 |
| [1] | 提供造伤百分比加成,随等级提升分别为:10%、15%、20%、25%、30%、35%。 |
| [2] | (无实际代码逻辑) |
| [3] | 将暴击率和回避率相加,随等级分别除以 20、18、16、14、10、8 后 +1 加到基础攻击力上。 |
| [4] | 联动加成:统计所有槽位中等级与此槽位相同的数量(has),额外提供 (has * 10%~15%) 的攻击力,10%~15%对应等级1~6,每级提升1%。 |
| [5] | 复合属性:暴伤提升(10%~35%) 且 穿透提升(1~6点),每级提升相同。 |
| [6] | 收益属性:掉宝率提升(10~35) 且 经验获取量提升(10%~35%),每级提升相同。 |
| [7] | 终极属性:等级1:对Boss造伤+20%;等级2:造伤+20%,穿透+4;等级3:爆伤+30%;等级4:吸血+10%;等级5/6:提供终伤(20%/25%)与穿透(10/12)。 |
源码
1 | public static final void doEffectAttack(AttackEffect data, EntityPlayer player, EntityLivingBase target, ManaMetalModRoot root, ManaMetalModRoot rootTarget) { |
1 | isDarkPower = ItemStrengthenHelp.darkPower(item, player, rootPlayer, data); |
暗噬药水效果
- 记录和应用暗噬药水效果
- 当武器的黑暗灌注点数<=100时,给予玩家600s0级的暗噬药水效果,并标记isDarkPower为true
- 当武器的黑暗灌注点数>100时,给予玩家600s (点数/100) 级的暗噬药水效果,并标记isDarkPower为true
源码
1 | public static final boolean darkPower(ItemStack item, EntityPlayer player, ManaMetalModRoot rootPlayer, AttackEffect data) { |
1 | AttackEffect.add(data, rootPlayer.carrer.effect_hotpot); |
火锅和药水效果
1 | EventSpell.attack(item, data, player, event.entityLiving, rootPlayer, rootTarget, event.source, event.ammount); |
刺客专精
- 吸血+5%
- 若玩家当前生命值 >= 最大生命值,且开启了左上专精,则攻击时获得30s最大生命值15%的临时生命值
- 若开启了左下专精,攻击时增加当前血量百分比 × 0.3%的造伤,二转后系数变为0.6%
源码
1 | public static final void attack(ItemStack item, AttackEffect data, EntityPlayer player, EntityLivingBase target, ManaMetalModRoot root, ManaMetalModRoot rootTarget, DamageSource source, float damage) { |
1 | ArcheologyCore.attack(data, player, event.entityLiving, event.source, rootPlayer, rootTarget); |
古物系统
- 应用五个槽位的古物
- 从物品的 NBT 标签中获取该古物的类型、词缀 (Affix) 和 特殊修改属性 (Modify)
| 属性枚举 (Modify) | 效果描述 | 触发条件/具体算法 |
|---|---|---|
| magicDefense | 增加附加伤害 | 增加量 = 闪避率 × 2 |
| physicalAttack | 增加附加伤害 | 增加量 = 当前法力值 × 0.04 |
| magicAttack | 终伤 +10% | 1% 概率触发 |
| crit | 造伤 +20% | 当 当前法力值 ≥ 最大法力值的 50% 时 |
| avoid | 造伤 +20% | 当 目标生命值 ≤ 其最大生命值的 50% 时 |
| hpReply | 造伤随机提升 | 提升 1% ~ 30% 之间的随机数值 |
| manaReply | 造伤 +120% | 3% 概率触发 |
| dropRate | 增加附加伤害 | 增加量 = 暴击率 × 2 |
| HP | 造伤 +40% | 当 自身生命值 ≤ 最大生命值的 50% 时 |
| manaMax | 造伤波动 | 50%几率增加或减少 1% ~ 50% 的造伤 |
| attackMultiplier | 吸血提升 2% | 无条件触发 |
| defenseMultiplier | 造伤 +25% | 5% 概率使自己获得 诅咒 效果 |
| magicRelief | 造伤 +40% | 3% 概率使自己获得 中毒 效果 |
| healthRecovery | 造伤 +40% | 无条件触发 |
| penetrate | 吸血 +1% | 无条件触发 |
| water | 造伤 +40% | 无条件触发 |
| fatigue | 造伤 +30% | 无条件触发 |
| health | 造伤 +60% | 1% 概率使自己受到 剧毒 伤害(自身血量 10%) |
| monster_attack | 造伤 +25% | 必定使自己获得8s的 缓慢 效果 |
| 词缀枚举 (Affix) | 效果描述 | 触发条件/具体数值 |
|---|---|---|
| magicDefense | 增加基础魔法攻击力 | 固定增加 10 点 |
| physicalAttack | 增加基础物理攻击力 | 固定增加 10 点 |
| magicAttack | 增加吸血比例 | 固定增加 1% |
| crit | 提升暴击属性 | 增加 5 点暴击率 及 10% 爆伤 |
| avoid | 提升暴击率 | 固定增加 9 点暴击率 |
| hpReply | 攻击附带异常状态 | 1% 概率使目标随机获得3s的 石化、冻结、雷击 之一 |
| manaReply | 瞬间治疗 | 5% 概率直接回复 500 点生命值 |
源码
1 | public static AttackEffect attack_effect(ItemStack item, AttackEffect data, EntityPlayer player, EntityLivingBase target, DamageSource source, ManaMetalModRoot root, ManaMetalModRoot root_target) { |
1 | TileEntitySacrificialCeremony.effect(data, player, event.entityLiving, event.source, rootPlayer, rootTarget); |
献灵仪式效果
| 仪式类型 (Type) | 具体属性加成 (AttackEffect data) |
|---|---|
| Treasure | 掉落率 +50 |
| Soul | 经验获取倍率 +30% |
| Evilmagic | 穿透 +4, 造伤 +20%, 物攻 & 魔攻 +20, 防御 +40, 暴击率 +15, 闪避率 +15 |
| Ancient | 基础物理 & 魔法攻击力各 +20 |
| Oldgod | 终伤 +10%, 穿透 +10 |
源码
1 | public static final void effect(AttackEffect data, EntityPlayer player, EntityLivingBase target, DamageSource source, ManaMetalModRoot root_player, ManaMetalModRoot root_target) { |
1 | if (CareerCore.testPlayerWeapon(player, CareerCore.getPlayerCarrer(player))) |
职业武器加成
- 若玩家当前手上的武器类型是否符合其职业,伤害倍率+50%
源码
1 | public static boolean testPlayerWeapon(EntityPlayer player, CareerCore career) { |
1 | if (rootPlayer.carrer.isTransfer2()) |
二转技能战斗思想加成
- 若达到二转,伤害 + (5 × 战斗思想技能等级)
1 | if (item.field_77990_d != null && item.field_77990_d.func_150297_b("Gilded", 3)) { |
镀金系统
- 应用武器镀金层数,每级伤害倍率+10%
1 | if (item.func_77973_b() instanceof IFXItem && cantrigger) { |
特效武器
- 检查武器是否为特效武器,是则触发特殊属性
- 包含的物品有:
- ItemToolSwordMisriruTrue(真米斯里鲁剑) : 给目标造成3s0级的冰缓药水效果,并恢复40点生命值
- ItemToolBlowarrowDungeon(地下城吹箭) : 效果略,见下方代码
- ItemToolBowDungeon(地下城弓) : 效果略,见下方代码
- ItemToolDaggerDungeon(地下城匕首) : 效果略,见下方代码
- ItemToolFanDungeon(地下城扇子) : 效果略,见下方代码
- ItemToolHammerDungeon(地下城锤子) : 效果略,见下方代码
- ItemToolMagicBookDungeon(地下城书) : 效果略,见下方代码
- ItemToolSickleDungeon(地下城镰刀) : 效果略,见下方代码
- ItemToolSwordDungeon(地下城剑) : 效果略,见下方代码
- ItemToolWandMagicDungeon(地下城法杖) : 效果略,见下方代码
- ItemToolSwordArtifacts : 穿透 + 5
- ItemToolJavelinDungeon : 效果略,见下方代码
- ItemToolKatanaDungeon : 效果略,见下方代码
- ItemToolShocrtcaneDungeon : 效果略,见下方代码
源码
1 | // ItemToolBlowarrowDungeon |
1 | if (attackType != null) |
攻击类型、武器附魔、职业属性、角色属性
- 物理近战
- 获取锋利附魔等级
- 职业属性中的物理攻击力加入伤害中
- 基础物理攻击力加入伤害中
- 人物属性中的力量的1%加入造伤中
- 物理远程
- 获取力量附魔等级
- 职业属性中的物理攻击力加入伤害中
- 职业属性中的物理远程攻击力加入伤害中
- 基础物理攻击力加到伤害中
- 人物属性中的敏捷的1%加入造伤中
- 法系
- 获取魔法伤害附魔等级
- 职业属性中的魔法攻击力加入伤害中
- 基础魔法攻击力加入伤害中
- 人物属性中的智慧的1%加入造伤中
- 全能攻击力加入伤害中
- 若上述附魔等级>0级,将 附魔等级 × 5 加入伤害中,同时伤害倍率提高 附魔等级 × 0.1
1 | max_attack_damage += data.max_attack_base; |
最大伤害计算
- 最大伤害 = (基础最大伤害+职业属性基础最大伤害+特殊伤害来源效果) × (1 + 基础属性最大伤害)
- 基础最大伤害 来源 : 神奇时钟药水效果potionMysteriousClock(PE.LV == 3)(+1000)
- 职业属性基础最大伤害 来源 : 角色属性-力量(+40 / 1级)
- 特殊伤害来源效果 来源 : 玩家无来源;Entity3DThrowable实体,若拥有药水效果potionLimitCharge,其最大伤害增加 3×二转最大伤害
- 基础属性最大伤害 来源 : 药水效果potionL4(+1)、potionBreakthrough(+4)
1 | critBase += data.crit; |