Core/Guilds: Implemented basic guild leveling (no player statistics/reputation)

This commit is contained in:
Shauren
2012-09-07 14:39:19 +02:00
parent 19b400761d
commit 6ca7a7b78d
21 changed files with 464 additions and 103 deletions

View File

@@ -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();
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();
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]);
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);
}
}
}