攻击造成的伤害类型有哪些以及游戏后端怎样计算这些伤害呢?
伤害类型主要包括:
普通攻击
技能攻击
高级属性带来的伤害:暴击,增伤(百分比伤害),反伤等。
伤害计算主要包括:
攻防血公式计算伤害
直接伤害(固定伤害或百分比伤害)
攻防血公式计算伤害+直接伤害
计算伤害的类型主要又可以分为两种:
一、走攻防血伤害计算流程的函数接口
bool SceneEntryPk::AttackMe(SceneEntryPk *pAtt, const Cmd::stAttackMagicUserCmd *rev)
{
…
dam = attack * attack / (attack + 2* defence);
…
if (this->getSceneUser()) {
this->getSceneUser()->DirectDamage(pAtt, dam);
} else if (this->getSceneNpc()) {
this->getSceneNpc()->DirectDamage(pAtt, dam);
}
…
return true;
}
二、走直接伤害计算流程的函数接口
int SceneEntryPk::DirectDamage(SceneEntryPk *pAtt, const int &dam)
{
…
return dam;
}
几乎所有的伤害,包括玩家对npc的伤害,npc对玩家的伤害,玩家对玩家的伤害,都可以通过上述两个接口来实现。