伤害公式演化过程

 

一个游戏公式,从简单到复杂的演化,是由一个过程的。

这篇文章以普遍的RPG游戏的伤害公式来说明。

 

伤害公式最简单的形式:

公式说明:

Dmg:伤害值

Max:取大函数

Atk:攻击力

Def:防御力

 

伤害 = 攻击者的攻击力-被攻击者的防御力,如果攻击力小于防御力,伤害值不小于1.

 

这个公式有一个问题,如果防御力堆的足够高,攻击力无法造成有效伤害。因此,许多游戏把防御力变成一个百分比系数。

例如魔兽争霸的防御力系数:

减少的伤害百分比=(装甲值 * 0.06)/(装甲值 * 0.06 + 1)

 

伤害公式的形式变为:

 

这个简单的伤害公式,就可以设计许多系统对他的支持。

例如设计多套,多等级的防具来增加角色的防御力。设计多套武器来增加角色的攻击力。

武器防具可以从关卡敌人身上掉落。或者从地图探索的宝箱中获得。

 

 

技能伤害公式

技能效果需要在公式中体现,技能只需要增加攻击力就行了。

技能有三项属性:

skill_factor:技能伤害倍率

skill_plus:技能伤害附加值

skill_true_dmg:技能真实伤害

伤害公式的形式变为:

技能提升了攻击力的倍率,以及添加一个额外伤害。对基础攻击力有一个线性提升。

技能真实伤害放在防御力之后,所以真实伤害不受防御力影响。

 

有了技能之后,角色可以对技能进行成长。

 

命中闪避暴击

有命中就有闪避。这两者是一个对立关系。两者互相成长。

给每个战斗单位,添加这两项属性之后,伤害公式的形式变为

有两种比较流行的计算实际命中率的方法:减法公式与除法公式

减法公式:

除法公式

两种计算方式各有优劣

暴击率的计算方式雷同。

Buff加成

Buff影响角色的所有属性。

此时为止,角色属性包括

Buff可以对每项属性一个线性加成

将每一项带入原本的伤害公式,可得最终伤害式。这里不列举了

从公式可以看出,buff加成的攻击力,可以被技能继续加成。收益较高。

 

公式演化方向

更复杂的演化方向,可以从以下几个方向去着手

增加技能的伤害类型(物理伤害,魔法伤害,神圣伤害等)

增加技能的属性克制(金木水火土)

增加特殊攻击姿态的伤害倍率(破招伤害加成,击倒伤害加成,背部伤害加成等)

增加对特殊怪物类型的伤害(对人形怪的伤害加成,对死灵的伤害加成等)

 

极限情况下,玩家如果对所有情况都满足下,可以产生爆炸伤害。

### 游戏开发中普通攻击伤害的计算 在游戏开发领域,普通攻击伤害通常基于一系列参数来决定最终造成的伤害值。具体来说,普通攻击伤害可以通过以下公式得出: #### 普通攻击伤害计算公式 普通攻击伤害由攻击力和目标防御之间的关系确定,其中考虑到了防御减免系数的影响。 \[ \text{普通伤害} = \text{攻击} \times (1 - \text{防御减免系数}) \] 这里的“攻击”指的是发起攻击一方的实际攻击力,这可能包括装备的基础攻击力以及任何通过角色等级或其他增益获得的额外攻击力[^3]。 对于防御方而言,“防御减免系数”的设定是为了体现不同类型的防具对不同类型攻击的有效性差异。“防御减免系数”可以理解为一种比例因子,它决定了多少百分比的攻击能够穿透到对方身上造成实际损害。 当涉及到更复杂的场景时,比如存在暴击机制的情况下,则还需要进一步应用暴击伤害计算逻辑。然而,在最基础的形式下,上述公式已经足以表达一次普通的非暴击攻击所造成的预期伤害量。 ```python def calculate_normal_attack_damage(attacker_power, defender_reduction_rate): """ 计算普通攻击伤害 参数: attacker_power (float): 发起者的攻击力 defender_reduction_rate (float): 受击者的防御减免系数 返回: float: 实际造成的伤害值 """ damage = attacker_power * (1 - defender_reduction_rate) return max(damage, 0) # 确保最小伤害不低于零 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值