Open roc13x opened 12 years ago
Confirm this. I cannot reproduce too.
PD: roc13x see this please: https://github.com/ProjectSkyfire/SkyFireEMU/commit/2d29e7b8eaa42c1997cfc3597b712fe9cde86e29
The players cannot play battlegrounds by these crash.
for (Unit::AuraEffectList::const_iterator itr = auraList.begin(); itr != auraList.end(); ++itr)
{
if ((*itr)->GetSpellInfo()->Effects[(*itr)->GetEffIndex()].SpellClassMask.HasFlag(spell->GetSpellClassOptions()->SpellFamilyFlags))
return true;
}
Spell does not actualy need to have SpellClassOptions entry so _spell->GetSpellClassOptions()->SpellFamilyFlags_ can cause crash by pointing somewhere (over the rainbow). Instead of _spell->GetSpellClassOptions()->SpellFamilyFlags_ you should use _spell->SpellFamilyFlags_ that is initialized when SpellInfo is constructed.
so replace this:
for (Unit::AuraEffectList::const_iterator itr = auraList.begin(); itr != auraList.end(); ++itr)
{
if ((*itr)->GetSpellInfo()->Effects[(*itr)->GetEffIndex()].SpellClassMask.HasFlag(spell->GetSpellClassOptions()->SpellFamilyFlags))
return true;
}
by:
for (Unit::AuraEffectList::const_iterator itr = auraList.begin(); itr != auraList.end(); ++itr)
{
if ((*itr)->GetSpellInfo()->Effects[(*itr)->GetEffIndex()].SpellClassMask.HasFlag(spell->SpellFamilyFlags))
return true;
}
Thanks @NTX ^^ , I will try it.
Will give it a try and see how it runs, thanks!
@Walkum I'm not sure what causes those crashes, sorry. I'm not too well up on the minion system. That commit was just a hotfix for a frequent crash.
Full debug crashlog here: http://pastebin.com/qLt6ATee
Cannot reliably reproduce, seems to happen only sometimes