Конечный вариант, проверил - работает.
Код:
diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp
index f56885e..052bfaa 100644
--- a/src/game/UnitAuraProcHandler.cpp
+++ b/src/game/UnitAuraProcHandler.cpp
@@ -1004,6 +1004,45 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura
}
break;
}
+ case 71519:
+ case 71562:
+ {
+ if(((Player*)this)->HasSpellCooldown(dummySpell->Id))
+ return SPELL_AURA_PROC_FAILED;
+
+ switch(getClass())
+ {
+ case CLASS_WARRIOR:
+ case CLASS_DEATH_KNIGHT:
+ case CLASS_PALADIN:
+ {
+ uint32 proc_spells[] = {71491, 71492, 71484, 71559, 71560, 71561};
+ triggered_spell_id = (dummySpell->Id) == 71519 ? proc_spells[urand(0,2)] : proc_spells[urand(3,5)];
+ break;
+ }
+ case CLASS_ROGUE:
+ case CLASS_SHAMAN:
+ {
+ uint32 proc_spells[] = {71485, 71486, 71492, 71556, 71558, 71560};
+ triggered_spell_id = (dummySpell->Id == 71519) ? proc_spells[urand(0,2)] : proc_spells[urand(3,5)];
+ break;
+ }
+ case CLASS_HUNTER:
+ {
+ uint32 proc_spells[] = {71485, 71486, 71491, 71556, 71558, 71559};
+ triggered_spell_id = (dummySpell->Id) == 71519 ? proc_spells[urand(0,2)] : proc_spells[urand(3,5)];
+ break;
+ }
+ case CLASS_DRUID:
+ {
+ uint32 proc_spells[] = {71485, 71492, 71484, 71556, 71560, 71561};
+ triggered_spell_id = (dummySpell->Id) == 71519 ? proc_spells[urand(0,2)] : proc_spells[urand(3,5)];
+ break;
+ }
+ }
+ ((Player*)this)->AddSpellCooldown(dummySpell->Id, 0, time(NULL) + cooldown);
+ break;
+ }
}
break;
}