diff options
author | linencloth <none@none> | 2010-12-28 05:01:31 +0100 |
---|---|---|
committer | linencloth <none@none> | 2010-12-28 05:01:31 +0100 |
commit | bff48d88adcda81cfa0fdb9ae9a80c086b372968 (patch) | |
tree | 7338cc2c77dc30d2cdf6cae11fdf4418c538fb97 | |
parent | 2ecb9eec8b8bbd118431c4f799e3253f0aaefd75 (diff) |
Core/CharacterDatabaseCleaner: Implement PersistentCharacterCleanFlags config value which can prevent specific cleaning flags from being disabled after a cleanup
--HG--
branch : trunk
-rw-r--r-- | src/server/game/Tools/CharacterDatabaseCleaner.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/World/World.cpp | 1 | ||||
-rwxr-xr-x | src/server/game/World/World.h | 1 | ||||
-rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 11 |
4 files changed, 14 insertions, 1 deletions
diff --git a/src/server/game/Tools/CharacterDatabaseCleaner.cpp b/src/server/game/Tools/CharacterDatabaseCleaner.cpp index 75fe2fb18fd..96e1d690213 100644 --- a/src/server/game/Tools/CharacterDatabaseCleaner.cpp +++ b/src/server/game/Tools/CharacterDatabaseCleaner.cpp @@ -55,7 +55,7 @@ void CharacterDatabaseCleaner::CleanDatabase() if (flags & CLEANING_FLAG_QUESTSTATUS) CleanCharacterQuestStatus(); - CharacterDatabase.DirectExecute("UPDATE worldstates SET value = 0 WHERE entry = 20004"); + CharacterDatabase.DirectPExecute("UPDATE worldstates SET value = value & %u WHERE entry = 20004", sWorld->getIntConfig(CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS)); sLog->outString(">> Cleaned character database in %u ms", GetMSTimeDiffToNow(oldMSTime)); sLog->outString(); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 9e799513955..14fc52ec294 100755 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -568,6 +568,7 @@ void World::LoadConfigSettings(bool reload) } m_bool_configs[CONFIG_ADDON_CHANNEL] = sConfig->GetBoolDefault("AddonChannel", true); m_bool_configs[CONFIG_CLEAN_CHARACTER_DB] = sConfig->GetBoolDefault("CleanCharacterDB", false); + m_int_configs[CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS] = sConfig->GetIntDefault("PersistentCharacterCleanFlags", 0); m_int_configs[CONFIG_CHAT_CHANNEL_LEVEL_REQ] = sConfig->GetIntDefault("ChatLevelReq.Channel", 1); m_int_configs[CONFIG_CHAT_WHISPER_LEVEL_REQ] = sConfig->GetIntDefault("ChatLevelReq.Whisper", 1); m_int_configs[CONFIG_CHAT_SAY_LEVEL_REQ] = sConfig->GetIntDefault("ChatLevelReq.Say", 1); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 5e2b29d6b9d..ce0afcb203a 100755 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -308,6 +308,7 @@ enum WorldIntConfigs CONFIG_MAX_RESULTS_LOOKUP_COMMANDS, CONFIG_DB_PING_INTERVAL, CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION, + CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS, INT_CONFIG_VALUE_COUNT }; diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 618553cee3d..188d6d800a6 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -379,6 +379,17 @@ MapUpdate.Threads = 1 CleanCharacterDB = 0 # +# PersistentCharacterCleanFlags +# Description: Determines the character clean flags that remain set after cleanups. +# This is a bitmask value, check /doc/CharacterDBCleanup.txt for more +# information. +# Example: 14 - (Cleaning up skills, talents and spells will remain enabled after the +# next cleanup) +# Default: 0 - (All cleanup methods will be disabled after the next cleanup) + +PersistentCharacterCleanFlags = 0 + +# ################################################################################################### ################################################################################################### |