diff --git a/conf/playerbots.conf.dist b/conf/playerbots.conf.dist index 96161f5c..47501b29 100644 --- a/conf/playerbots.conf.dist +++ b/conf/playerbots.conf.dist @@ -811,12 +811,13 @@ AiPlayerbot.OpenGoSpell = 6477 # # Additional randombot strategies -# Strategies added here are applied to all randombots, in addition (or subtraction) to spec-based default strategies. These rules are processed after the defaults. -AiPlayerbot.RandomBotCombatStrategies = "+dps,+dps assist,-threat" +# Strategies added here are applied to all randombots, in addition (or subtraction) to spec/role-based default strategies. These rules are processed after the defaults. +# Example: "+threat,-potions" +AiPlayerbot.RandomBotCombatStrategies = "" AiPlayerbot.RandomBotNonCombatStrategies = "" # Additional altbot strategies -# Strategies added here are applied to all altbots, in addition (or subtraction) to spec-based default strategies. These rules are processed after the defaults. +# Strategies added here are applied to all altbots, in addition (or subtraction) to spec/role-based default strategies. These rules are processed after the defaults. AiPlayerbot.CombatStrategies = "" AiPlayerbot.NonCombatStrategies = "" diff --git a/src/AiFactory.cpp b/src/AiFactory.cpp index 643899e9..c9202a71 100644 --- a/src/AiFactory.cpp +++ b/src/AiFactory.cpp @@ -472,6 +472,10 @@ void AiFactory::AddDefaultCombatStrategies(Player* player, PlayerbotAI* const fa } } } + if (sRandomPlayerbotMgr->IsRandomBot(player)) + { + engine->ChangeStrategy(sPlayerbotAIConfig->randomBotCombatStrategies); + } else { engine->ChangeStrategy(sPlayerbotAIConfig->combatStrategies); diff --git a/src/PlayerbotAI.cpp b/src/PlayerbotAI.cpp index 5dbe5cb9..d0a776b3 100644 --- a/src/PlayerbotAI.cpp +++ b/src/PlayerbotAI.cpp @@ -722,7 +722,8 @@ void PlayerbotAI::HandleTeleportAck() // SetNextCheckDelay(urand(2000, 5000)); if (sPlayerbotAIConfig->applyInstanceStrategies) ApplyInstanceStrategies(bot->GetMapId(), true); - EvaluateHealerDpsStrategy(); + if (sPlayerbotAIConfig->restrictHealerDPS) + EvaluateHealerDpsStrategy(); Reset(true); } diff --git a/src/PlayerbotAIConfig.cpp b/src/PlayerbotAIConfig.cpp index f69cbf19..7a6fa429 100644 --- a/src/PlayerbotAIConfig.cpp +++ b/src/PlayerbotAIConfig.cpp @@ -375,7 +375,7 @@ bool PlayerbotAIConfig::Initialize() randomChangeMultiplier = sConfigMgr->GetOption("AiPlayerbot.RandomChangeMultiplier", 1.0); - randomBotCombatStrategies = sConfigMgr->GetOption("AiPlayerbot.RandomBotCombatStrategies", "-threat"); + randomBotCombatStrategies = sConfigMgr->GetOption("AiPlayerbot.RandomBotCombatStrategies", ""); randomBotNonCombatStrategies = sConfigMgr->GetOption("AiPlayerbot.RandomBotNonCombatStrategies", ""); combatStrategies = sConfigMgr->GetOption("AiPlayerbot.CombatStrategies", "+custom::say"); nonCombatStrategies = sConfigMgr->GetOption("AiPlayerbot.NonCombatStrategies", "+custom::say,+return");