
The only problem I have though is if I try to add Greater Blessing to it, the player recasts the blessing (using up the reagents) instead of dealing with the proc and giving the required mana/rage etc.
I've used WAmadeus's Cut to the Chase fix as a template to my coding. Found that very inspiring
Any suggestions to how I could fix the problem with the Greater Blessing or a better way to get the stam/stre to apply ?
Im all for learning so any help/pointers would be great

PaladinSpells.cpp
bool BlessingOfSanctuary(uint32 i, Aura *pAura, bool apply) { Unit *target = pAura->GetTarget(); if( target == NULL ) return true; if (apply) { target->AddProcTriggerSpell(pAura->GetSpellProto(), pAura->GetSpellProto(), pAura->m_casterGuid, pAura->GetSpellProto()->procChance, PROC_ON_BLOCK_VICTIM | PROC_ON_DODGE_VICTIM | PROC_ON_MELEE_ATTACK_VICTIM, 0, NULL, NULL); } else target->RemoveProcTriggerSpell(pAura->GetSpellId(), pAura->m_casterGuid); return true; } void SetupPaladinSpells(ScriptMgr * mgr) { mgr->register_dummy_aura(20911, &BlessingOfSanctuary); }
SpellProc_Paladin.cpp
class BlessingOfSanctuaryProc : public SpellProc { SPELL_PROC_FACTORY_FUNCTION(BlessingOfSanctuaryProc); bool DoEffect(Unit *victim, SpellEntry *CastingSpell, uint32 dmg, uint32 abs) { Aura *aura = mTarget->FindAuraByNameHash(SPELL_HASH_BLESSING_OF_SANCTUARY); if (aura) { switch(mTarget->GetPowerType()) { case POWER_TYPE_FOCUS: case POWER_TYPE_ENERGY: break; case POWER_TYPE_RAGE: mTarget->CastSpell(mTarget->GetGUID(), 57320, true); // Rage break; case POWER_TYPE_RUNIC_POWER: mTarget->CastSpell(mTarget->GetGUID(), 57321, true); // Runic power break; default: mTarget->CastSpell(mTarget->GetGUID(), 57319, true); // Mana } } return true; } }; void SpellProcMgr::SetupPaladin() { AddByNameHash( SPELL_HASH_BLESSING_OF_SANCTUARY, &BlessingOfSanctuaryProc::Create ); }
Hackfixes.cpp - Not really happy with this as I had to heavily overwrite to apply the stam/stre buff. Any sugestions here would be great
sp = dbcSpell.LookupEntryForced( 20911 ); if( sp != NULL ) { sp->Effect[1] = SPELL_EFFECT_APPLY_AURA; sp->Effect[2] = SPELL_EFFECT_APPLY_AURA; sp->EffectDieSides[2] = 1; sp->EffectBasePoints[2] = 9; sp->EffectImplicitTargetA[1] = EFF_TARGET_SINGLE_FRIEND; sp->EffectImplicitTargetA[2] = EFF_TARGET_SINGLE_FRIEND; sp->EffectApplyAuraName[1] = SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE; sp->EffectApplyAuraName[2] = SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE; sp->EffectMiscValue[1] = 2; }