bool MarkOfBlood(uint32 i, Aura* pAura, bool apply)
{
	Unit* target = pAura->GetTarget();

	if(apply)
		target->AddProcTriggerSpell(61607, pAura->GetSpellId(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, pAura->GetSpellProto()->procFlags, pAura->GetSpellProto()->procCharges, NULL, NULL);
	else if(target->GetAuraStackCount(49005) <= 1)
		target->RemoveProcTriggerSpell(61607, pAura->m_casterGuid);

	return true;
}
示例#2
0
bool PrayerOfMendingAura(uint8_t /*effectIndex*/, Aura* pAura, bool apply)
{
    Unit* target = pAura->GetTarget();

    if (apply)
        target->AddProcTriggerSpell(pAura->GetSpellInfo(), pAura->GetSpellInfo(), pAura->m_casterGuid, pAura->GetSpellInfo()->getProcChance(), PROC_ON_ANY_DAMAGE_VICTIM, pAura->GetSpellInfo()->getProcCharges(), NULL, NULL);
    else
    {
        int32 count = target->GetAuraStackCount(pAura->GetSpellId());
        if (count == 1)
            target->RemoveProcTriggerSpell(pAura->GetSpellId(), pAura->m_casterGuid);
    }

    return true;
}