diff --git a/src/game/CreatureAIRegistry.h b/src/game/CreatureAIRegistry.h index 97dee0225..fbff134f6 100644 --- a/src/game/CreatureAIRegistry.h +++ b/src/game/CreatureAIRegistry.h @@ -21,6 +21,6 @@ namespace AIRegistry { - void Initialize(void) override; + void Initialize(void); } #endif diff --git a/src/game/Map.cpp b/src/game/Map.cpp index f79c6c665..5c71b0bbb 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -891,9 +891,7 @@ void Map::SendInitSelf(Player* player) // attach to player data current transport data if (Transport* transport = player->GetTransport()) - { transport->BuildCreateUpdateBlockForPlayer(&data, player); - } // build data for self presence in world at own client (one time for map) player->BuildCreateUpdateBlockForPlayer(&data, player); @@ -939,6 +937,11 @@ void Map::SendInitTransports(Player* player) WorldPacket packet; transData.BuildPacket(&packet); + + // Prevent sending transport maps in player update object + if (packet.ReadUInt16() != player->GetMapId()) + return; + player->GetSession()->SendPacket(&packet); } @@ -962,6 +965,11 @@ void Map::SendRemoveTransports(Player* player) WorldPacket packet; transData.BuildPacket(&packet); + + // Prevent sending transport maps in player update object + if (packet.ReadUInt16() != player->GetMapId()) + return; + player->GetSession()->SendPacket(&packet); } diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 5e16a5048..61aa04c09 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -9184,7 +9184,7 @@ void SpellAuraHolder::BuildUpdatePacket(WorldPacket& data) const data << uint32(GetId()); uint8 auraFlags = GetAuraFlags(); - data << uint8(auraFlags); + data << uint16(auraFlags); data << uint8(GetAuraLevel()); uint32 stackCount = m_procCharges ? m_procCharges * m_stackAmount : m_stackAmount; diff --git a/src/game/Transports.cpp b/src/game/Transports.cpp index 9aa1d2956..ebb53daaf 100644 --- a/src/game/Transports.cpp +++ b/src/game/Transports.cpp @@ -556,6 +556,11 @@ void Transport::UpdateForMap(Map const* targetMap) BuildCreateUpdateBlockForPlayer(&transData, itr->getSource()); WorldPacket packet; transData.BuildPacket(&packet); + + // Prevent sending transport maps in player update object + if (packet.ReadUInt16() != itr->getSource()->GetMapId()) + return; + itr->getSource()->SendDirectMessage(&packet); } } @@ -568,8 +573,16 @@ void Transport::UpdateForMap(Map const* targetMap) transData.BuildPacket(&out_packet); for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr) + { if (this != itr->getSource()->GetTransport()) + { + // Prevent sending transport maps in player update object + if (out_packet.ReadUInt16() != itr->getSource()->GetMapId()) + return; + itr->getSource()->SendDirectMessage(&out_packet); + } + } } } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 5b8f6892c..e720f324e 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "0026" + #define REVISION_NR "0027" #endif // __REVISION_NR_H__