Выходит вот так ?
PHP код:
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 67fe692..9911b3d 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -9008,8 +9008,31 @@ void SpellAuraHolder::HandleSpellSpecificBoosts(bool apply)
break;
}
case SPELLFAMILY_ROGUE:
+ {
+ // remove debuf savage combat
+ if (GetSpellProto()->SpellFamilyFlags & UI64LIT(0x0008000010014000))
+ {
+ // search poison
+ bool found = false;
+ Unit::SpellAuraHolderMap const& auras = m_target->GetSpellAuraHolderMap();
+ for (Unit::SpellAuraHolderMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
+ {
+ uint32 flags1 = m_target->HasAuraState(AURA_STATE_DEADLY_POISON);
+ if (itr->second->GetSpellProto()->SpellFamilyName == SPELLFAMILY_ROGUE && (flags1 & (0x80000)))
+ {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found)
+ {
+ m_target->RemoveAurasDueToSpell(58684); // Savage Combat rank 1
+ m_target->RemoveAurasDueToSpell(58683); // Savage Combat rank 2
+ }
+ }
// Sprint (skip non player casted spells by category)
- if (GetSpellProto()->SpellFamilyFlags & UI64LIT(0x0000000000000040) && GetSpellProto()->Category == 44)
+ else if (GetSpellProto()->SpellFamilyFlags & UI64LIT(0x0000000000000040) && GetSpellProto()->Category == 44)
{
if(!apply || m_target->HasAura(58039)) // Glyph of Blurred Speed
spellId1 = 61922; // Sprint (waterwalk)
@@ -9019,6 +9042,7 @@ void SpellAuraHolder::HandleSpellSpecificBoosts(bool apply)
else
return;
break;
+ }
case SPELLFAMILY_HUNTER:
{
switch (GetId())