for shadowdance i tried this on aura 275:
// only check at first call, Stealth auras are already removed at second call
// for now, ignore triggered spells
if( strict && !m_IsTriggeredSpell)
{
bool checkForm = true;
// Ignore form req aura
Unit::AuraList const& ignore = m_caster->GetAurasByType(SPELL_AURA_MOD_IGNORE_SHAPESHIFT);
for(Unit::AuraList::const_iterator i = ignore.begin(); i != ignore.end(); ++i)
{
if (!(*i)->isAffectedOnSpell(m_spellInfo))
continue;
checkForm = false;
+ if(m_caster->HasAura(51713)){
+ checkForm = false;
+ }
break;
}
if (checkForm)
{
// Cannot be used in this stance/form
SpellCastResult shapeError = GetErrorAtShapeshiftedCast(m_spellInfo, m_caster->m_form);
if(shapeError != SPELL_CAST_OK)
return shapeError;
if ((m_spellInfo->Attributes & SPELL_ATTR_ONLY_STEALTHED) && !(m_caster->HasStealthAura())){
return SPELL_FAILED_ONLY_STEALTHED;
}
}
}
in this way, if the rogue has the aura active when i try to cast something out stealth, i have check form==fasle so it shouldn't check if i have stealth, but i still can't cast anything, don't work.
it's very strange because i can't find another return SPELL_FAILED_ONLY_STEALTHED; in the core, so i'm quite stuck.
Probably client side check?