From fcc371e4532c38a82b9fe0316a3ace2ce43c0cd9 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sun, 10 Oct 2021 01:01:41 +0200 Subject: [PATCH] Core/Spells: fixed mounting summoned vehicles if the seat id is o --- src/server/game/Spells/SpellEffects.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 1f40d9c23e..d611534586 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1864,6 +1864,7 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) extraArgs.PrivateObjectOwner = privateObjectOwner; uint32 summonCount = 1; + bool useHardcodedRideSpell = false; if (uint8 const* parameter = sObjectMgr->GetSummonPropertiesParameter(properties->ID)) { @@ -1878,8 +1879,11 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) summonCount = std::max(damage, 1); break; case SummonPropertiesParamType::SeatNumber: - if (damage > 0 && damage < MAX_VEHICLE_SEATS) + if (damage < MAX_VEHICLE_SEATS) + { + useHardcodedRideSpell = true; extraArgs.SeatNumber = damage; + } break; case SummonPropertiesParamType::RideSpell: if (sSpellMgr->GetSpellInfo(damage)) @@ -1918,7 +1922,7 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) if (summonCount == 1 && summon->IsVehicle()) { - if (extraArgs.SeatNumber) + if (useHardcodedRideSpell) m_originalCaster->CastSpell(summon, VEHICLE_SPELL_RIDE_HARDCODED, CastSpellExtraArgs(true).AddSpellBP0(extraArgs.SeatNumber)); else if (extraArgs.RideSpell) m_originalCaster->CastSpell(summon, extraArgs.RideSpell, true);