Skip to content

Commit

Permalink
NPCBots: Add NpcBot.WanderingBots.SkipTarget.<NPCTYPE> config param…
Browse files Browse the repository at this point in the history
…s to make wandering bots skip certain npc types when looking for attack target
  • Loading branch information
trickerer committed Oct 6, 2024
1 parent 78dcd83 commit 1d53be1
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/server/game/AI/NpcBots/bot_ai.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3689,6 +3689,14 @@ bool bot_ai::CanBotAttack(Unit const* target, int8 byspell, bool secondary) cons
if (IsPointedNoDPSTarget(target))
return false;

if (IsWanderer() && target->IsCreature() && target->GetVictim() != me)
{
if (BotMgr::EnableWanderingUntargetNpcQuestgiver() && target->IsQuestGiver())
return false;
if (BotMgr::EnableWanderingUntargetNpcFlightmaster() && target->IsTaxi())
return false;
}

if (IAmFree())
{
switch (target->GetEntry())
Expand Down
13 changes: 13 additions & 0 deletions src/server/game/AI/NpcBots/botmgr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ bool _enableConfigLevelCapBGFirst;
bool _bothk_enable;
bool _bothk_message_enable;
bool _bothk_achievements_enable;
bool _untarget_wnpc_questgiver;
bool _untarget_wnpc_flightmaster;
float _botStatLimits_dodge;
float _botStatLimits_parry;
float _botStatLimits_block;
Expand Down Expand Up @@ -419,6 +421,8 @@ void BotMgr::LoadConfig(bool reload)
_enableclass_wander_necromancer = sConfigMgr->GetBoolDefault("NpcBot.WanderingBots.Classes.Necromancer.Enable", true);
_enableclass_wander_seawitch = sConfigMgr->GetBoolDefault("NpcBot.WanderingBots.Classes.SeaWitch.Enable", true);
_enableclass_wander_cryptlord = sConfigMgr->GetBoolDefault("NpcBot.WanderingBots.Classes.CryptLord.Enable", true);
_untarget_wnpc_questgiver = sConfigMgr->GetBoolDefault("NpcBot.WanderingBots.SkipTarget.Questgiver", false);
_untarget_wnpc_flightmaster = sConfigMgr->GetBoolDefault("NpcBot.WanderingBots.SkipTarget.Flightmaster", false);
_enrageOnDismiss = sConfigMgr->GetBoolDefault("NpcBot.EnrageOnDismiss", true);
_botStatLimits = sConfigMgr->GetBoolDefault("NpcBot.Stats.Limits.Enable", false);
_botStatLimits_dodge = sConfigMgr->GetFloatDefault("NpcBot.Stats.Limits.Dodge", 95.0f);
Expand Down Expand Up @@ -855,6 +859,15 @@ bool BotMgr::IsWanderingClassEnabled(uint8 m_class)
}
}

bool BotMgr::EnableWanderingUntargetNpcQuestgiver()
{
return _untarget_wnpc_questgiver;
}
bool BotMgr::EnableWanderingUntargetNpcFlightmaster()
{
return _untarget_wnpc_flightmaster;
}

bool BotMgr::HideBotSpawns()
{
return _hideSpawns;
Expand Down
2 changes: 2 additions & 0 deletions src/server/game/AI/NpcBots/botmgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,8 @@ class TC_GAME_API BotMgr
static bool TransmogUseEquipmentSlots();
static bool IsClassEnabled(uint8 m_class);
static bool IsWanderingClassEnabled(uint8 m_class);
static bool EnableWanderingUntargetNpcQuestgiver();
static bool EnableWanderingUntargetNpcFlightmaster();
static bool HideBotSpawns();
static bool IsEnrageOnDimissEnabled();
static bool IsBotStatsLimitsEnabled();
Expand Down
11 changes: 11 additions & 0 deletions src/server/worldserver/worldserver.conf.dist
Original file line number Diff line number Diff line change
Expand Up @@ -4731,6 +4731,17 @@ NpcBot.WanderingBots.Classes.Necromancer.Enable = 1
NpcBot.WanderingBots.Classes.SeaWitch.Enable = 1
NpcBot.WanderingBots.Classes.CryptLord.Enable = 1

#
# NpcBot.WanderingBots.SkipTarget.Questgiver
# NpcBot.WanderingBots.SkipTarget.Flightmaster
# Description: Make wandering bots skip certain npc types when selecting attack target.
# Note: This option does not apply to npcs engaging the bot on their own accord.
# Default: 0 - (NpcBot.WanderingBots.SkipTarget.Questgiver)
# 0 - (NpcBot.WanderingBots.SkipTarget.Flightmaster)

NpcBot.WanderingBots.SkipTarget.Questgiver = 0
NpcBot.WanderingBots.SkipTarget.Flightmaster = 0

#
# NpcBot.HK.Enable
# Description: Count NPCBot kill at honor kill.
Expand Down

0 comments on commit 1d53be1

Please sign in to comment.