diff options
author | Shauren <shauren.trinity@gmail.com> | 2015-04-06 00:40:56 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2015-04-06 00:40:56 +0200 |
commit | 01cc5d8c05bbf2180d4577974b0e39cea7aed876 (patch) | |
tree | 7d687916bec244b5da08f1bf1698b64f16e9809f /src | |
parent | 38fcea46dad9445be791777be718619624934319 (diff) |
Core/PacketIO: Updated and enabled SMSG_SET_VEHICLE_REC_ID and SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA
* Implemented SMSG_MOVE_SET_VEHICLE_REC_ID and CMSG_MOVE_SET_VEHICLE_REC_ID_ACK
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 42 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 5 | ||||
-rw-r--r-- | src/server/game/Entities/Vehicle/Vehicle.h | 4 | ||||
-rw-r--r-- | src/server/game/Handlers/VehicleHandler.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Server/Packets/VehiclePackets.cpp | 41 | ||||
-rw-r--r-- | src/server/game/Server/Packets/VehiclePackets.h | 73 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Server/WorldSession.h | 6 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 5 | ||||
-rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp | 6 |
12 files changed, 168 insertions, 37 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 5ee5e64a7b2..61be7790ba1 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1012,7 +1012,7 @@ void Creature::SaveToDB(uint32 mapid, uint32 spawnMask, uint32 phaseMask) data.npcflag = npcflag; data.unit_flags = unit_flags; data.dynamicflags = dynamicflags; - + data.phaseid = GetDBPhase() > 0 ? GetDBPhase() : 0; data.phaseGroup = GetDBPhase() < 0 ? abs(GetDBPhase()) : 0; @@ -1220,7 +1220,7 @@ bool Creature::CreateFromProto(ObjectGuid::LowType guidlow, uint32 entry, Creatu } if (vehId) - CreateVehicleKit(vehId, entry); + CreateVehicleKit(vehId, entry, true); return true; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f2f0bc0f5a0..7e49ddd007d 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -97,6 +97,7 @@ #include "QuestPackets.h" #include "LootPackets.h" #include "TradePackets.h" +#include "VehiclePackets.h" #define ZONE_UPDATE_INTERVAL (1*IN_MILLISECONDS) @@ -20298,8 +20299,7 @@ bool Player::RemoveMItem(ObjectGuid::LowType id) void Player::SendOnCancelExpectedVehicleRideAura() { - WorldPacket data(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, 0); - GetSession()->SendPacket(&data); + GetSession()->SendPacket(WorldPackets::Vehicle::OnCancelExpectedRideVehicleAura().Write()); } void Player::PetSpellInitialize() diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index f0e4907a93a..6a17f4f34c8 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -67,6 +67,7 @@ #include "MovementPackets.h" #include "CombatPackets.h" #include "CombatLogPackets.h" +#include "VehiclePackets.h" #include <cmath> @@ -9546,12 +9547,6 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry) { if (CreateVehicleKit(VehicleId, creatureEntry)) { - // Send others that we now have a vehicle - WorldPacket data(SMSG_SET_VEHICLE_REC_ID, GetPackGUID().size() + 4); - data << GetPackGUID(); - data << uint32(VehicleId); - SendMessageToSet(&data, true); - player->SendOnCancelExpectedVehicleRideAura(); // mounts can also have accessories @@ -9595,11 +9590,6 @@ void Unit::Dismount() // dismount as a vehicle if (GetTypeId() == TYPEID_PLAYER && GetVehicleKit()) { - // Send other players that we are no longer a vehicle - data.Initialize(SMSG_SET_VEHICLE_REC_ID, 8 + 4); - data << GetPackGUID(); - data << uint32(0); - ToPlayer()->SendMessageToSet(&data, true); // Remove vehicle from player RemoveVehicleKit(); } @@ -11585,7 +11575,7 @@ void Unit::RemoveFromWorld() { m_duringRemoveFromWorld = true; if (IsVehicle()) - RemoveVehicleKit(); + RemoveVehicleKit(true); RemoveCharmAuras(); RemoveBindSightAuras(); @@ -14163,7 +14153,7 @@ Unit* Unit::GetRedirectThreatTarget() return !_redirectThreadInfo.GetTargetGUID().IsEmpty() ? ObjectAccessor::GetUnit(*this, _redirectThreadInfo.GetTargetGUID()) : NULL; } -bool Unit::CreateVehicleKit(uint32 id, uint32 creatureEntry) +bool Unit::CreateVehicleKit(uint32 id, uint32 creatureEntry, bool loading /*= false*/) { VehicleEntry const* vehInfo = sVehicleStore.LookupEntry(id); if (!vehInfo) @@ -14172,14 +14162,21 @@ bool Unit::CreateVehicleKit(uint32 id, uint32 creatureEntry) m_vehicleKit = new Vehicle(this, vehInfo, creatureEntry); m_updateFlag |= UPDATEFLAG_VEHICLE; m_unitTypeMask |= UNIT_MASK_VEHICLE; + + if (!loading) + SendSetVehicleRecId(id); + return true; } -void Unit::RemoveVehicleKit() +void Unit::RemoveVehicleKit(bool onRemoveFromWorld /*= false*/) { if (!m_vehicleKit) return; + if (!onRemoveFromWorld) + SendSetVehicleRecId(0); + m_vehicleKit->Uninstall(); delete m_vehicleKit; @@ -15972,6 +15969,23 @@ bool Unit::SetHover(bool enable, bool packetOnly /*= false*/) return true; } +void Unit::SendSetVehicleRecId(uint32 vehicleId) +{ + if (Player* player = ToPlayer()) + { + WorldPackets::Vehicle::MoveSetVehicleRecID moveSetVehicleRec; + moveSetVehicleRec.MoverGUID = GetGUID(); + moveSetVehicleRec.SequenceIndex = m_movementCounter++; + moveSetVehicleRec.VehicleRecID = vehicleId; + player->SendDirectMessage(moveSetVehicleRec.Write()); + } + + WorldPackets::Vehicle::SetVehicleRecID setVehicleRec; + setVehicleRec.VehicleGUID = GetGUID(); + setVehicleRec.VehicleRecID = vehicleId; + SendMessageToSet(setVehicleRec.Write(), true); +} + void Unit::SendSetPlayHoverAnim(bool enable) { ObjectGuid guid = GetGUID(); diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index b009fd7a0a6..87254d230e6 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1661,6 +1661,7 @@ class Unit : public WorldObject bool SetWaterWalking(bool enable, bool packetOnly = false); bool SetFeatherFall(bool enable, bool packetOnly = false); bool SetHover(bool enable, bool packetOnly = false); + void SendSetVehicleRecId(uint32 vehicleId); void SetInFront(WorldObject const* target); void SetFacingTo(float ori); @@ -2135,8 +2136,8 @@ class Unit : public WorldObject friend class VehicleJoinEvent; bool IsAIEnabled, NeedChangeAI; ObjectGuid LastCharmerGUID; - bool CreateVehicleKit(uint32 id, uint32 creatureEntry); - void RemoveVehicleKit(); + bool CreateVehicleKit(uint32 id, uint32 creatureEntry, bool loading = false); + void RemoveVehicleKit(bool onRemoveFromWorld = false); Vehicle* GetVehicleKit()const { return m_vehicleKit; } Vehicle* GetVehicle() const { return m_vehicle; } void SetVehicle(Vehicle* vehicle) { m_vehicle = vehicle; } diff --git a/src/server/game/Entities/Vehicle/Vehicle.h b/src/server/game/Entities/Vehicle/Vehicle.h index edec4ea161c..a08827cf9a9 100644 --- a/src/server/game/Entities/Vehicle/Vehicle.h +++ b/src/server/game/Entities/Vehicle/Vehicle.h @@ -32,10 +32,10 @@ class VehicleJoinEvent; class Vehicle : public TransportBase { protected: - friend bool Unit::CreateVehicleKit(uint32 id, uint32 creatureEntry); + friend bool Unit::CreateVehicleKit(uint32 id, uint32 creatureEntry, bool); Vehicle(Unit* unit, VehicleEntry const* vehInfo, uint32 creatureEntry); - friend void Unit::RemoveVehicleKit(); + friend void Unit::RemoveVehicleKit(bool); ~Vehicle(); public: diff --git a/src/server/game/Handlers/VehicleHandler.cpp b/src/server/game/Handlers/VehicleHandler.cpp index 54d574f31c4..475aabe01d0 100644 --- a/src/server/game/Handlers/VehicleHandler.cpp +++ b/src/server/game/Handlers/VehicleHandler.cpp @@ -22,6 +22,7 @@ #include "Player.h" #include "Log.h" #include "ObjectAccessor.h" +#include "VehiclePackets.h" void WorldSession::HandleDismissControlledVehicle(WorldPacket &recvData) { @@ -188,3 +189,8 @@ void WorldSession::HandleRequestVehicleExit(WorldPacket& /*recvData*/) } } } + +void WorldSession::HandleMoveSetVehicleRecAck(WorldPackets::Vehicle::MoveSetVehicleRecIdAck& setVehicleRecIdAck) +{ + GetPlayer()->ValidateMovementInfo(&setVehicleRecIdAck.Data.movementInfo); +} diff --git a/src/server/game/Server/Packets/VehiclePackets.cpp b/src/server/game/Server/Packets/VehiclePackets.cpp new file mode 100644 index 00000000000..1118b440697 --- /dev/null +++ b/src/server/game/Server/Packets/VehiclePackets.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "VehiclePackets.h" + +WorldPacket const* WorldPackets::Vehicle::MoveSetVehicleRecID::Write() +{ + _worldPacket << MoverGUID; + _worldPacket << uint32(SequenceIndex); + _worldPacket << int32(VehicleRecID); + + return &_worldPacket; +} + +void WorldPackets::Vehicle::MoveSetVehicleRecIdAck::Read() +{ + _worldPacket >> Data; + _worldPacket >> VehicleRecID; +} + +WorldPacket const* WorldPackets::Vehicle::SetVehicleRecID::Write() +{ + _worldPacket << VehicleGUID; + _worldPacket << int32(VehicleRecID); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/VehiclePackets.h b/src/server/game/Server/Packets/VehiclePackets.h new file mode 100644 index 00000000000..72206331720 --- /dev/null +++ b/src/server/game/Server/Packets/VehiclePackets.h @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef VehiclePackets_h__ +#define VehiclePackets_h__ + +#include "Packet.h" +#include "MovementPackets.h" + +namespace WorldPackets +{ + namespace Vehicle + { + + class MoveSetVehicleRecID final : public ServerPacket + { + public: + MoveSetVehicleRecID() : ServerPacket(SMSG_MOVE_SET_VEHICLE_REC_ID) { } + + WorldPacket const* Write() override; + + ObjectGuid MoverGUID; + uint32 SequenceIndex = 0; + int32 VehicleRecID = 0; + }; + + class MoveSetVehicleRecIdAck final : public ClientPacket + { + public: + MoveSetVehicleRecIdAck(WorldPacket&& packet) : ClientPacket(CMSG_MOVE_SET_VEHICLE_REC_ID_ACK, std::move(packet)) { } + + void Read() override; + + WorldPackets::Movement::MovementAck Data; + int32 VehicleRecID = 0; + }; + + class SetVehicleRecID final : public ServerPacket + { + public: + SetVehicleRecID() : ServerPacket(SMSG_SET_VEHICLE_REC_ID) { } + + WorldPacket const* Write() override; + + ObjectGuid VehicleGUID; + int32 VehicleRecID = 0; + }; + + class OnCancelExpectedRideVehicleAura final : public ServerPacket + { + public: + OnCancelExpectedRideVehicleAura() : ServerPacket(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, 0) { } + + WorldPacket const* Write() override { return &_worldPacket; } + }; + } +} + +#endif // VehiclePackets_h__ diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index b09bcc64d4c..01a31a313c3 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -46,6 +46,7 @@ #include "Packets/TalentPackets.h" #include "Packets/TradePackets.h" #include "Packets/TicketPackets.h" +#include "Packets/VehiclePackets.h" #include "Packets/WhoPackets.h" template<class PacketClass, void(WorldSession::*HandlerFunction)(PacketClass&)> @@ -547,7 +548,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_MOVE_SET_PITCH, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes); DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_RELATIVE_POSITION, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::Handle_NULL ); DEFINE_HANDLER(CMSG_MOVE_SET_RUN_MODE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes); - DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SET_VEHICLE_REC_ID_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::Handle_NULL ); + DEFINE_HANDLER(CMSG_MOVE_SET_VEHICLE_REC_ID_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Vehicle::MoveSetVehicleRecIdAck, &WorldSession::HandleMoveSetVehicleRecAck); DEFINE_HANDLER(CMSG_MOVE_SET_WALK_MODE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes); DEFINE_OPCODE_HANDLER_OLD(CMSG_MOVE_SPLINE_DONE, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveSplineDoneOpcode ); DEFINE_HANDLER(CMSG_MOVE_START_ASCEND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Movement::ClientPlayerMovement, &WorldSession::HandleMovementOpcodes); @@ -1349,7 +1350,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_TURN_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_VEHICLE_REC_ID, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_VEHICLE_REC_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_WALK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_WATER_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SKIP_TIME, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); @@ -1410,7 +1411,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_MONEY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_NOTIFY_RECEIVED_MAIL, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_OFFER_PETITION_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ON_MONSTER_MOVE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_CONTAINER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_LFG_DUNGEON_FINDER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1615,7 +1616,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_SPELL_CHARGES, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TASK_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TIME_ZONE_INFORMATION, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_VEHICLE_REC_ID, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_VEHICLE_REC_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_BANK, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_MAILBOX, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 9067ebe491c..c02c3d412aa 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -414,6 +414,11 @@ namespace WorldPackets class TradeStatus; } + namespace Vehicle + { + class MoveSetVehicleRecIdAck; + } + namespace Who { class WhoIsRequest; @@ -942,6 +947,7 @@ class WorldSession void HandleSetActiveMoverOpcode(WorldPackets::Movement::SetActiveMover& packet); void HandleDismissControlledVehicle(WorldPacket& recvData); void HandleRequestVehicleExit(WorldPacket& recvData); + void HandleMoveSetVehicleRecAck(WorldPackets::Vehicle::MoveSetVehicleRecIdAck& setVehicleRecIdAck); void HandleChangeSeatsOnControlledVehicle(WorldPacket& recvData); void HandleMoveTimeSkippedOpcode(WorldPacket& recvData); diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 83e9dcbc2ef..e1dd5505eab 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5415,11 +5415,6 @@ void AuraEffect::HandleAuraSetVehicle(AuraApplication const* aurApp, uint8 mode, if (target->GetTypeId() != TYPEID_PLAYER) return; - WorldPacket data(SMSG_SET_VEHICLE_REC_ID, target->GetPackGUID().size() + 4); - data << target->GetPackGUID(); - data << uint32(apply ? vehicleId : 0); - target->SendMessageToSet(&data, true); - if (apply) target->ToPlayer()->SendOnCancelExpectedVehicleRideAura(); } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp index 3150c089108..432a61b6279 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp @@ -745,12 +745,6 @@ class npc_gunship : public CreatureScript if (isVictory) { cannon->CastSpell(cannon, SPELL_EJECT_ALL_PASSENGERS_BELOW_ZERO, TRIGGERED_FULL_MASK); - - WorldPacket data(SMSG_SET_VEHICLE_REC_ID, cannon->GetPackGUID().size() + 4); - data << cannon->GetPackGUID(); - data << uint32(0); - cannon->SendMessageToSet(&data, true); - cannon->RemoveVehicleKit(); } else |