diff options
author | Shauren <shauren.trinity@gmail.com> | 2012-09-07 14:39:19 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2012-09-07 14:39:19 +0200 |
commit | 6ca7a7b78d2e08d9eae4b38d18ef7303c19acd82 (patch) | |
tree | 08b5f306b8f62d50795c9076d98f9b358ad7ed58 /src/server/game/Handlers/GuildHandler.cpp | |
parent | 19b400761d011b920de808c80265225096eda7fb (diff) |
Core/Guilds: Implemented basic guild leveling (no player statistics/reputation)
Diffstat (limited to 'src/server/game/Handlers/GuildHandler.cpp')
-rwxr-xr-x | src/server/game/Handlers/GuildHandler.cpp | 73 |
1 files changed, 53 insertions, 20 deletions
diff --git a/src/server/game/Handlers/GuildHandler.cpp b/src/server/game/Handlers/GuildHandler.cpp index b3c2d4ae030..06536a90db3 100755 --- a/src/server/game/Handlers/GuildHandler.cpp +++ b/src/server/game/Handlers/GuildHandler.cpp @@ -645,32 +645,33 @@ void WorldSession::HandleSetGuildBankTabText(WorldPacket& recvData) guild->SetBankTabText(tabId, text); } -void WorldSession::HandleGuildQueryXPOpcode(WorldPacket& recvData) +void WorldSession::HandleGuildQueryXPOpcode(WorldPacket& recvPacket) { sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_QUERY_GUILD_XP"); ObjectGuid guildGuid; - guildGuid[2] = recvData.ReadBit(); - guildGuid[1] = recvData.ReadBit(); - guildGuid[0] = recvData.ReadBit(); - guildGuid[5] = recvData.ReadBit(); - guildGuid[4] = recvData.ReadBit(); - guildGuid[7] = recvData.ReadBit(); - guildGuid[6] = recvData.ReadBit(); - guildGuid[3] = recvData.ReadBit(); - - recvData.ReadByteSeq(guildGuid[7]); - recvData.ReadByteSeq(guildGuid[2]); - recvData.ReadByteSeq(guildGuid[3]); - recvData.ReadByteSeq(guildGuid[6]); - recvData.ReadByteSeq(guildGuid[1]); - recvData.ReadByteSeq(guildGuid[5]); - recvData.ReadByteSeq(guildGuid[0]); - recvData.ReadByteSeq(guildGuid[4]); + guildGuid[2] = recvPacket.ReadBit(); + guildGuid[1] = recvPacket.ReadBit(); + guildGuid[0] = recvPacket.ReadBit(); + guildGuid[5] = recvPacket.ReadBit(); + guildGuid[4] = recvPacket.ReadBit(); + guildGuid[7] = recvPacket.ReadBit(); + guildGuid[6] = recvPacket.ReadBit(); + guildGuid[3] = recvPacket.ReadBit(); + + recvPacket.ReadByteSeq(guildGuid[7]); + recvPacket.ReadByteSeq(guildGuid[2]); + recvPacket.ReadByteSeq(guildGuid[3]); + recvPacket.ReadByteSeq(guildGuid[6]); + recvPacket.ReadByteSeq(guildGuid[1]); + recvPacket.ReadByteSeq(guildGuid[5]); + recvPacket.ReadByteSeq(guildGuid[0]); + recvPacket.ReadByteSeq(guildGuid[4]); - //if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid)) - // guild->Send SMSG_GUILD_XP + if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid)) + if (guild->IsMember(_player->GetGUID())) + guild->SendGuildXP(this); } void WorldSession::HandleGuildSetRankPermissionsOpcode(WorldPacket& recvPacket) @@ -741,3 +742,35 @@ void WorldSession::HandleGuildRequestPartyState(WorldPacket& recvData) if (Guild* guild = sGuildMgr->GetGuildByGuid(guildGuid)) guild->HandleGuildPartyRequest(this); } + +void WorldSession::HandleGuildRequestMaxDailyXP(WorldPacket& recvPacket) +{ + ObjectGuid guid; + guid[0] = recvPacket.ReadBit(); + guid[3] = recvPacket.ReadBit(); + guid[5] = recvPacket.ReadBit(); + guid[1] = recvPacket.ReadBit(); + guid[4] = recvPacket.ReadBit(); + guid[6] = recvPacket.ReadBit(); + guid[7] = recvPacket.ReadBit(); + guid[2] = recvPacket.ReadBit(); + + recvPacket.ReadByteSeq(guid[7]); + recvPacket.ReadByteSeq(guid[4]); + recvPacket.ReadByteSeq(guid[3]); + recvPacket.ReadByteSeq(guid[5]); + recvPacket.ReadByteSeq(guid[1]); + recvPacket.ReadByteSeq(guid[2]); + recvPacket.ReadByteSeq(guid[6]); + recvPacket.ReadByteSeq(guid[0]); + + if (Guild* guild = sGuildMgr->GetGuildByGuid(guid)) + { + if (guild->IsMember(_player->GetGUID())) + { + WorldPacket data(SMSG_GUILD_MAX_DAILY_XP, 8); + data << uint64(sWorld->getIntConfig(CONFIG_GUILD_DAILY_XP_CAP)); + SendPacket(&data); + } + } +} |