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 | |
| parent | 19b400761d011b920de808c80265225096eda7fb (diff) | |
Core/Guilds: Implemented basic guild leveling (no player statistics/reputation)
Diffstat (limited to 'src/server/game/Handlers')
| -rw-r--r-- | src/server/game/Handlers/CharacterHandler.cpp | 3 | ||||
| -rwxr-xr-x | src/server/game/Handlers/GuildHandler.cpp | 73 |
2 files changed, 55 insertions, 21 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 6609ef55494..f3f21c40002 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -928,12 +928,13 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder) pCurrChar->SetInGuild(fields[0].GetUInt32()); pCurrChar->SetRank(fields[1].GetUInt8()); if (Guild* guild = sGuildMgr->GetGuildById(pCurrChar->GetGuildId())) - pCurrChar->SetUInt32Value(PLAYER_GUILDLEVEL, guild->GetLevel()); + pCurrChar->SetGuildLevel(guild->GetLevel()); } else if (pCurrChar->GetGuildId()) // clear guild related fields in case wrong data about non existed membership { pCurrChar->SetInGuild(0); pCurrChar->SetRank(0); + pCurrChar->SetGuildLevel(0); } data.Initialize(SMSG_LEARNED_DANCE_MOVES, 4+4); 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); + } + } +} |
