aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Guilds
diff options
context:
space:
mode:
authorDDuarte <dnpd.dd@gmail.com>2014-09-03 01:34:57 +0100
committerDDuarte <dnpd.dd@gmail.com>2014-09-03 01:34:57 +0100
commit977592e1379fb47ab207a17b9ed0db090662bfee (patch)
treef6d1fd150d70234ea328e4c07b95dd425d4d7d9e /src/server/game/Guilds
parentb4c0d886d8693ad45c7d76f177ef1191eea7e288 (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.cpp22
-rw-r--r--src/server/game/Guilds/Guild.h9
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);