From 227d5a9288db1200720444226320914ebcc8a216 Mon Sep 17 00:00:00 2001 From: xinef1 Date: Sun, 5 Feb 2017 22:24:23 +0100 Subject: Core/Spells: Corrected summon category SUMMON_CATEGORY_VEHICLE (#19052) --- src/server/game/Spells/SpellEffects.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 356d8115bb9..c4592477529 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2308,12 +2308,19 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) // The spell that this effect will trigger. It has SPELL_AURA_CONTROL_VEHICLE uint32 spellId = VEHICLE_SPELL_RIDE_HARDCODED; - SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(m_spellInfo->Effects[effIndex].CalcValue()); - if (spellInfo && spellInfo->HasAura(SPELL_AURA_CONTROL_VEHICLE)) - spellId = spellInfo->Id; + int32 basePoints = m_spellInfo->Effects[effIndex].CalcValue(); + if (basePoints > MAX_VEHICLE_SEATS) + { + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(basePoints); + if (spellInfo && spellInfo->HasAura(SPELL_AURA_CONTROL_VEHICLE)) + spellId = spellInfo->Id; + } - // Hard coded enter vehicle spell - m_originalCaster->CastSpell(summon, spellId, true); + // if we have small value, it indicates seat position + if (basePoints > 0 && basePoints < MAX_VEHICLE_SEATS) + m_originalCaster->CastCustomSpell(spellId, SPELLVALUE_BASE_POINT0, basePoints, summon, true); + else + m_originalCaster->CastSpell(summon, spellId, true); uint32 faction = properties->Faction; if (!faction) -- cgit v1.2.3