Core/LFG: implement weekly reward counter to limit the first dungeon rewards

* all default random rewards can be rewarded 7 times per week
* raid finder first reward can be rewarded once per week
* if completionsPerWeek = 0 the currency caps will limit the first rewards otherwise first rewards can be always rewarded
* random Cataclysm normal dungeons will now reward 140 Justice points instead of 150
* second reward for random Cataclysm normal dungeons will now reward gold only (need to verify this)
This commit is contained in:
Ovahlord
2018-04-18 15:09:49 +02:00
parent 3abbefeaf5
commit d9b12217c4
12 changed files with 195 additions and 74 deletions

View File

@@ -93,6 +93,11 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_DEL_RESET_CHARACTER_QUESTSTATUS_MONTHLY, "DELETE FROM character_queststatus_monthly", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_RESET_CHARACTER_QUESTSTATUS_SEASONAL_BY_EVENT, "DELETE FROM character_queststatus_seasonal WHERE event = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_CHARACTER_REWARDSTATUS_LFG, "SELECT dungeonId, rewardCount FROM character_rewardstatus_lfg WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_CHARACTER_REWARDSTATUS_LFG, "DELETE FROM character_rewardstatus_lfg WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_INS_CHARACTER_REWARDSTATUS_LFG, "INSERT INTO character_rewardstatus_lfg (guid, dungeonId, rewardCount) VALUES (?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_RESET_CHARACTER_REWARDSTATUS_LFG, "DELETE FROM character_rewardstatus_lfg", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_CHARACTER_REPUTATION, "SELECT faction, standing, flags FROM character_reputation WHERE guid = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_SEL_CHARACTER_INVENTORY, "SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, bag, slot, "
"item, itemEntry FROM character_inventory ci JOIN item_instance ii ON ci.item = ii.guid WHERE ci.guid = ? ORDER BY bag, slot", CONNECTION_ASYNC);

View File

@@ -82,6 +82,11 @@ enum CharacterDatabaseStatements : uint32
CHAR_DEL_RESET_CHARACTER_QUESTSTATUS_MONTHLY,
CHAR_DEL_RESET_CHARACTER_QUESTSTATUS_SEASONAL_BY_EVENT,
CHAR_SEL_CHARACTER_REWARDSTATUS_LFG,
CHAR_DEL_CHARACTER_REWARDSTATUS_LFG,
CHAR_INS_CHARACTER_REWARDSTATUS_LFG,
CHAR_DEL_RESET_CHARACTER_REWARDSTATUS_LFG,
CHAR_SEL_CHARACTER_REPUTATION,
CHAR_SEL_CHARACTER_INVENTORY,
CHAR_SEL_CHARACTER_ACTIONS,