diff --git a/Source/Game/Entities/Vehicle.cs b/Source/Game/Entities/Vehicle.cs index 8d76da27c..34cf78614 100644 --- a/Source/Game/Entities/Vehicle.cs +++ b/Source/Game/Entities/Vehicle.cs @@ -42,7 +42,7 @@ namespace Game.Entities // Set or remove correct flags based on available seats. Will overwrite db data (if wrong). if (UsableSeatNum != 0) _me.SetNpcFlag(_me.IsTypeId(TypeId.Player) ? NPCFlags.PlayerVehicle : NPCFlags.SpellClick); - else + else if(unit.m_unitData.InteractSpellID == 0) _me.RemoveNpcFlag(_me.IsTypeId(TypeId.Player) ? NPCFlags.PlayerVehicle : NPCFlags.SpellClick); InitMovementInfoForBase(); diff --git a/Source/Game/Spells/Auras/AuraEffect.cs b/Source/Game/Spells/Auras/AuraEffect.cs index e38c59260..c387e3d5e 100644 --- a/Source/Game/Spells/Auras/AuraEffect.cs +++ b/Source/Game/Spells/Auras/AuraEffect.cs @@ -4961,13 +4961,23 @@ namespace Game.Spells int vehicleId = GetMiscValue(); + target.RemoveVehicleKit(); + if (apply) { if (!target.CreateVehicleKit((uint)vehicleId, 0)) return; } - else if (target.GetVehicleKit() != null) - target.RemoveVehicleKit(); + else + { + Creature creature = target.ToCreature(); + if (creature != null) + { + uint originalVehicleId = creature.GetCreatureTemplate().VehicleId; + if (originalVehicleId != 0) + creature.CreateVehicleKit(originalVehicleId, creature.GetEntry()); + } + } if (!target.IsTypeId(TypeId.Player)) return;