diff options
| author | Nay <dnpd.dd@gmail.com> | 2011-12-22 19:53:47 +0000 |
|---|---|---|
| committer | Nay <dnpd.dd@gmail.com> | 2011-12-22 19:53:47 +0000 |
| commit | 090bb5a45e4b7608b57577c525a16416986a0b3e (patch) | |
| tree | 3ec450399aad187984b69897a8a9e667164c2cb7 /src/server/game/Guilds/Guild.cpp | |
| parent | 07293b55fc1f56c6e2fae59f4a49aa0fff30d162 (diff) | |
Core/Guild: Fix and enable SMSG_GUILD_QUERY_RESPONSE
- Update GuildEvents for 4.x (by Spp)
Diffstat (limited to 'src/server/game/Guilds/Guild.cpp')
| -rwxr-xr-x | src/server/game/Guilds/Guild.cpp | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index e7374a273dc..3c040b91e38 100755 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1227,10 +1227,11 @@ void Guild::HandleQuery(WorldSession* session) { WorldPacket data(SMSG_GUILD_QUERY_RESPONSE, 8 * 32 + 200); // Guess size - data << uint32(m_id); + data << uint64(GetGuid()); data << m_name; - for (uint8 i = 0 ; i < GUILD_RANKS_MAX_COUNT; ++i) // Alwayse show 10 ranks + // Rank name + for (uint8 i = 0; i < GUILD_RANKS_MAX_COUNT; ++i) // Always show 10 ranks { if (i < _GetRanksSize()) data << m_ranks[i].GetName(); @@ -1238,8 +1239,34 @@ void Guild::HandleQuery(WorldSession* session) data << uint8(0); // Empty string } + // Rank order of creation + for (uint8 i = 0; i < GUILD_RANKS_MAX_COUNT; ++i) + { + if (i < _GetRanksSize()) + data << uint32(i); + else + data << uint32(0); + } + + // Rank order of "importance" (sorting by rights) + Ranks ranks = m_ranks; + std::sort(ranks.begin(), ranks.end()); + Ranks::iterator it; + + for (uint8 i = 0; i < GUILD_RANKS_MAX_COUNT; ++i) + { + if (i < _GetRanksSize()) + { + it = std::find(ranks.begin(), ranks.end(), m_ranks[i]); + data << std::distance(ranks.begin(), it); + } + else + data << uint32(0); + } + m_emblemInfo.WritePacket(data); - data << uint32(0); // Something new in WotLK + + data << uint32(_GetRanksSize()); // Number of ranks used session->SendPacket(&data); sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent (SMSG_GUILD_QUERY_RESPONSE)"); @@ -2083,7 +2110,7 @@ bool Guild::AddMember(uint64 guid, uint8 rankId) uint32 lowguid = GUID_LOPART(guid); - // If rank was not passed, assing lowest possible rank + // If rank was not passed, assign lowest possible rank if (rankId == GUILD_RANK_NONE) rankId = _GetLowestRankId(); |
