mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-13 09:07:19 +00:00
fix strategies conflict for rndbot
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include "DKAiObjectContext.h"
|
||||
#include "PriestAiObjectContext.h"
|
||||
#include "MageAiObjectContext.h"
|
||||
#include "SharedDefines.h"
|
||||
#include "WarlockAiObjectContext.h"
|
||||
#include "WarriorAiObjectContext.h"
|
||||
#include "ShamanAiObjectContext.h"
|
||||
@@ -275,7 +276,7 @@ void AiFactory::AddDefaultCombatStrategies(Player* player, PlayerbotAI* const fa
|
||||
else
|
||||
engine->addStrategies("heal", "threat", nullptr);
|
||||
|
||||
engine->addStrategies("dps assist", "cure", "ranged", nullptr);
|
||||
engine->addStrategies("dps assist", "cure", nullptr);
|
||||
break;
|
||||
case CLASS_MAGE:
|
||||
if (tab == 0)
|
||||
@@ -285,65 +286,62 @@ void AiFactory::AddDefaultCombatStrategies(Player* player, PlayerbotAI* const fa
|
||||
else
|
||||
engine->addStrategies("frost", "frost aoe", "threat", nullptr);
|
||||
|
||||
engine->addStrategies("dps", "dps assist", "cure", "ranged", nullptr);
|
||||
engine->addStrategies("dps", "dps assist", "cure", nullptr);
|
||||
break;
|
||||
case CLASS_WARRIOR:
|
||||
if (tab == 2)
|
||||
engine->addStrategies("tank", "tank assist", "aoe", "close", "mark rti", nullptr);
|
||||
engine->addStrategies("tank", "tank assist", "aoe", "mark rti", nullptr);
|
||||
else if (player->getLevel() < 30 || tab == 0)
|
||||
engine->addStrategies("arms", "aoe", "dps assist", "threat", "close", "behind", nullptr);
|
||||
engine->addStrategies("arms", "aoe", "dps assist", "threat", "behind", nullptr);
|
||||
else
|
||||
engine->addStrategies("fury", "aoe", "dps assist", "threat", "close", "behind", nullptr);
|
||||
engine->addStrategies("fury", "aoe", "dps assist", "threat", "behind", nullptr);
|
||||
break;
|
||||
case CLASS_SHAMAN:
|
||||
if (tab == 0)
|
||||
engine->addStrategies("caster", "caster aoe", "bmana", "threat", "ranged", nullptr);
|
||||
engine->addStrategies("caster", "caster aoe", "bmana", "threat", nullptr);
|
||||
else if (tab == 2)
|
||||
engine->addStrategies("heal", "bmana", "ranged", nullptr);
|
||||
engine->addStrategies("heal", "bmana", nullptr);
|
||||
else
|
||||
engine->addStrategies("melee", "melee aoe", "bdps", "threat", "close", nullptr);
|
||||
engine->addStrategies("melee", "melee aoe", "bdps", "threat", nullptr);
|
||||
|
||||
engine->addStrategies("dps assist", "cure", "totems", nullptr);
|
||||
break;
|
||||
case CLASS_PALADIN:
|
||||
if (tab == 1)
|
||||
engine->addStrategies("tank", "tank assist", "bthreat", "barmor", "cure", "close", nullptr);
|
||||
engine->addStrategies("tank", "tank assist", "bthreat", "barmor", "cure", nullptr);
|
||||
else if (tab == 0)
|
||||
engine->addStrategies("heal", "dps assist", "cure", nullptr);
|
||||
else
|
||||
engine->addStrategies("dps", "dps assist", "cure", "close", "baoe", nullptr);
|
||||
engine->addStrategies("dps", "dps assist", "cure", "baoe", nullptr);
|
||||
|
||||
break;
|
||||
case CLASS_DRUID:
|
||||
if (tab == 0)
|
||||
{
|
||||
engine->addStrategies("caster", "cure", "caster aoe", "threat", "dps assist", "ranged", nullptr);
|
||||
if (player->getLevel() > 19)
|
||||
engine->addStrategy("caster debuff");
|
||||
engine->addStrategies("caster", "cure", "caster aoe", "threat", "dps assist", nullptr);
|
||||
engine->addStrategy("caster debuff");
|
||||
}
|
||||
else if (tab == 2)
|
||||
engine->addStrategies("heal", "cure", "dps assist", "ranged", nullptr);
|
||||
engine->addStrategies("heal", "cure", "dps assist", nullptr);
|
||||
else
|
||||
{
|
||||
engine->removeStrategy("ranged");
|
||||
engine->removeStrategy("flee");
|
||||
engine->addStrategies("bear", "tank assist", "close", nullptr);
|
||||
engine->addStrategies("bear", "tank assist", nullptr);
|
||||
}
|
||||
break;
|
||||
case CLASS_HUNTER:
|
||||
engine->addStrategies("dps", "aoe", "bdps", "threat", "dps assist", "ranged", nullptr);
|
||||
if (player->getLevel() > 19)
|
||||
engine->addStrategy("dps debuff");
|
||||
engine->addStrategies("dps", "aoe", "bdps", "threat", "dps assist", nullptr);
|
||||
engine->addStrategy("dps debuff");
|
||||
break;
|
||||
case CLASS_ROGUE:
|
||||
if (tab == ROGUE_TAB_ASSASSINATION) {
|
||||
engine->addStrategies("melee", "threat", "dps assist", "aoe", "close", "behind", nullptr);
|
||||
engine->addStrategies("melee", "threat", "dps assist", "aoe", "behind", nullptr);
|
||||
} else {
|
||||
engine->addStrategies("dps", "threat", "dps assist", "aoe", "close", "behind", nullptr);
|
||||
engine->addStrategies("dps", "threat", "dps assist", "aoe", "behind", nullptr);
|
||||
}
|
||||
break;
|
||||
case CLASS_WARLOCK:
|
||||
engine->addStrategies("dps assist", "dps", "dps debuff", "aoe", "ranged", "threat", nullptr);
|
||||
engine->addStrategies("dps assist", "dps", "dps debuff", "aoe", "threat", nullptr);
|
||||
break;
|
||||
case CLASS_DEATH_KNIGHT:
|
||||
if (tab == 0)
|
||||
@@ -353,8 +351,6 @@ void AiFactory::AddDefaultCombatStrategies(Player* player, PlayerbotAI* const fa
|
||||
else
|
||||
engine->addStrategies("unholy", "unholy aoe", "dps assist", "threat", nullptr);
|
||||
|
||||
engine->addStrategies("close", nullptr);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -362,40 +358,39 @@ void AiFactory::AddDefaultCombatStrategies(Player* player, PlayerbotAI* const fa
|
||||
{
|
||||
if (!player->GetGroup())
|
||||
{
|
||||
engine->ChangeStrategy(sPlayerbotAIConfig->randomBotCombatStrategies);
|
||||
|
||||
// engine->addStrategy("flee");
|
||||
// change for heal spec
|
||||
engine->addStrategy("boost");
|
||||
|
||||
if (player->getClass() == CLASS_WARLOCK)
|
||||
{
|
||||
engine->removeStrategy("ranged");
|
||||
}
|
||||
|
||||
if (player->getClass() == CLASS_DRUID && tab == 2)
|
||||
{
|
||||
engine->addStrategies("caster", "caster aoe", nullptr);
|
||||
}
|
||||
|
||||
if (player->getClass() == CLASS_DRUID && tab == 1 && urand(0, 100) > 50 && player->getLevel() > 19)
|
||||
{
|
||||
engine->addStrategy("dps");
|
||||
}
|
||||
|
||||
if (player->getClass() == CLASS_PRIEST && tab == 1)
|
||||
{
|
||||
engine->removeStrategy("heal");
|
||||
engine->addStrategies("holy", "shadow debuff", "shadow aoe", "threat", nullptr);
|
||||
}
|
||||
|
||||
if (player->getClass() == CLASS_SHAMAN && tab == 2)
|
||||
{
|
||||
engine->addStrategies("caster", "caster aoe", nullptr);
|
||||
}
|
||||
|
||||
if (player->getClass() == CLASS_PALADIN && tab == 0)
|
||||
{
|
||||
engine->addStrategies("dps", "close", nullptr);
|
||||
engine->addStrategy("dps assist");
|
||||
engine->removeStrategy("threat");
|
||||
// engine-
|
||||
switch (player->getClass()) {
|
||||
case CLASS_PRIEST: {
|
||||
if (tab != PRIEST_TAB_SHADOW) {
|
||||
engine->addStrategies("dps", "shadow debuff", "shadow aoe", nullptr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CLASS_DRUID: {
|
||||
if (tab == DRUID_TAB_RESTORATION) {
|
||||
engine->addStrategies("caster", "caster aoe", nullptr);
|
||||
engine->addStrategy("caster debuff");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CLASS_SHAMAN: {
|
||||
if (tab == SHAMAN_TAB_RESTORATION) {
|
||||
engine->addStrategies("caster", "caster aoe", "bmana", nullptr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CLASS_PALADIN: {
|
||||
if (tab == PALADIN_TAB_HOLY) {
|
||||
engine->addStrategies("dps", "dps assist", "baoe", nullptr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user