Pelf

Pelf block 1 patch

Mar 1st, 2012
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.38 KB | None | 0 0
  1. diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
  2. index c12c1dd..913a38e 100644
  3. --- a/src/server/game/Entities/Player/Player.cpp
  4. +++ b/src/server/game/Entities/Player/Player.cpp
  5. @@ -5590,7 +5590,7 @@ float Player::GetTotalBaseModValue(BaseModGroup modGroup) const
  6.  
  7.  uint32 Player::GetShieldBlockValue() const
  8.  {
  9. -    float value = (m_auraBaseMod[SHIELD_BLOCK_VALUE][FLAT_MOD] + GetStat(STAT_STRENGTH) * 0.5f - 10)*m_auraBaseMod[SHIELD_BLOCK_VALUE][PCT_MOD];
  10. +   float value = 30.0f + m_auraBaseMod[SHIELD_BLOCK_VALUE][PCT_MOD]*100 - 100;
  11.  
  12.      value = (value < 0) ? 0 : value;
  13.  
  14. diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
  15. index 1dc416d..76f80b4 100644
  16. --- a/src/server/game/Entities/Unit/StatSystem.cpp
  17. +++ b/src/server/game/Entities/Unit/StatSystem.cpp
  18. @@ -76,7 +76,6 @@ bool Player::UpdateStats(Stats stat)
  19.      switch(stat)
  20.      {
  21.          case STAT_STRENGTH:
  22. -            UpdateShieldBlockValue();
  23.              break;
  24.          case STAT_AGILITY:
  25.              UpdateAllCritPercentages();
  26. diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
  27. index 30c137a..defacf3 100644
  28. --- a/src/server/game/Entities/Unit/Unit.cpp
  29. +++ b/src/server/game/Entities/Unit/Unit.cpp
  30. @@ -1123,12 +1123,10 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage *damageInfo, int32 dama
  31.                  // Spell weapon based damage CAN BE crit & blocked at same time
  32.                  if (blocked)
  33.                  {
  34. -                    damageInfo->blocked = pVictim->GetShieldBlockValue();
  35. +                    damageInfo->blocked = damageInfo->damage * pVictim->GetShieldBlockValue() / 100;
  36.                      //double blocked amount if block is critical
  37.                      if (pVictim->isBlockCritical())
  38.                          damageInfo->blocked += damageInfo->blocked;
  39. -                    if (damage < int32(damageInfo->blocked))
  40. -                        damageInfo->blocked = uint32(damage);
  41.                      damage -= damageInfo->blocked;
  42.                  }
  43.  
  44. @@ -1326,18 +1324,11 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
  45.                  damageInfo->TargetState = VICTIMSTATE_HIT;
  46.                  damageInfo->HitInfo    |= HITINFO_BLOCK;
  47.                  damageInfo->procEx     |= PROC_EX_BLOCK;
  48. -                damageInfo->blocked_amount = damageInfo->target->GetShieldBlockValue();
  49. +                damageInfo->blocked_amount = damageInfo->damage * damageInfo->target->GetShieldBlockValue() / 100;
  50.                  //double blocked amount if block is critical
  51.                  if (damageInfo->target->isBlockCritical())
  52.                      damageInfo->blocked_amount+=damageInfo->blocked_amount;
  53. -                if (damageInfo->blocked_amount >= damageInfo->damage)
  54. -                {
  55. -                    damageInfo->TargetState = VICTIMSTATE_BLOCKS;
  56. -                    damageInfo->blocked_amount = damageInfo->damage;
  57. -                    damageInfo->procEx |= PROC_EX_FULL_BLOCK;
  58. -                }
  59. -                else
  60. -                    damageInfo->procEx  |= PROC_EX_NORMAL_HIT;
  61. +               damageInfo->procEx  |= PROC_EX_NORMAL_HIT;
  62.                  damageInfo->damage      -= damageInfo->blocked_amount;
  63.                  damageInfo->cleanDamage += damageInfo->blocked_amount;
  64.              }
Advertisement
Add Comment
Please, Sign In to add comment