From afd439c64f7ff339b3f02f1dcea284075903b948 Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 28 Jan 2018 18:48:56 +1100 Subject: [PATCH] shouts now have correct behaviour --- .../Network/Handlers/PacketHandlers.cpp | 2 +- src/servers/sapphire_zone/Zone/Zone.cpp | 13 +++++++++++++ src/servers/sapphire_zone/Zone/Zone.h | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index 31495441..bd08e64a 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -516,7 +516,7 @@ void Core::Network::GameConnection::chatHandler( const Packets::GamePacket& inPa } case ChatType::Shout: { - player.getCurrentZone()->queueOutPacketForRange( player, 6000, chatPacket ); + player.getCurrentZone()->queueOutPacket( chatPacket ); break; } default: diff --git a/src/servers/sapphire_zone/Zone/Zone.cpp b/src/servers/sapphire_zone/Zone/Zone.cpp index 1b8cb402..9bda0d64 100644 --- a/src/servers/sapphire_zone/Zone/Zone.cpp +++ b/src/servers/sapphire_zone/Zone/Zone.cpp @@ -362,6 +362,19 @@ void Zone::queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t range, } } +void Zone::queueOutPacket( Network::Packets::GamePacketPtr pPacketEntry ) +{ + for( auto it = m_playerMap.begin(); it != m_playerMap.end(); ++it ) + { + auto pSession = g_serverZone.getSession( ( *it ).second->getId() ); + if( pSession ) + { + pPacketEntry->setValAt< uint32_t >( 0x08, ( *it ).second->getId() ); + pSession->getZoneConnection()->queueOutPacket( pPacketEntry ); + } + } +} + uint32_t Zone::getTerritoryId() { return m_territoryId; diff --git a/src/servers/sapphire_zone/Zone/Zone.h b/src/servers/sapphire_zone/Zone/Zone.h index c2caa2e3..2837b6ca 100644 --- a/src/servers/sapphire_zone/Zone/Zone.h +++ b/src/servers/sapphire_zone/Zone/Zone.h @@ -86,6 +86,8 @@ public: void queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t range, Network::Packets::GamePacketPtr pPacketEntry ); + void queueOutPacket( Network::Packets::GamePacketPtr pPacketEntry ); + virtual uint32_t getTerritoryId(); Common::RegionType getType() const;