From f5c4935ec35d7b72e1df4769919da028f57552d6 Mon Sep 17 00:00:00 2001 From: DiSlord Date: Wed, 31 Dec 2008 01:12:18 +0300 Subject: [PATCH] [6990] Check creatures flags_extra for disable melee spells block/parry Signed-off-by: DiSlord --- src/game/Unit.cpp | 14 +++++++++++++- src/shared/revision_nr.h | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index f660b341e..f62caaac9 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -2163,6 +2163,12 @@ bool Unit::isSpellBlocked(Unit *pVictim, SpellEntry const *spellProto, WeaponAtt return false; } */ + + // Check creatures flags_extra for disable block + if(pVictim->GetTypeId()==TYPEID_UNIT && + ((Creature*)pVictim)->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_NO_BLOCK ) + return false; + float blockChance = GetUnitBlockChance(); blockChance += (GetWeaponSkillValue(attackType) - pVictim->GetMaxSkillValueForLevel() )*0.04; if (roll_chance_f(blockChance)) @@ -2257,7 +2263,13 @@ SpellMissInfo Unit::MeleeSpellHitResult(Unit *pVictim, SpellEntry const *spell) // Can`t parry canParry = false; } - + // Check creatures flags_extra for disable parry + if(pVictim->GetTypeId()==TYPEID_UNIT) + { + uint32 flagEx = ((Creature*)pVictim)->GetCreatureInfo()->flags_extra; + if( flagEx & CREATURE_FLAG_EXTRA_NO_PARRY ) + canParry = false; + } // Ignore combat result aura AuraList const& ignore = GetAurasByType(SPELL_AURA_IGNORE_COMBAT_RESULT); for(AuraList::const_iterator i = ignore.begin(); i != ignore.end(); ++i) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index b46aded87..8336887a8 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "6989" + #define REVISION_NR "6990" #endif // __REVISION_NR_H__