diff --git a/server/gameserver/netdata.cc b/server/gameserver/netdata.cc index 9d8b34ed..71df953d 100644 --- a/server/gameserver/netdata.cc +++ b/server/gameserver/netdata.cc @@ -135,30 +135,31 @@ public: void RecalcHp() { + auto ability = owner_.Get()->GetAbility(); float pHealRateAm = 0.0f; //加基础点数属性绝对值 - float pHealthAm_Add = 0.0f; //buff或者养成的属性 + float pHealthAm_Add = ability->GetAttr(kNHAT_pHealthAm); //buff或者养成的属性 pHealRateAm += pHealthAm_Add; float pHealthRateSe = 0.0f; - float pHealthRateSe_Add = 0.0f; //buff或者养成的属性 + float pHealthRateSe_Add = ability->GetAttr(kNHAT_pHealthRateSe); //buff或者养成的属性 pHealthRateSe += pHealthRateSe_Add; float pHealthRateIn = 0.0f; - float pHealthRateIn_Add = 0.0f; //buff或者养成的属性 + float pHealthRateIn_Add = ability->GetAttr(kNHAT_pHealthRateIn); //buff或者养成的属性 pHealthRateIn = (1 + pHealthRateIn) * (1 + pHealthRateIn_Add) - 1; float pHealth = (hero_meta->GetBasicMeta()->pOrigHealth() + pHealRateAm) * (1 + pHealthRateSe) * (1 + pHealthRateIn); float vHealthAm = 0.0f; - float vHealthAm_Add = 0.0f; //buff或者养成的属性 + float vHealthAm_Add = ability->GetAttr(kNHAT_vHealthAm); //buff或者养成的属性 vHealthAm += vHealthAm_Add; float vHealthRateSe = 0.0f; - float vHealthRateSe_Add = 0.0f; //buff或者养成的属性 + float vHealthRateSe_Add = ability->GetAttr(kNHAT_vHealthRateSe); //buff或者养成的属性 vHealthRateSe += vHealthRateSe_Add; float vHealthRateIn = 0.0f; - float vHealthRateIn_Add = 0.0f; //buff或者养成的属性 + float vHealthRateIn_Add = ability->GetAttr(kNHAT_vHealthRateIn); //buff或者养成的属性 vHealthRateIn = (1 + vHealthRateIn) * (1 + vHealthRateIn_Add) - 1; hp_ = (hero_meta->GetBasicMeta()->vOrigHealth() * (1 + pHealth / hero_meta->GetBasicMeta()->pBaseHealth() + vHealthAm)) * @@ -167,28 +168,29 @@ public: void RecalcAttack() { + auto ability = owner_.Get()->GetAbility(); float pAttackAm = 0.0f; - float pAttackAm_Add = 0.0f; + float pAttackAm_Add = ability->GetAttr(kNHAT_pAttackAm); pAttackAm += pAttackAm_Add; float pAttackRateSe = 0.0f; - float pAttackRateSe_Add = 0.0f; + float pAttackRateSe_Add = ability->GetAttr(kNHAT_pAttackRateSe); pAttackRateSe += pAttackRateSe_Add; float pAttackRateIn = 0.0f; - float pAttackRateIn_Add = 0.0f; + float pAttackRateIn_Add = ability->GetAttr(kNHAT_pAttackRateIn); pAttackRateIn = (1 + pAttackRateIn) * ( 1 + pAttackRateIn_Add) - 1; float vAttackAm = 0.0f; - float vAttackAm_Add = 0.0f; + float vAttackAm_Add = ability->GetAttr(kNHAT_vAttackAm); vAttackAm += vAttackAm_Add; float vAttackRateSe = 0.0f; - float vAttackRateSe_Add = 0.0f; + float vAttackRateSe_Add = ability->GetAttr(kNHAT_vAttackRateSe); vAttackRateSe += vAttackRateSe_Add; float vAttackRateIn = 0.0f; - float vAttackRateIn_Add = 0.0f; + float vAttackRateIn_Add = ability->GetAttr(kNHAT_vAttackRateIn); vAttackRateIn = (1 + vAttackRateIn) * (1 + vAttackRateIn_Add) - 1; float pAttack = 0.0f; @@ -200,16 +202,17 @@ public: void RecalcDef() { + auto ability = owner_.Get()->GetAbility(); float pDefendAm = 0.0f; - float pDefendAm_Add = 0.0f; + float pDefendAm_Add = ability->GetAttr(kNHAT_pDefendAm); pDefendAm += pDefendAm_Add; float pDefendRateSe = 0.0f; - float pDefendRateSe_Add = 0.0f; + float pDefendRateSe_Add = ability->GetAttr(kNHAT_pDefendRateSe); pDefendRateSe += pDefendRateSe_Add; float pDefendRateIn = 0.0f; - float pDefendRateIn_Add = 0.0f; + float pDefendRateIn_Add = ability->GetAttr(kNHAT_pDefendRateIn); pDefendRateIn = (1 + pDefendRateIn) * (1 + pDefendRateIn_Add) - 1; def_ = (hero_meta->GetBasicMeta()->vOrigDefend() + pDefendAm) * @@ -218,16 +221,17 @@ public: void RecalcBlock() { + auto ability = owner_.Get()->GetAbility(); float pBlockAm = 0.0f; - float pBlockAm_Add = 0.0f; + float pBlockAm_Add = ability->GetAttr(kNHAT_pBlockAm); pBlockAm += pBlockAm_Add; float pBlockRateSe = 0.0f; - float pBlockRateSe_Add = 0.0f; + float pBlockRateSe_Add = ability->GetAttr(kNHAT_pBlockRateSe); pBlockRateSe += pBlockRateSe_Add; float pBlockRateIn = 0.0f; - float pBlockRateIn_Add = 0.0f; + float pBlockRateIn_Add = ability->GetAttr(kNHAT_pBlockRateIn); pBlockRateIn = (1 + pBlockRateIn) * (1 + pBlockRateIn_Add) - 1; float pBlock = 0.0f; @@ -241,16 +245,17 @@ public: void RecalcCrit() { + auto ability = owner_.Get()->GetAbility(); float pCritAm = 0.0f; - float pCritAm_Add = 0.0f; + float pCritAm_Add = ability->GetAttr(kNHAT_pCritAm); pCritAm += pCritAm_Add; float pCritRateSe = 0.0f; - float pCritRateSe_Add = 0.0f; + float pCritRateSe_Add = ability->GetAttr(kNHAT_pCritRateSe); pCritRateSe += pCritRateSe_Add; float pCritRateIn = 0.0f; - float pCritRateIn_Add = 0.0f; + float pCritRateIn_Add = ability->GetAttr(kNHAT_pCritRateIn); pCritRateIn = (1 + pCritRateIn) * (1 + pCritRateIn_Add) - 1; float pCrit = 0.0f;