From 9c7c62cc5e7033ebb9db47b20fc3d1fee83cd342 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Thu, 30 Dec 2010 23:40:20 +0100 Subject: Core/Vehicles: Send transport X,Y,Z offsets as floats instead of uint32, fixes a possible client crash. Thanks to j4r0d --- src/server/game/Entities/Unit/Unit.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 5d653cf6d47..d3ca2ac39d2 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -418,11 +418,11 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint32 M void Unit::SendMonsterMoveTransport(Unit *vehicleOwner) { // TODO: Turn into BuildMonsterMoveTransport packet and allow certain variables (for npc movement aboard vehicles) - WorldPacket data(SMSG_MONSTER_MOVE_TRANSPORT, GetPackGUID().size()+vehicleOwner->GetPackGUID().size()); + WorldPacket data(SMSG_MONSTER_MOVE_TRANSPORT, GetPackGUID().size()+vehicleOwner->GetPackGUID().size() + 47); data.append(GetPackGUID()); data.append(vehicleOwner->GetPackGUID()); data << int8(GetTransSeat()); - data << uint8(0); // unk boolean + data << uint8(0); // unk boolean data << GetPositionX() - vehicleOwner->GetPositionX(); data << GetPositionY() - vehicleOwner->GetPositionY(); data << GetPositionZ() - vehicleOwner->GetPositionZ(); @@ -431,10 +431,10 @@ void Unit::SendMonsterMoveTransport(Unit *vehicleOwner) data << GetTransOffsetO(); // facing angle? data << uint32(SPLINEFLAG_TRANSPORT); data << uint32(0); // move time - data << uint32(1); - data << uint32(GetTransOffsetX()); - data << uint32(GetTransOffsetY()); - data << uint32(GetTransOffsetZ()); + data << uint32(1); // amount of waypoints + data << GetTransOffsetX(); + data << GetTransOffsetY(); + data << GetTransOffsetZ(); SendMessageToSet(&data, true); } -- cgit v1.2.3