fix(Core/Spells): Fix all cases of client crash when pressing ESC after a spell being cast (#8497)

* cherry-pick commit (f765e8eb73)

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/8143

Co-Authored-By: Shauren <shauren.trinity@gmail.com>

Co-authored-by: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
Kitzunu
2021-10-14 20:32:30 +02:00
committed by GitHub
parent 476d085aa4
commit 118a555b06
2 changed files with 2 additions and 19 deletions

View File

@@ -4338,7 +4338,7 @@ void Spell::SendSpellStart()
uint32 castFlags = CAST_FLAG_HAS_TRAJECTORY;
if (((IsTriggered() && !m_spellInfo->IsAutoRepeatRangedSpell()) || m_triggeredByAuraSpell) && !m_spellInfo->IsChanneled())
if (((IsTriggered() && !m_spellInfo->IsAutoRepeatRangedSpell()) || m_triggeredByAuraSpell) && !m_cast_count && !m_spellInfo->IsChanneled())
castFlags |= CAST_FLAG_PENDING;
if (m_spellInfo->HasAttribute(SPELL_ATTR0_USES_RANGED_SLOT) || m_spellInfo->HasAttribute(SPELL_ATTR0_CU_NEEDS_AMMO_DATA))
@@ -4394,7 +4394,7 @@ void Spell::SendSpellGo()
uint32 castFlags = CAST_FLAG_UNKNOWN_9;
// triggered spells with spell visual != 0
if (((IsTriggered() && !m_spellInfo->IsAutoRepeatRangedSpell()) || m_triggeredByAuraSpell) && !m_spellInfo->IsChanneled())
if (((IsTriggered() && !m_spellInfo->IsAutoRepeatRangedSpell()) || m_triggeredByAuraSpell) && !m_cast_count && !m_spellInfo->IsChanneled())
castFlags |= CAST_FLAG_PENDING;
if (m_spellInfo->HasAttribute(SPELL_ATTR0_USES_RANGED_SLOT) || m_spellInfo->HasAttribute(SPELL_ATTR0_CU_NEEDS_AMMO_DATA))

View File

@@ -3454,16 +3454,6 @@ void SpellMgr::LoadDbcDataCorrections()
spellInfo->EffectMiscValueB[0] = 64;
});
ApplySpellFix({
45257, // Using Steam Tonk Controller
45440, // Steam Tonk Controller
60256, // Collect Sample
45634 // Neural Needle
}, [](SpellEntry* spellInfo)
{
spellInfo->AttributesEx4 &= ~SPELL_ATTR4_ALLOW_CAST_WHILE_CASTING; // Crashes client on pressing ESC
});
ApplySpellFix({
40244, // Simon Game Visual
40245, // Simon Game Visual
@@ -6782,7 +6772,6 @@ void SpellMgr::LoadDbcDataCorrections()
spellInfo->Effect[1] = SPELL_EFFECT_DUMMY;
spellInfo->EffectRadiusIndex[1] = spellInfo->EffectRadiusIndex[0];
spellInfo->EffectImplicitTargetA[1] = TARGET_UNIT_DEST_AREA_ENTRY;
spellInfo->AttributesEx4 &= ~SPELL_ATTR4_ALLOW_CAST_WHILE_CASTING;
});
// Still At It
@@ -7030,12 +7019,6 @@ void SpellMgr::LoadDbcDataCorrections()
spellInfo->AuraInterruptFlags &= ~AURA_INTERRUPT_FLAG_NOT_ABOVEWATER;
});
// Leading the Charge (13380), All Infra-Green bomber quests
ApplySpellFix({ 59059 }, [](SpellEntry* spellInfo)
{
spellInfo->AttributesEx4 &= ~SPELL_ATTR4_ALLOW_CAST_WHILE_CASTING;
});
// Dark Horizon (12664), Reunited (12663)
ApplySpellFix({ 52190 }, [](SpellEntry* spellInfo)
{