diff --git a/src/server/game/World/WorldConfig.cpp b/src/server/game/World/WorldConfig.cpp index a988610cd..5db780298 100644 --- a/src/server/game/World/WorldConfig.cpp +++ b/src/server/game/World/WorldConfig.cpp @@ -27,115 +27,115 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_ENABLE_SINFO_LOGIN, "Server.LoginInfo", 0); ///- Read all rates from the config file - SetConfigValue(RATE_HEALTH, "Rate.Health", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value > 0; }, "> 0"); - SetConfigValue(RATE_POWER_MANA, "Rate.Mana", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value > 0; }, "> 0"); - SetConfigValue(RATE_POWER_RAGE_INCOME, "Rate.Rage.Income", 1); - SetConfigValue(RATE_POWER_RAGE_LOSS, "Rate.Rage.Loss", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value > 0; }, "> 0"); - SetConfigValue(RATE_POWER_RUNICPOWER_INCOME, "Rate.RunicPower.Income", 1); - SetConfigValue(RATE_POWER_RUNICPOWER_LOSS, "Rate.RunicPower.Loss", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value > 0; }, "> 0"); - SetConfigValue(RATE_POWER_FOCUS, "Rate.Focus", 1); - SetConfigValue(RATE_POWER_ENERGY, "Rate.Energy", 1); + SetConfigValue(RATE_HEALTH, "Rate.Health", 1.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value > 0.0f; }, "> 0"); + SetConfigValue(RATE_POWER_MANA, "Rate.Mana", 1.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value > 0.0f; }, "> 0"); + SetConfigValue(RATE_POWER_RAGE_INCOME, "Rate.Rage.Income", 1.0f); + SetConfigValue(RATE_POWER_RAGE_LOSS, "Rate.Rage.Loss", 1.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value > 0.0f; }, "> 0"); + SetConfigValue(RATE_POWER_RUNICPOWER_INCOME, "Rate.RunicPower.Income", 1.0f); + SetConfigValue(RATE_POWER_RUNICPOWER_LOSS, "Rate.RunicPower.Loss", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value > 0.0f; }, "> 0"); + SetConfigValue(RATE_POWER_FOCUS, "Rate.Focus", 1.0f); + SetConfigValue(RATE_POWER_ENERGY, "Rate.Energy", 1.0f); - SetConfigValue(RATE_SKILL_DISCOVERY, "Rate.Skill.Discovery", 1); + SetConfigValue(RATE_SKILL_DISCOVERY, "Rate.Skill.Discovery", 1.0f); - SetConfigValue(RATE_DROP_ITEM_POOR, "Rate.Drop.Item.Poor", 1); - SetConfigValue(RATE_DROP_ITEM_NORMAL, "Rate.Drop.Item.Normal", 1); - SetConfigValue(RATE_DROP_ITEM_UNCOMMON, "Rate.Drop.Item.Uncommon", 1); - SetConfigValue(RATE_DROP_ITEM_RARE, "Rate.Drop.Item.Rare", 1); - SetConfigValue(RATE_DROP_ITEM_EPIC, "Rate.Drop.Item.Epic", 1); - SetConfigValue(RATE_DROP_ITEM_LEGENDARY, "Rate.Drop.Item.Legendary", 1); - SetConfigValue(RATE_DROP_ITEM_ARTIFACT, "Rate.Drop.Item.Artifact", 1); - SetConfigValue(RATE_DROP_ITEM_REFERENCED, "Rate.Drop.Item.Referenced", 1); - SetConfigValue(RATE_DROP_ITEM_REFERENCED_AMOUNT, "Rate.Drop.Item.ReferencedAmount", 1); - SetConfigValue(RATE_DROP_ITEM_GROUP_AMOUNT, "Rate.Drop.Item.GroupAmount", 1); - SetConfigValue(RATE_DROP_MONEY, "Rate.Drop.Money", 1); + SetConfigValue(RATE_DROP_ITEM_POOR, "Rate.Drop.Item.Poor", 1.0f); + SetConfigValue(RATE_DROP_ITEM_NORMAL, "Rate.Drop.Item.Normal", 1.0f); + SetConfigValue(RATE_DROP_ITEM_UNCOMMON, "Rate.Drop.Item.Uncommon", 1.0f); + SetConfigValue(RATE_DROP_ITEM_RARE, "Rate.Drop.Item.Rare", 1.0f); + SetConfigValue(RATE_DROP_ITEM_EPIC, "Rate.Drop.Item.Epic", 1.0f); + SetConfigValue(RATE_DROP_ITEM_LEGENDARY, "Rate.Drop.Item.Legendary", 1.0f); + SetConfigValue(RATE_DROP_ITEM_ARTIFACT, "Rate.Drop.Item.Artifact", 1.0f); + SetConfigValue(RATE_DROP_ITEM_REFERENCED, "Rate.Drop.Item.Referenced", 1.0f); + SetConfigValue(RATE_DROP_ITEM_REFERENCED_AMOUNT, "Rate.Drop.Item.ReferencedAmount", 1.0f); + SetConfigValue(RATE_DROP_ITEM_GROUP_AMOUNT, "Rate.Drop.Item.GroupAmount", 1.0f); + SetConfigValue(RATE_DROP_MONEY, "Rate.Drop.Money", 1.0f); - SetConfigValue(RATE_REWARD_QUEST_MONEY, "Rate.RewardQuestMoney", 1); - SetConfigValue(RATE_REWARD_BONUS_MONEY, "Rate.RewardBonusMoney", 1); - SetConfigValue(RATE_XP_KILL, "Rate.XP.Kill", 1); - SetConfigValue(RATE_XP_BG_KILL_AV, "Rate.XP.BattlegroundKillAV", 1); - SetConfigValue(RATE_XP_BG_KILL_WSG, "Rate.XP.BattlegroundKillWSG", 1); - SetConfigValue(RATE_XP_BG_KILL_AB, "Rate.XP.BattlegroundKillAB", 1); - SetConfigValue(RATE_XP_BG_KILL_EOTS, "Rate.XP.BattlegroundKillEOTS", 1); - SetConfigValue(RATE_XP_BG_KILL_SOTA, "Rate.XP.BattlegroundKillSOTA", 1); - SetConfigValue(RATE_XP_BG_KILL_IC, "Rate.XP.BattlegroundKillIC", 1); - SetConfigValue(RATE_XP_QUEST, "Rate.XP.Quest", 1); - SetConfigValue(RATE_XP_QUEST_DF, "Rate.XP.Quest.DF", 1); - SetConfigValue(RATE_XP_EXPLORE, "Rate.XP.Explore", 1); - SetConfigValue(RATE_XP_PET, "Rate.XP.Pet", 1); - SetConfigValue(RATE_XP_PET_NEXT_LEVEL, "Rate.Pet.LevelXP", 0); - SetConfigValue(RATE_REPAIRCOST, "Rate.RepairCost", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0; }, ">= 0"); + SetConfigValue(RATE_REWARD_QUEST_MONEY, "Rate.RewardQuestMoney", 1.0f); + SetConfigValue(RATE_REWARD_BONUS_MONEY, "Rate.RewardBonusMoney", 1.0f); + SetConfigValue(RATE_XP_KILL, "Rate.XP.Kill", 1.0f); + SetConfigValue(RATE_XP_BG_KILL_AV, "Rate.XP.BattlegroundKillAV", 1.0f); + SetConfigValue(RATE_XP_BG_KILL_WSG, "Rate.XP.BattlegroundKillWSG", 1.0f); + SetConfigValue(RATE_XP_BG_KILL_AB, "Rate.XP.BattlegroundKillAB", 1.0f); + SetConfigValue(RATE_XP_BG_KILL_EOTS, "Rate.XP.BattlegroundKillEOTS", 1.0f); + SetConfigValue(RATE_XP_BG_KILL_SOTA, "Rate.XP.BattlegroundKillSOTA", 1.0f); + SetConfigValue(RATE_XP_BG_KILL_IC, "Rate.XP.BattlegroundKillIC", 1.0f); + SetConfigValue(RATE_XP_QUEST, "Rate.XP.Quest", 1.0f); + SetConfigValue(RATE_XP_QUEST_DF, "Rate.XP.Quest.DF", 1.0f); + SetConfigValue(RATE_XP_EXPLORE, "Rate.XP.Explore", 1.0f); + SetConfigValue(RATE_XP_PET, "Rate.XP.Pet", 1.0f); + SetConfigValue(RATE_XP_PET_NEXT_LEVEL, "Rate.Pet.LevelXP", 0.05f); + SetConfigValue(RATE_REPAIRCOST, "Rate.RepairCost", 1.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0"); - SetConfigValue(RATE_SELLVALUE_ITEM_POOR, "Rate.SellValue.Item.Poor", 1); - SetConfigValue(RATE_SELLVALUE_ITEM_NORMAL, "Rate.SellValue.Item.Normal", 1); - SetConfigValue(RATE_SELLVALUE_ITEM_UNCOMMON, "Rate.SellValue.Item.Uncommon", 1); - SetConfigValue(RATE_SELLVALUE_ITEM_RARE, "Rate.SellValue.Item.Rare", 1); - SetConfigValue(RATE_SELLVALUE_ITEM_EPIC, "Rate.SellValue.Item.Epic", 1); - SetConfigValue(RATE_SELLVALUE_ITEM_LEGENDARY, "Rate.SellValue.Item.Legendary", 1); - SetConfigValue(RATE_SELLVALUE_ITEM_ARTIFACT, "Rate.SellValue.Item.Artifact", 1); - SetConfigValue(RATE_SELLVALUE_ITEM_HEIRLOOM, "Rate.SellValue.Item.Heirloom", 1); + SetConfigValue(RATE_SELLVALUE_ITEM_POOR, "Rate.SellValue.Item.Poor", 1.0f); + SetConfigValue(RATE_SELLVALUE_ITEM_NORMAL, "Rate.SellValue.Item.Normal", 1.0f); + SetConfigValue(RATE_SELLVALUE_ITEM_UNCOMMON, "Rate.SellValue.Item.Uncommon", 1.0f); + SetConfigValue(RATE_SELLVALUE_ITEM_RARE, "Rate.SellValue.Item.Rare", 1.0f); + SetConfigValue(RATE_SELLVALUE_ITEM_EPIC, "Rate.SellValue.Item.Epic", 1.0f); + SetConfigValue(RATE_SELLVALUE_ITEM_LEGENDARY, "Rate.SellValue.Item.Legendary", 1.0f); + SetConfigValue(RATE_SELLVALUE_ITEM_ARTIFACT, "Rate.SellValue.Item.Artifact", 1.0f); + SetConfigValue(RATE_SELLVALUE_ITEM_HEIRLOOM, "Rate.SellValue.Item.Heirloom", 1.0f); - SetConfigValue(RATE_BUYVALUE_ITEM_POOR, "Rate.BuyValue.Item.Poor", 1); - SetConfigValue(RATE_BUYVALUE_ITEM_NORMAL, "Rate.BuyValue.Item.Normal", 1); - SetConfigValue(RATE_BUYVALUE_ITEM_UNCOMMON, "Rate.BuyValue.Item.Uncommon", 1); - SetConfigValue(RATE_BUYVALUE_ITEM_RARE, "Rate.BuyValue.Item.Rare", 1); - SetConfigValue(RATE_BUYVALUE_ITEM_EPIC, "Rate.BuyValue.Item.Epic", 1); - SetConfigValue(RATE_BUYVALUE_ITEM_LEGENDARY, "Rate.BuyValue.Item.Legendary", 1); - SetConfigValue(RATE_BUYVALUE_ITEM_ARTIFACT, "Rate.BuyValue.Item.Artifact", 1); - SetConfigValue(RATE_BUYVALUE_ITEM_HEIRLOOM, "Rate.BuyValue.Item.Heirloom", 1); + SetConfigValue(RATE_BUYVALUE_ITEM_POOR, "Rate.BuyValue.Item.Poor", 1.0f); + SetConfigValue(RATE_BUYVALUE_ITEM_NORMAL, "Rate.BuyValue.Item.Normal", 1.0f); + SetConfigValue(RATE_BUYVALUE_ITEM_UNCOMMON, "Rate.BuyValue.Item.Uncommon", 1.0f); + SetConfigValue(RATE_BUYVALUE_ITEM_RARE, "Rate.BuyValue.Item.Rare", 1.0f); + SetConfigValue(RATE_BUYVALUE_ITEM_EPIC, "Rate.BuyValue.Item.Epic", 1.0f); + SetConfigValue(RATE_BUYVALUE_ITEM_LEGENDARY, "Rate.BuyValue.Item.Legendary", 1.0f); + SetConfigValue(RATE_BUYVALUE_ITEM_ARTIFACT, "Rate.BuyValue.Item.Artifact", 1.0f); + SetConfigValue(RATE_BUYVALUE_ITEM_HEIRLOOM, "Rate.BuyValue.Item.Heirloom", 1.0f); - SetConfigValue(RATE_REPUTATION_GAIN, "Rate.Reputation.Gain", 1); - SetConfigValue(RATE_REPUTATION_LOWLEVEL_KILL, "Rate.Reputation.LowLevel.Kill", 1); - SetConfigValue(RATE_REPUTATION_LOWLEVEL_QUEST, "Rate.Reputation.LowLevel.Quest", 1); - SetConfigValue(RATE_REPUTATION_RECRUIT_A_FRIEND_BONUS, "Rate.Reputation.RecruitAFriendBonus", 0); - SetConfigValue(RATE_CREATURE_NORMAL_DAMAGE, "Rate.Creature.Normal.Damage", 1); - SetConfigValue(RATE_CREATURE_ELITE_ELITE_DAMAGE, "Rate.Creature.Elite.Elite.Damage", 1); - SetConfigValue(RATE_CREATURE_ELITE_RAREELITE_DAMAGE, "Rate.Creature.Elite.RAREELITE.Damage", 1); - SetConfigValue(RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE, "Rate.Creature.Elite.WORLDBOSS.Damage", 1); - SetConfigValue(RATE_CREATURE_ELITE_RARE_DAMAGE, "Rate.Creature.Elite.RARE.Damage", 1); - SetConfigValue(RATE_CREATURE_NORMAL_HP, "Rate.Creature.Normal.HP", 1); - SetConfigValue(RATE_CREATURE_ELITE_ELITE_HP, "Rate.Creature.Elite.Elite.HP", 1); - SetConfigValue(RATE_CREATURE_ELITE_RAREELITE_HP, "Rate.Creature.Elite.RAREELITE.HP", 1); - SetConfigValue(RATE_CREATURE_ELITE_WORLDBOSS_HP, "Rate.Creature.Elite.WORLDBOSS.HP", 1); - SetConfigValue(RATE_CREATURE_ELITE_RARE_HP, "Rate.Creature.Elite.RARE.HP", 1); - SetConfigValue(RATE_CREATURE_NORMAL_SPELLDAMAGE, "Rate.Creature.Normal.SpellDamage", 1); - SetConfigValue(RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE, "Rate.Creature.Elite.Elite.SpellDamage", 1); - SetConfigValue(RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE, "Rate.Creature.Elite.RAREELITE.SpellDamage", 1); - SetConfigValue(RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE, "Rate.Creature.Elite.WORLDBOSS.SpellDamage", 1); - SetConfigValue(RATE_CREATURE_ELITE_RARE_SPELLDAMAGE, "Rate.Creature.Elite.RARE.SpellDamage", 1); - SetConfigValue(RATE_CREATURE_AGGRO, "Rate.Creature.Aggro", 1); - SetConfigValue(RATE_REST_INGAME, "Rate.Rest.InGame", 1); - SetConfigValue(RATE_REST_OFFLINE_IN_TAVERN_OR_CITY, "Rate.Rest.Offline.InTavernOrCity", 1); - SetConfigValue(RATE_REST_OFFLINE_IN_WILDERNESS, "Rate.Rest.Offline.InWilderness", 1); - SetConfigValue(RATE_REST_MAX_BONUS, "Rate.Rest.MaxBonus", 1); - SetConfigValue(RATE_DAMAGE_FALL, "Rate.Damage.Fall", 1); - SetConfigValue(RATE_AUCTION_TIME, "Rate.Auction.Time", 1); - SetConfigValue(RATE_AUCTION_DEPOSIT, "Rate.Auction.Deposit", 1); - SetConfigValue(RATE_AUCTION_CUT, "Rate.Auction.Cut", 1); - SetConfigValue(RATE_HONOR, "Rate.Honor", 1); - SetConfigValue(RATE_ARENA_POINTS, "Rate.ArenaPoints", 1); - SetConfigValue(RATE_INSTANCE_RESET_TIME, "Rate.InstanceResetTime", 1); + SetConfigValue(RATE_REPUTATION_GAIN, "Rate.Reputation.Gain", 1.0f); + SetConfigValue(RATE_REPUTATION_LOWLEVEL_KILL, "Rate.Reputation.LowLevel.Kill", 1.0f); + SetConfigValue(RATE_REPUTATION_LOWLEVEL_QUEST, "Rate.Reputation.LowLevel.Quest", 1.0f); + SetConfigValue(RATE_REPUTATION_RECRUIT_A_FRIEND_BONUS, "Rate.Reputation.RecruitAFriendBonus", 0.1f); + SetConfigValue(RATE_CREATURE_NORMAL_DAMAGE, "Rate.Creature.Normal.Damage", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_ELITE_DAMAGE, "Rate.Creature.Elite.Elite.Damage", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_RAREELITE_DAMAGE, "Rate.Creature.Elite.RAREELITE.Damage", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_WORLDBOSS_DAMAGE, "Rate.Creature.Elite.WORLDBOSS.Damage", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_RARE_DAMAGE, "Rate.Creature.Elite.RARE.Damage", 1.0f); + SetConfigValue(RATE_CREATURE_NORMAL_HP, "Rate.Creature.Normal.HP", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_ELITE_HP, "Rate.Creature.Elite.Elite.HP", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_RAREELITE_HP, "Rate.Creature.Elite.RAREELITE.HP", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_WORLDBOSS_HP, "Rate.Creature.Elite.WORLDBOSS.HP", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_RARE_HP, "Rate.Creature.Elite.RARE.HP", 1.0f); + SetConfigValue(RATE_CREATURE_NORMAL_SPELLDAMAGE, "Rate.Creature.Normal.SpellDamage", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_ELITE_SPELLDAMAGE, "Rate.Creature.Elite.Elite.SpellDamage", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_RAREELITE_SPELLDAMAGE, "Rate.Creature.Elite.RAREELITE.SpellDamage", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_WORLDBOSS_SPELLDAMAGE, "Rate.Creature.Elite.WORLDBOSS.SpellDamage", 1.0f); + SetConfigValue(RATE_CREATURE_ELITE_RARE_SPELLDAMAGE, "Rate.Creature.Elite.RARE.SpellDamage", 1.0f); + SetConfigValue(RATE_CREATURE_AGGRO, "Rate.Creature.Aggro", 1.0f); + SetConfigValue(RATE_REST_INGAME, "Rate.Rest.InGame", 1.0f); + SetConfigValue(RATE_REST_OFFLINE_IN_TAVERN_OR_CITY, "Rate.Rest.Offline.InTavernOrCity", 1.0f); + SetConfigValue(RATE_REST_OFFLINE_IN_WILDERNESS, "Rate.Rest.Offline.InWilderness", 1.0f); + SetConfigValue(RATE_REST_MAX_BONUS, "Rate.Rest.MaxBonus", 1.5f); + SetConfigValue(RATE_DAMAGE_FALL, "Rate.Damage.Fall", 1.0f); + SetConfigValue(RATE_AUCTION_TIME, "Rate.Auction.Time", 1.0f); + SetConfigValue(RATE_AUCTION_DEPOSIT, "Rate.Auction.Deposit", 1.0f); + SetConfigValue(RATE_AUCTION_CUT, "Rate.Auction.Cut", 1.0f); + SetConfigValue(RATE_HONOR, "Rate.Honor", 1.0f); + SetConfigValue(RATE_ARENA_POINTS, "Rate.ArenaPoints", 1.0f); + SetConfigValue(RATE_INSTANCE_RESET_TIME, "Rate.InstanceResetTime", 1.0f); - SetConfigValue(RATE_MISS_CHANCE_MULTIPLIER_TARGET_CREATURE, "Rate.MissChanceMultiplier.TargetCreature", 11); - SetConfigValue(RATE_MISS_CHANCE_MULTIPLIER_TARGET_PLAYER, "Rate.MissChanceMultiplier.TargetPlayer", 7); + SetConfigValue(RATE_MISS_CHANCE_MULTIPLIER_TARGET_CREATURE, "Rate.MissChanceMultiplier.TargetCreature", 11.0f); + SetConfigValue(RATE_MISS_CHANCE_MULTIPLIER_TARGET_PLAYER, "Rate.MissChanceMultiplier.TargetPlayer", 7.0f); SetConfigValue(CONFIG_MISS_CHANCE_MULTIPLIER_ONLY_FOR_PLAYERS, "Rate.MissChanceMultiplier.OnlyAffectsPlayer", false); - SetConfigValue(RATE_TALENT, "Rate.Talent", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0; }, ">= 0"); - SetConfigValue(RATE_TALENT_PET, "Rate.Talent.Pet", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0; }, ">= 0"); + SetConfigValue(RATE_TALENT, "Rate.Talent", 1.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0"); + SetConfigValue(RATE_TALENT_PET, "Rate.Talent.Pet", 1.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0"); // Controls Player movespeed rate. - SetConfigValue(RATE_MOVESPEED_PLAYER, "Rate.MoveSpeed.Player", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0; }, ">= 0"); + SetConfigValue(RATE_MOVESPEED_PLAYER, "Rate.MoveSpeed.Player", 1.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0"); // Controls all npc movespeed rate. - SetConfigValue(RATE_MOVESPEED_NPC, "Rate.MoveSpeed.NPC", 1, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0; }, ">= 0"); + SetConfigValue(RATE_MOVESPEED_NPC, "Rate.MoveSpeed.NPC", 1.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0"); - SetConfigValue(RATE_CORPSE_DECAY_LOOTED, "Rate.Corpse.Decay.Looted", 0); + SetConfigValue(RATE_CORPSE_DECAY_LOOTED, "Rate.Corpse.Decay.Looted", 0.5f); - SetConfigValue(RATE_DURABILITY_LOSS_ON_DEATH, "DurabilityLoss.OnDeath", 10, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0 && value <= 100; }, ">= 0 && <= 100"); + SetConfigValue(RATE_DURABILITY_LOSS_ON_DEATH, "DurabilityLoss.OnDeath", 10.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f && value <= 100.0f; }, ">= 0 && <= 100"); - SetConfigValue(RATE_DURABILITY_LOSS_DAMAGE, "DurabilityLossChance.Damage", 0, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0; }, ">= 0"); - SetConfigValue(RATE_DURABILITY_LOSS_ABSORB, "DurabilityLossChance.Absorb", 0, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0; }, ">= 0"); - SetConfigValue(RATE_DURABILITY_LOSS_PARRY, "DurabilityLossChance.Parry", 0, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0; }, ">= 0"); - SetConfigValue(RATE_DURABILITY_LOSS_BLOCK, "DurabilityLossChance.Block", 0, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0; }, ">= 0"); + SetConfigValue(RATE_DURABILITY_LOSS_DAMAGE, "DurabilityLossChance.Damage", 0.5f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0"); + SetConfigValue(RATE_DURABILITY_LOSS_ABSORB, "DurabilityLossChance.Absorb", 0.5f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0"); + SetConfigValue(RATE_DURABILITY_LOSS_PARRY, "DurabilityLossChance.Parry", 0.05f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0"); + SetConfigValue(RATE_DURABILITY_LOSS_BLOCK, "DurabilityLossChance.Block", 0.05f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0"); ///- Read other configuration items from the config file @@ -157,7 +157,7 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_ALLOW_PLAYER_COMMANDS, "AllowPlayerCommands", 1); SetConfigValue(CONFIG_PRESERVE_CUSTOM_CHANNELS, "PreserveCustomChannels", false); SetConfigValue(CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION, "PreserveCustomChannelDuration", 14); - SetConfigValue(CONFIG_INTERVAL_SAVE, "PlayerSaveInterval", 15); + SetConfigValue(CONFIG_INTERVAL_SAVE, "PlayerSaveInterval", 900000); SetConfigValue(CONFIG_INTERVAL_DISCONNECT_TOLERANCE, "DisconnectToleranceInterval", 0); SetConfigValue(CONFIG_STATS_SAVE_ONLY_ON_LOGOUT, "PlayerSave.Stats.SaveOnlyOnLogout", true); @@ -165,7 +165,7 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_INTERVAL_MAPUPDATE, "MapUpdateInterval", 10, ConfigValueCache::Reloadable::Yes, [](uint32 const& value) { return value >= MIN_MAP_UPDATE_DELAY; }, ">= MIN_MAP_UPDATE_DELAY"); - SetConfigValue(CONFIG_INTERVAL_CHANGEWEATHER, "ChangeWeatherInterval", 10); + SetConfigValue(CONFIG_INTERVAL_CHANGEWEATHER, "ChangeWeatherInterval", 600000); SetConfigValue(CONFIG_PORT_WORLD, "WorldServerPort", 8085, ConfigValueCache::Reloadable::No); @@ -174,10 +174,10 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_SOCKET_TIMEOUTTIME_ACTIVE, "SocketTimeOutTimeActive", 60000); SetConfigValue(CONFIG_SESSION_ADD_DELAY, "SessionAddDelay", 10000); - SetConfigValue(CONFIG_GROUP_XP_DISTANCE, "MaxGroupXPDistance", 74); - SetConfigValue(CONFIG_MAX_RECRUIT_A_FRIEND_DISTANCE, "MaxRecruitAFriendBonusDistance", 100); + SetConfigValue(CONFIG_GROUP_XP_DISTANCE, "MaxGroupXPDistance", 74.0f); + SetConfigValue(CONFIG_MAX_RECRUIT_A_FRIEND_DISTANCE, "MaxRecruitAFriendBonusDistance", 100.0f); - SetConfigValue(CONFIG_SIGHT_MONSTER, "MonsterSight", 50); + SetConfigValue(CONFIG_SIGHT_MONSTER, "MonsterSight", 50.0f); SetConfigValue(CONFIG_GAME_TYPE, "GameType", 0, ConfigValueCache::Reloadable::No); SetConfigValue(CONFIG_REALM_ZONE, "RealmZone", REALM_ZONE_DEVELOPMENT, ConfigValueCache::Reloadable::No); @@ -258,11 +258,11 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_INSTANCE_IGNORE_LEVEL, "Instance.IgnoreLevel", false); SetConfigValue(CONFIG_INSTANCE_IGNORE_RAID, "Instance.IgnoreRaid", false); SetConfigValue(CONFIG_INSTANCE_GMSUMMON_PLAYER, "Instance.GMSummonPlayer", false); - SetConfigValue(CONFIG_INSTANCE_SHARED_ID, "Instance.SharedNormalHeroicId", false); + SetConfigValue(CONFIG_INSTANCE_SHARED_ID, "Instance.SharedNormalHeroicId", true); SetConfigValue(CONFIG_INSTANCE_RESET_TIME_HOUR, "Instance.ResetTimeHour", 4); SetConfigValue(CONFIG_INSTANCE_RESET_TIME_RELATIVE_TIMESTAMP, "Instance.ResetTimeRelativeTimestamp", 1135814400); - SetConfigValue(CONFIG_INSTANCE_UNLOAD_DELAY, "Instance.UnloadDelay", 30); + SetConfigValue(CONFIG_INSTANCE_UNLOAD_DELAY, "Instance.UnloadDelay", 1800000); SetConfigValue(CONFIG_MAX_PRIMARY_TRADE_SKILL, "MaxPrimaryTradeSkill", 2); SetConfigValue(CONFIG_MIN_PETITION_SIGNS, "MinPetitionSigns", 9, ConfigValueCache::Reloadable::Yes, [](uint32 const& value) { return value <= 9; }, "<= 9"); @@ -279,7 +279,7 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_ALLOW_GM_GROUP, "GM.AllowInvite", false); SetConfigValue(CONFIG_ALLOW_GM_FRIEND, "GM.AllowFriend", false); SetConfigValue(CONFIG_GM_LOWER_SECURITY, "GM.LowerSecurity", false); - SetConfigValue(CONFIG_CHANCE_OF_GM_SURVEY, "GM.TicketSystem.ChanceOfGMSurvey", 50); + SetConfigValue(CONFIG_CHANCE_OF_GM_SURVEY, "GM.TicketSystem.ChanceOfGMSurvey", 50.0f); SetConfigValue(CONFIG_GROUP_VISIBILITY, "Visibility.GroupMode", 1); @@ -344,8 +344,8 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_EVENT_ANNOUNCE, "Event.Announce", 0); SetConfigValue(CONFIG_CREATURE_LEASH_RADIUS, "CreatureLeashRadius", 30.0f); - SetConfigValue(CONFIG_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS, "CreatureFamilyFleeAssistanceRadius", 30); - SetConfigValue(CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS, "CreatureFamilyAssistanceRadius", 10); + SetConfigValue(CONFIG_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS, "CreatureFamilyFleeAssistanceRadius", 30.0f); + SetConfigValue(CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS, "CreatureFamilyAssistanceRadius", 10.0f); SetConfigValue(CONFIG_CREATURE_FAMILY_ASSISTANCE_DELAY, "CreatureFamilyAssistanceDelay", 2000); SetConfigValue(CONFIG_CREATURE_FAMILY_ASSISTANCE_PERIOD, "CreatureFamilyAssistancePeriod", 3000); SetConfigValue(CONFIG_CREATURE_FAMILY_FLEE_DELAY, "CreatureFamilyFleeDelay", 7000); @@ -402,9 +402,9 @@ void WorldConfig::BuildConfigCache() // always use declined names in the russian client SetConfigValue(CONFIG_DECLINED_NAMES_USED, "DeclinedNames", GetConfigValue(CONFIG_REALM_ZONE) == REALM_ZONE_RUSSIAN); - SetConfigValue(CONFIG_LISTEN_RANGE_SAY, "ListenRange.Say", 25); - SetConfigValue(CONFIG_LISTEN_RANGE_TEXTEMOTE, "ListenRange.TextEmote", 25); - SetConfigValue(CONFIG_LISTEN_RANGE_YELL, "ListenRange.Yell", 300); + SetConfigValue(CONFIG_LISTEN_RANGE_SAY, "ListenRange.Say", 40.0f); + SetConfigValue(CONFIG_LISTEN_RANGE_TEXTEMOTE, "ListenRange.TextEmote", 40.0f); + SetConfigValue(CONFIG_LISTEN_RANGE_YELL, "ListenRange.Yell", 300.0f); SetConfigValue(CONFIG_BATTLEGROUND_OVERRIDE_LOWLEVELS_MINPLAYERS, "Battleground.Override.LowLevels.MinPlayers", 0); SetConfigValue(CONFIG_BATTLEGROUND_DISABLE_QUEST_SHARE_IN_BG, "Battleground.DisableQuestShareInBG", false); @@ -419,9 +419,9 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_TIMER, "Battleground.QueueAnnouncer.Timer", 30000); SetConfigValue(CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE, "Battleground.StoreStatistics.Enable", false); SetConfigValue(CONFIG_BATTLEGROUND_TRACK_DESERTERS, "Battleground.TrackDeserters.Enable", false); - SetConfigValue(CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER, "Battleground.PrematureFinishTimer", 5); + SetConfigValue(CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER, "Battleground.PrematureFinishTimer", 300000); SetConfigValue(CONFIG_BATTLEGROUND_INVITATION_TYPE, "Battleground.InvitationType", 0); - SetConfigValue(CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH, "Battleground.PremadeGroupWaitForMatch", 30); + SetConfigValue(CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH, "Battleground.PremadeGroupWaitForMatch", 1800000); SetConfigValue(CONFIG_BG_XP_FOR_KILL, "Battleground.GiveXPForKills", false); SetConfigValue(CONFIG_BATTLEGROUND_REPORT_AFK_TIMER, "Battleground.ReportAFK.Timer", 4); SetConfigValue(CONFIG_BATTLEGROUND_REPORT_AFK, "Battleground.ReportAFK", 3, ConfigValueCache::Reloadable::Yes, [](uint32 const& value) { return value > 0 && value <= 9; }, "> 0 && value <= 9"); @@ -437,8 +437,8 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_BATTLEGROUND_EYEOFTHESTORM_CAPTUREPOINTS, "Battleground.EyeOfTheStorm.CapturePoints", 1600); SetConfigValue(CONFIG_ARENA_MAX_RATING_DIFFERENCE, "Arena.MaxRatingDifference", 150); - SetConfigValue(CONFIG_ARENA_RATING_DISCARD_TIMER, "Arena.RatingDiscardTimer", 10); - SetConfigValue(CONFIG_ARENA_PREV_OPPONENTS_DISCARD_TIMER, "Arena.PreviousOpponentsDiscardTimer", 2); + SetConfigValue(CONFIG_ARENA_RATING_DISCARD_TIMER, "Arena.RatingDiscardTimer", 600000); + SetConfigValue(CONFIG_ARENA_PREV_OPPONENTS_DISCARD_TIMER, "Arena.PreviousOpponentsDiscardTimer", 120000); SetConfigValue(CONFIG_ARENA_AUTO_DISTRIBUTE_POINTS, "Arena.AutoDistributePoints", false); SetConfigValue(CONFIG_ARENA_AUTO_DISTRIBUTE_INTERVAL_DAYS, "Arena.AutoDistributeInterval", 7); SetConfigValue(CONFIG_ARENA_GAMES_REQUIRED, "Arena.GamesRequired", 10); @@ -447,16 +447,16 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_LEGACY_ARENA_POINTS_CALC, "Arena.LegacyArenaPoints", 0); SetConfigValue(CONFIG_ARENA_START_PERSONAL_RATING, "Arena.ArenaStartPersonalRating", 0); SetConfigValue(CONFIG_ARENA_START_MATCHMAKER_RATING, "Arena.ArenaStartMatchmakerRating", 1500); - SetConfigValue(CONFIG_ARENA_WIN_RATING_MODIFIER_1, "Arena.ArenaWinRatingModifier1", 48); - SetConfigValue(CONFIG_ARENA_WIN_RATING_MODIFIER_2, "Arena.ArenaWinRatingModifier2", 24); - SetConfigValue(CONFIG_ARENA_LOSE_RATING_MODIFIER, "Arena.ArenaLoseRatingModifier", 24); - SetConfigValue(CONFIG_ARENA_MATCHMAKER_RATING_MODIFIER, "Arena.ArenaMatchmakerRatingModifier", 24); + SetConfigValue(CONFIG_ARENA_WIN_RATING_MODIFIER_1, "Arena.ArenaWinRatingModifier1", 48.0f); + SetConfigValue(CONFIG_ARENA_WIN_RATING_MODIFIER_2, "Arena.ArenaWinRatingModifier2", 24.0f); + SetConfigValue(CONFIG_ARENA_LOSE_RATING_MODIFIER, "Arena.ArenaLoseRatingModifier", 24.0f); + SetConfigValue(CONFIG_ARENA_MATCHMAKER_RATING_MODIFIER, "Arena.ArenaMatchmakerRatingModifier", 24.0f); SetConfigValue(CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE, "Arena.QueueAnnouncer.Enable", false); SetConfigValue(CONFIG_ARENA_QUEUE_ANNOUNCER_PLAYERONLY, "Arena.QueueAnnouncer.PlayerOnly", false); SetConfigValue(CONFIG_ARENA_QUEUE_ANNOUNCER_DETAIL, "Arena.QueueAnnouncer.Detail", 3); SetConfigValue(CONFIG_OFFHAND_CHECK_AT_SPELL_UNLEARN, "OffhandCheckAtSpellUnlearn", true); - SetConfigValue(CONFIG_CREATURE_STOP_FOR_PLAYER, "Creature.MovingStopTimeForPlayer", 3); + SetConfigValue(CONFIG_CREATURE_STOP_FOR_PLAYER, "Creature.MovingStopTimeForPlayer", 180000); SetConfigValue(CONFIG_WATER_BREATH_TIMER, "WaterBreath.Timer", 180000, ConfigValueCache::Reloadable::Yes, [](uint32 const& value) { return value > 0; }, "> 0"); @@ -502,10 +502,10 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_DAILY_RBG_MIN_LEVEL_AP_REWARD, "DailyRBGArenaPoints.MinLevel", 71); // Respawn - SetConfigValue(CONFIG_RESPAWN_DYNAMICRATE_CREATURE, "Respawn.DynamicRateCreature", 1); + SetConfigValue(CONFIG_RESPAWN_DYNAMICRATE_CREATURE, "Respawn.DynamicRateCreature", 1.0f); SetConfigValue(CONFIG_RESPAWN_DYNAMICMINIMUM_CREATURE, "Respawn.DynamicMinimumCreature", 10); - SetConfigValue(CONFIG_RESPAWN_DYNAMICRATE_GAMEOBJECT, "Respawn.DynamicRateGameObject", 1); + SetConfigValue(CONFIG_RESPAWN_DYNAMICRATE_GAMEOBJECT, "Respawn.DynamicRateGameObject", 1.0f); SetConfigValue(CONFIG_RESPAWN_DYNAMICMINIMUM_GAMEOBJECT, "Respawn.DynamicMinimumGameObject", 10); SetConfigValue(CONFIG_VMAP_INDOOR_CHECK, "vmap.enableIndoorCheck", true); @@ -639,7 +639,7 @@ void WorldConfig::BuildConfigCache() // LFG group mechanics. SetConfigValue(CONFIG_LFG_MAX_KICK_COUNT, "LFG.MaxKickCount", 2, ConfigValueCache::Reloadable::Yes, [](uint32 const& value) { return value <= 3; }, "<= 3"); - SetConfigValue(CONFIG_LFG_KICK_PREVENTION_TIMER, "LFG.KickPreventionTimer", 15, ConfigValueCache::Reloadable::Yes, [](uint32 const& value) { return value <= 15 * MINUTE * IN_MILLISECONDS; }, "<= 15 * MINUTE * IN_MILLISECONDS"); + SetConfigValue(CONFIG_LFG_KICK_PREVENTION_TIMER, "LFG.KickPreventionTimer", 900, ConfigValueCache::Reloadable::Yes, [](uint32 const& value) { return value <= 15 * MINUTE * IN_MILLISECONDS; }, "<= 15 * MINUTE * IN_MILLISECONDS"); // Realm Availability SetConfigValue(CONFIG_REALM_LOGIN_ENABLED, "World.RealmAvailability", true);