diff options
| author | DDuarte <dnpd.dd@gmail.com> | 2014-09-03 01:34:57 +0100 |
|---|---|---|
| committer | DDuarte <dnpd.dd@gmail.com> | 2014-09-03 01:34:57 +0100 |
| commit | 977592e1379fb47ab207a17b9ed0db090662bfee (patch) | |
| tree | f6d1fd150d70234ea328e4c07b95dd425d4d7d9e /src/server/game/Guilds | |
| parent | b4c0d886d8693ad45c7d76f177ef1191eea7e288 (diff) | |
Core/Net: Implement sending guild challenges rewards and counts
CMSG_GUILD_REQUEST_CHALLENGE_UPDATE & SMSG_GUILD_CHALLENGE_UPDATED
Partial implementation, guild challenges are not being tracked yet
Diffstat (limited to 'src/server/game/Guilds')
| -rw-r--r-- | src/server/game/Guilds/Guild.cpp | 22 | ||||
| -rw-r--r-- | src/server/game/Guilds/Guild.h | 9 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 8cfa6a4e681..31ba9ca2809 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -2156,6 +2156,28 @@ void Guild::HandleGuildPartyRequest(WorldSession* session) TC_LOG_DEBUG("guild", "SMSG_GUILD_PARTY_STATE_RESPONSE [%s]", session->GetPlayerInfo().c_str()); } +void Guild::HandleGuildRequestChallengeUpdate(WorldSession* session) +{ + WorldPacket data(SMSG_GUILD_CHALLENGE_UPDATED, 4 * GUILD_CHALLENGES_TYPES * 5); + + for (int i = 0; i < GUILD_CHALLENGES_TYPES; ++i) + data << uint32(GuildChallengeXPReward[i]); + + for (int i = 0; i < GUILD_CHALLENGES_TYPES; ++i) + data << uint32(GuildChallengeGoldReward[i]); + + for (int i = 0; i < GUILD_CHALLENGES_TYPES; ++i) + data << uint32(GuildChallengesPerWeek[i]); + + for (int i = 0; i < GUILD_CHALLENGES_TYPES; ++i) + data << uint32(GuildChallengeMaxLevelGoldReward[i]); + + for (int i = 0; i < GUILD_CHALLENGES_TYPES; ++i) + data << uint32(0); /// @todo current count + + session->SendPacket(&data); +} + void Guild::SendEventLog(WorldSession* session) const { WorldPacket data(SMSG_GUILD_EVENT_LOG_QUERY_RESULT, 1 + m_eventLog->GetSize() * (1 + 8 + 4)); diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index c8ee4d7b0a8..47f1d65757d 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -268,6 +268,14 @@ struct GuildReward uint32 const MinNewsItemLevel[MAX_CONTENT] = { 61, 90, 200, 353 }; +// Guild Challenge +#define GUILD_CHALLENGES_TYPES 4 + +const uint32 GuildChallengeGoldReward[GUILD_CHALLENGES_TYPES] = { 0, 250, 1000, 500 }; +const uint32 GuildChallengeMaxLevelGoldReward[GUILD_CHALLENGES_TYPES] = { 0, 125, 500, 250 }; +const uint32 GuildChallengeXPReward[GUILD_CHALLENGES_TYPES] = { 0, 300000, 3000000, 1500000 }; +const uint32 GuildChallengesPerWeek[GUILD_CHALLENGES_TYPES] = { 0, 7, 1, 3 }; + // Emblem info class EmblemInfo { @@ -798,6 +806,7 @@ public: void HandleDisband(WorldSession* session); void HandleGuildPartyRequest(WorldSession* session); void HandleNewsSetSticky(WorldSession* session, uint32 newsId, bool sticky); + void HandleGuildRequestChallengeUpdate(WorldSession* session); void UpdateMemberData(Player* player, uint8 dataid, uint32 value); void OnPlayerStatusChange(Player* player, uint32 flag, bool state); |
