diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index 93664b759..36006c803 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -1443,6 +1443,8 @@ void AchievementGlobalMgr::LoadAchievementReferenceList() void AchievementGlobalMgr::LoadAchievementCriteriaData() { + m_criteriaDataMap.clear(); // need for reload case + QueryResult *result = WorldDatabase.Query("SELECT criteria_id, type, value1, value2 FROM achievement_criteria_data"); if(!result) @@ -1535,7 +1537,7 @@ void AchievementGlobalMgr::LoadCompletedAchievements() void AchievementGlobalMgr::LoadRewards() { - m_achievementRewards.clear(); // need for reload case + m_achievementRewards.clear(); // need for reload case // 0 1 2 3 4 5 6 QueryResult *result = WorldDatabase.Query("SELECT entry, title_A, title_H, item, sender, subject, text FROM achievement_reward"); @@ -1551,6 +1553,7 @@ void AchievementGlobalMgr::LoadRewards() return; } + uint32 count = 0; barGoLink bar(result->GetRowCount()); do @@ -1634,13 +1637,14 @@ void AchievementGlobalMgr::LoadRewards() } m_achievementRewards[entry] = reward; + ++count; } while (result->NextRow()); delete result; sLog.outString(); - sLog.outString( ">> Loaded %lu achievement reward locale strings", (unsigned long)m_achievementRewardLocales.size() ); + sLog.outString( ">> Loaded %u achievement rewards", count ); } void AchievementGlobalMgr::LoadRewardLocales() diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 1293f6128..b75d99a37 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -359,6 +359,7 @@ ChatCommand * ChatHandler::getCommandTable() static ChatCommand reloadCommandTable[] = { { "all", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllCommand, "", NULL }, + { "all_achievement",SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllAchievementCommand,"", NULL }, { "all_area", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllAreaCommand, "", NULL }, { "all_loot", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllLootCommand, "", NULL }, { "all_npc", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllNpcCommand, "", NULL }, @@ -370,6 +371,8 @@ ChatCommand * ChatHandler::getCommandTable() { "config", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadConfigCommand, "", NULL }, + { "achievement_criteria_data", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAchievementCriteriaDataCommand, "", NULL }, + { "achievement_reward", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAchievementRewardCommand, "", NULL }, { "areatrigger_tavern", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAreaTriggerTavernCommand, "", NULL }, { "areatrigger_teleport", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAreaTriggerTeleportCommand, "", NULL }, { "areatrigger_involvedrelation",SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestAreaTriggersCommand, "", NULL }, @@ -389,6 +392,7 @@ ChatCommand * ChatHandler::getCommandTable() { "gameobject_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGameObjectScriptsCommand, "", NULL }, { "item_enchantment_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadItemEnchantementsCommand, "", NULL }, { "item_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesItemCommand, "", NULL }, + { "locales_achievement_reward", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesAchievementRewardCommand,"", NULL }, { "locales_creature", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesCreatureCommand, "", NULL }, { "locales_gameobject", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesGameobjectCommand, "", NULL }, { "locales_item", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesItemCommand, "", NULL }, diff --git a/src/game/Chat.h b/src/game/Chat.h index 615ed6450..86f340499 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -270,6 +270,7 @@ class ChatHandler bool HandleQuestComplete(const char * args); bool HandleReloadAllCommand(const char* args); + bool HandleReloadAllAchievementCommand(const char* args); bool HandleReloadAllAreaCommand(const char* args); bool HandleReloadAllItemCommand(const char* args); bool HandleReloadAllLootCommand(const char* args); @@ -281,6 +282,8 @@ class ChatHandler bool HandleReloadConfigCommand(const char* args); + bool HandleReloadAchievementCriteriaDataCommand(const char* args); + bool HandleReloadAchievementRewardCommand(const char* args); bool HandleReloadAreaTriggerTavernCommand(const char* args); bool HandleReloadAreaTriggerTeleportCommand(const char* args); bool HandleReloadEventScriptsCommand(const char* args); @@ -294,6 +297,7 @@ class ChatHandler bool HandleReloadGOQuestRelationsCommand(const char* args); bool HandleReloadGOQuestInvRelationsCommand(const char* args); bool HandleReloadItemEnchantementsCommand(const char* args); + bool HandleReloadLocalesAchievementRewardCommand(const char* args); bool HandleReloadLocalesCreatureCommand(const char* args); bool HandleReloadLocalesGameobjectCommand(const char* args); bool HandleReloadLocalesItemCommand(const char* args); diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 8c9bbc483..95a26dde5 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -55,6 +55,7 @@ bool ChatHandler::HandleReloadAllCommand(const char*) { HandleReloadSkillFishingBaseLevelCommand(""); + HandleReloadAllAchievementCommand(""); HandleReloadAllAreaCommand(""); HandleReloadAllLootCommand(""); HandleReloadAllNpcCommand(""); @@ -70,6 +71,13 @@ bool ChatHandler::HandleReloadAllCommand(const char*) return true; } +bool ChatHandler::HandleReloadAllAchievementCommand(const char*) +{ + HandleReloadAchievementCriteriaDataCommand(""); + HandleReloadAchievementRewardCommand(""); + return true; +} + bool ChatHandler::HandleReloadAllAreaCommand(const char*) { //HandleReloadQuestAreaTriggersCommand(""); -- reloaded in HandleReloadAllQuestCommand @@ -155,6 +163,7 @@ bool ChatHandler::HandleReloadAllItemCommand(const char*) bool ChatHandler::HandleReloadAllLocalesCommand(const char* /*args*/) { + HandleReloadLocalesAchievementRewardCommand("a"); HandleReloadLocalesCreatureCommand("a"); HandleReloadLocalesGameobjectCommand("a"); HandleReloadLocalesItemCommand("a"); @@ -173,6 +182,22 @@ bool ChatHandler::HandleReloadConfigCommand(const char* /*args*/) return true; } +bool ChatHandler::HandleReloadAchievementCriteriaDataCommand(const char*) +{ + sLog.outString( "Re-Loading Additional Achievement Criteria Data..." ); + achievementmgr.LoadAchievementCriteriaData(); + SendGlobalSysMessage("DB table `achievement_criteria_data` reloaded."); + return true; +} + +bool ChatHandler::HandleReloadAchievementRewardCommand(const char*) +{ + sLog.outString( "Re-Loading Achievement Reward Data..." ); + achievementmgr.LoadRewards(); + SendGlobalSysMessage("DB table `achievement_reward` reloaded."); + return true; +} + bool ChatHandler::HandleReloadAreaTriggerTavernCommand(const char*) { sLog.outString( "Re-Loading Tavern Area Triggers..." ); @@ -670,6 +695,14 @@ bool ChatHandler::HandleReloadGameTeleCommand(const char* /*arg*/) return true; } +bool ChatHandler::HandleReloadLocalesAchievementRewardCommand(const char*) +{ + sLog.outString( "Re-Loading Locales Achievement Reward Data..." ); + achievementmgr.LoadRewardLocales(); + SendGlobalSysMessage("DB table `locales_achievement_reward` reloaded."); + return true; +} + bool ChatHandler::HandleReloadLocalesCreatureCommand(const char* /*arg*/) { sLog.outString( "Re-Loading Locales Creature ..."); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 2c74292ce..02c1186f7 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7627" + #define REVISION_NR "7628" #endif // __REVISION_NR_H__