Compare commits

..

1 Commits

Author SHA1 Message Date
bash
b7f4b4f61f Removal space lel 2025-10-18 22:32:19 +02:00
11 changed files with 19 additions and 28 deletions

View File

@@ -93,9 +93,6 @@ The [Playerbots Wiki](https://github.com/mod-playerbots/mod-playerbots/wiki) con
- **What platforms are supported?** We support Ubuntu, Windows, and macOS. Other Linux distros may work, but will not receive support. - **What platforms are supported?** We support Ubuntu, Windows, and macOS. Other Linux distros may work, but will not receive support.
- **Why isn't my source compiling?** Please ensure that you are compiling with the required [custom branch of AzerothCore](https://github.com/mod-playerbots/azerothcore-wotlk/tree/Playerbot). Additionally, please [check the build status of our CI](https://github.com/mod-playerbots/mod-playerbots/actions). If the latest build is failing, rever to the last successful commit until we address the issue. - **Why isn't my source compiling?** Please ensure that you are compiling with the required [custom branch of AzerothCore](https://github.com/mod-playerbots/azerothcore-wotlk/tree/Playerbot). Additionally, please [check the build status of our CI](https://github.com/mod-playerbots/mod-playerbots/actions). If the latest build is failing, rever to the last successful commit until we address the issue.
## Code standards
- https://www.azerothcore.org/wiki/cpp-code-standards
## Addons ## Addons
Typically, bots are controlled via chat commands. For larger bot groups, this can be unwieldy. As an alternative, community members have developed client Add-Ons to allow controlling bots through the in-game UI. We recommend you check out their projects: Typically, bots are controlled via chat commands. For larger bot groups, this can be unwieldy. As an alternative, community members have developed client Add-Ons to allow controlling bots through the in-game UI. We recommend you check out their projects:

View File

@@ -57,7 +57,7 @@ void LoadListString(std::string const value, T& list)
bool PlayerbotAIConfig::Initialize() bool PlayerbotAIConfig::Initialize()
{ {
LOG_INFO("server.loading", "Initializing mod-playerbots, based on AI Playerbots by ike3 and the original Playerbots by blueboy"); LOG_INFO("server.loading", "Initializing mod-playerbots, based on AI Playerbots by ike and the original Playerbots by blueboy");
enabled = sConfigMgr->GetOption<bool>("AiPlayerbot.Enabled", true); enabled = sConfigMgr->GetOption<bool>("AiPlayerbot.Enabled", true);
if (!enabled) if (!enabled)

View File

@@ -103,8 +103,7 @@ float StatsWeightCalculator::CalculateItem(uint32 itemId, int32 randomPropertyId
return weight_; return weight_;
} }
// If quality/level blending is disabled, also return the calculated weight.
return weight_;
} }
float StatsWeightCalculator::CalculateEnchant(uint32 enchantId) float StatsWeightCalculator::CalculateEnchant(uint32 enchantId)

View File

@@ -82,7 +82,7 @@
#include "TameAction.h" #include "TameAction.h"
#include "TellGlyphsAction.h" #include "TellGlyphsAction.h"
#include "EquipGlyphsAction.h" #include "EquipGlyphsAction.h"
#include "PetsAction.h" #include "PetAction.h"
class ChatActionContext : public NamedObjectContext<Action> class ChatActionContext : public NamedObjectContext<Action>
{ {
@@ -307,8 +307,8 @@ private:
static Action* tame(PlayerbotAI* botAI) { return new TameAction(botAI); } static Action* tame(PlayerbotAI* botAI) { return new TameAction(botAI); }
static Action* glyphs(PlayerbotAI* botAI) { return new TellGlyphsAction(botAI); } // Added for custom Glyphs static Action* glyphs(PlayerbotAI* botAI) { return new TellGlyphsAction(botAI); } // Added for custom Glyphs
static Action* glyph_equip(PlayerbotAI* ai) { return new EquipGlyphsAction(ai); } // Added for custom Glyphs static Action* glyph_equip(PlayerbotAI* ai) { return new EquipGlyphsAction(ai); } // Added for custom Glyphs
static Action* pet(PlayerbotAI* botAI) { return new PetsAction(botAI); } static Action* pet(PlayerbotAI* botAI) { return new PetAction(botAI); }
static Action* pet_attack(PlayerbotAI* botAI) { return new PetsAction(botAI, "attack"); } static Action* pet_attack(PlayerbotAI* botAI) { return new PetAction(botAI, "attack"); }
static Action* roll_action(PlayerbotAI* botAI) { return new RollAction(botAI); } static Action* roll_action(PlayerbotAI* botAI) { return new RollAction(botAI); }
}; };

View File

@@ -210,7 +210,7 @@ bool MovementAction::MoveTo(uint32 mapId, float x, float y, float z, bool idle,
mm.Clear(); mm.Clear();
if (!backwards) if (!backwards)
{ {
mm.MovePoint(0, x, y, z, FORCED_MOVEMENT_NONE, 0.0f, 0.0f, generatePath); mm.MovePoint(0, x, y, z, generatePath);
} }
else else
{ {
@@ -245,7 +245,7 @@ bool MovementAction::MoveTo(uint32 mapId, float x, float y, float z, bool idle,
mm.Clear(); mm.Clear();
if (!backwards) if (!backwards)
{ {
mm.MovePoint(0, x, y, z, FORCED_MOVEMENT_NONE, 0.0f, 0.0f, generatePath); mm.MovePoint(0, x, y, z, generatePath);
} }
else else
{ {
@@ -287,7 +287,7 @@ bool MovementAction::MoveTo(uint32 mapId, float x, float y, float z, bool idle,
mm.Clear(); mm.Clear();
if (!backwards) if (!backwards)
{ {
mm.MovePoint(0, x, y, z, FORCED_MOVEMENT_NONE, 0.0f, 0.0f, generatePath); mm.MovePoint(0, x, y, z, generatePath);
} }
else else
{ {

View File

@@ -3,7 +3,7 @@
* and/or modify it under version 3 of the License, or (at your option), any later version. * and/or modify it under version 3 of the License, or (at your option), any later version.
*/ */
#include "PetsAction.h" #include "PetAction.h"
#include "CharmInfo.h" #include "CharmInfo.h"
#include "Creature.h" #include "Creature.h"
@@ -13,7 +13,7 @@
#include "PlayerbotAI.h" #include "PlayerbotAI.h"
#include "SharedDefines.h" #include "SharedDefines.h"
bool PetsAction::Execute(Event event) bool PetAction::Execute(Event event)
{ {
// Extract the command parameter from the event (e.g., "aggressive", "defensive", "attack", etc.) // Extract the command parameter from the event (e.g., "aggressive", "defensive", "attack", etc.)
std::string param = event.getParam(); std::string param = event.getParam();

View File

@@ -3,8 +3,8 @@
* and/or modify it under version 3 of the License, or (at your option), any later version. * and/or modify it under version 3 of the License, or (at your option), any later version.
*/ */
#ifndef _PLAYERBOT_PETSACTION_H #ifndef _PLAYERBOT_PETACTION_H
#define _PLAYERBOT_PETSACTION_H #define _PLAYERBOT_PETACTION_H
#include <string> #include <string>
@@ -14,10 +14,10 @@
class PlayerbotAI; class PlayerbotAI;
class PetsAction : public Action class PetAction : public Action
{ {
public: public:
PetsAction(PlayerbotAI* botAI, const std::string& defaultCmd = "") : Action(botAI, "pet"), defaultCmd(defaultCmd) {} PetAction(PlayerbotAI* botAI, const std::string& defaultCmd = "") : Action(botAI, "pet"), defaultCmd(defaultCmd) {}
bool Execute(Event event) override; bool Execute(Event event) override;

View File

@@ -41,7 +41,7 @@
#include "UseMeetingStoneAction.h" #include "UseMeetingStoneAction.h"
#include "NamedObjectContext.h" #include "NamedObjectContext.h"
#include "ReleaseSpiritAction.h" #include "ReleaseSpiritAction.h"
#include "PetsAction.h" #include "PetAction.h"
class PlayerbotAI; class PlayerbotAI;
@@ -141,7 +141,7 @@ private:
static Action* tell_not_enough_reputation(PlayerbotAI* botAI) { return new TellMasterAction(botAI, "Not enough reputation"); } static Action* tell_not_enough_reputation(PlayerbotAI* botAI) { return new TellMasterAction(botAI, "Not enough reputation"); }
static Action* tell_cannot_equip(PlayerbotAI* botAI) { return new InventoryChangeFailureAction(botAI); } static Action* tell_cannot_equip(PlayerbotAI* botAI) { return new InventoryChangeFailureAction(botAI); }
static Action* self_resurrect(PlayerbotAI* botAI) { return new SelfResurrectAction(botAI); } static Action* self_resurrect(PlayerbotAI* botAI) { return new SelfResurrectAction(botAI); }
static Action* pet(PlayerbotAI* botAI) { return new PetsAction(botAI); } static Action* pet(PlayerbotAI* botAI) { return new PetAction(botAI); }
// quest // quest
static Action* quest_update_add_kill(PlayerbotAI* ai) { return new QuestUpdateAddKillAction(ai); } static Action* quest_update_add_kill(PlayerbotAI* ai) { return new QuestUpdateAddKillAction(ai); }

View File

@@ -472,6 +472,7 @@ float IccBqlMultiplier::GetValue(Action* action)
else else
return 0.0f; // Cancel all other actions when we need to handle Swarming Shadows return 0.0f; // Cancel all other actions when we need to handle Swarming Shadows
} }
return 1.0f;
if ((boss->GetExactDist2d(ICC_BQL_TANK_POSITION.GetPositionX(), ICC_BQL_TANK_POSITION.GetPositionY()) > 10.0f) && if ((boss->GetExactDist2d(ICC_BQL_TANK_POSITION.GetPositionX(), ICC_BQL_TANK_POSITION.GetPositionY()) > 10.0f) &&
botAI->IsRanged(bot) && !((boss->GetPositionZ() - bot->GetPositionZ()) > 5.0f)) botAI->IsRanged(bot) && !((boss->GetPositionZ() - bot->GetPositionZ()) > 5.0f))
@@ -480,7 +481,6 @@ float IccBqlMultiplier::GetValue(Action* action)
return 0.0f; return 0.0f;
} }
return 1.0f;
} }
//VDW //VDW

View File

@@ -41,11 +41,6 @@ class ShamanCombatStrategyFactoryInternal : public NamedObjectContext<Strategy>
public: public:
ShamanCombatStrategyFactoryInternal() : NamedObjectContext<Strategy>(false, true) ShamanCombatStrategyFactoryInternal() : NamedObjectContext<Strategy>(false, true)
{ {
creators["heal"] = &ShamanCombatStrategyFactoryInternal::resto;
creators["melee"] = &ShamanCombatStrategyFactoryInternal::enh;
creators["dps"] = &ShamanCombatStrategyFactoryInternal::enh;
creators["caster"] = &ShamanCombatStrategyFactoryInternal::ele;
//creators["offheal"] = &ShamanCombatStrategyFactoryInternal::offheal;
creators["resto"] = &ShamanCombatStrategyFactoryInternal::resto; creators["resto"] = &ShamanCombatStrategyFactoryInternal::resto;
creators["enh"] = &ShamanCombatStrategyFactoryInternal::enh; creators["enh"] = &ShamanCombatStrategyFactoryInternal::enh;
creators["ele"] = &ShamanCombatStrategyFactoryInternal::ele; creators["ele"] = &ShamanCombatStrategyFactoryInternal::ele;

View File

@@ -102,7 +102,7 @@ std::vector<CreatureData const*> BgMastersValue::Calculate()
} }
} }
return bmGuids; return std::move(bmGuids);
} }
CreatureData const* BgMasterValue::Calculate() CreatureData const* BgMasterValue::Calculate()
@@ -120,7 +120,7 @@ CreatureData const* BgMasterValue::NearestBm(bool allowDead)
std::vector<CreatureData const*> bmPairs = AI_VALUE2(std::vector<CreatureData const*>, "bg masters", qualifier); std::vector<CreatureData const*> bmPairs = AI_VALUE2(std::vector<CreatureData const*>, "bg masters", qualifier);
float rDist = 0.0f; float rDist;
CreatureData const* rbmPair = nullptr; CreatureData const* rbmPair = nullptr;
for (auto& bmPair : bmPairs) for (auto& bmPair : bmPairs)