# ObjectManager

# 说明

ObjectManager命名空间提供访问和管理游戏中各种对象的功能,包括英雄、小兵、防御塔等游戏单位的集合和查询功能。

# 如何使用

#include "Noble.h"

// 获取当前玩家
AIBaseClient* player = ObjectManager::Player();

// 获取敌方英雄
std::vector<AIBaseClient*> const& enemies = ObjectManager::GetEnemies();

// 遍历敌方英雄
for (auto enemy : enemies)
{
    // 处理每个敌方英雄
    if (enemy->IsValidTarget() && player->GetPosition().Distance(enemy->GetPosition()) < 1000.0f)
    {
        // 对范围内的敌人进行操作
    }
}

# GetAllAnimation

std::vector<AnimationClient*> const& GetAllAnimation()

获取所有动画对象的集合。

std::vector<AnimationClient*> const& animations = ObjectManager::GetAllAnimation();
for (auto animation : animations)
{
    // 处理每个动画对象
    // 进行相关操作
}

# GetAllies

std::vector<AIBaseClient*> const& GetAllies()

获取友方英雄的集合。

std::vector<AIBaseClient*> const& allies = ObjectManager::GetAllies();
for (auto ally : allies)
{
    // 处理每个友方英雄
    float distance = player->GetPosition().Distance(ally->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的友方英雄进行操作
    }
}

# GetAllMinions

std::vector<AIBaseClient*> const& GetAllMinions()

获取所有小兵的集合,无任何判断和过滤。

std::vector<AIBaseClient*> const& allMinions = ObjectManager::GetAllMinions();
for (auto minion : allMinions)
{
    // 处理每个小兵
    // 注意:需要自行检查小兵的有效性、可见性和死亡状态
    if (minion->IsValid() && minion->IsVisible() && !minion->IsDead())
    {
        float distance = player->GetPosition().Distance(minion->GetPosition());
        if (distance < 800.0f)
        {
            // 对范围内的有效小兵进行操作
        }
    }
}

# GetAllMissile

std::vector<MissileClient*> const& GetAllMissile()

获取所有弹道对象的集合。

std::vector<MissileClient*> const& missiles = ObjectManager::GetAllMissile();
for (auto missile : missiles)
{
    // 处理每个弹道对象
    // 如检测敌方技能弹道并进行闪避
    if (missile->IsEnemyMissile() && missile->IsTargetingLocalPlayer())
    {
        // 进行闪避操作
    }
}

# GetAllyInhibitors

std::vector<AIBaseClient*> const& GetAllyInhibitors()

获取己方水晶的集合。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& inhibitors = ObjectManager::GetAllyInhibitors();
for (auto inhibitor : inhibitors)
{
    // 处理每个己方水晶
    float distance = player->GetPosition().Distance(inhibitor->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的己方水晶进行操作
    }
}

# GetAllyMinions

std::vector<AIBaseClient*> const& GetAllyMinions()

获取友方小兵的集合。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& allyMinions = ObjectManager::GetAllyMinions();
for (auto minion : allyMinions)
{
    // 处理每个友方小兵
    float distance = player->GetPosition().Distance(minion->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的友方小兵进行操作
    }
}

# GetAllyTurrets

std::vector<AIBaseClient*> const& GetAllyTurrets()

获取己方防御塔的集合,已排除死亡的防御塔。

std::vector<AIBaseClient*> const& turrets = ObjectManager::GetAllyTurrets();
for (auto turret : turrets)
{
    // 处理每个己方防御塔
    float distance = player->GetPosition().Distance(turret->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的己方防御塔进行操作
    }
}

# GetEnemies

std::vector<AIBaseClient*> const& GetEnemies()

获取敌方英雄的集合。

std::vector<AIBaseClient*> const& enemies = ObjectManager::GetEnemies();
for (auto enemy : enemies)
{
    // 处理每个敌方英雄
    float distance = player->GetPosition().Distance(enemy->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的敌方英雄进行操作
    }
}

# GetEnemyInhibitors

std::vector<AIBaseClient*> const& GetEnemyInhibitors()

获取敌方水晶的集合。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& inhibitors = ObjectManager::GetEnemyInhibitors();
for (auto inhibitor : inhibitors)
{
    // 处理每个敌方水晶
    float distance = player->GetPosition().Distance(inhibitor->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的敌方水晶进行操作
    }
}

# GetEnemyMinions

std::vector<AIBaseClient*> const& GetEnemyMinions()

获取敌方小兵的集合。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& enemyMinions = ObjectManager::GetEnemyMinions();
for (auto minion : enemyMinions)
{
    // 处理每个敌方小兵
    float distance = player->GetPosition().Distance(minion->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的敌方小兵进行操作
    }
}

# GetEnemyTurrets

std::vector<AIBaseClient*> const& GetEnemyTurrets()

获取敌方防御塔的集合,已排除死亡的防御塔。

std::vector<AIBaseClient*> const& turrets = ObjectManager::GetEnemyTurrets();
for (auto turret : turrets)
{
    // 处理每个敌方防御塔
    float distance = player->GetPosition().Distance(turret->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的敌方防御塔进行操作
    }
}

# GetEnemyWards

std::vector<AIBaseClient*> const& GetEnemyWards()

获取敌方侦查守卫的集合。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& wards = ObjectManager::GetEnemyWards();
for (auto ward : wards)
{
    // 处理每个敌方侦查守卫
    float distance = player->GetPosition().Distance(ward->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的侦查守卫进行操作
    }
}

# GetGangplankBarrels

std::vector<AIBaseClient*> const& GetGangplankBarrels()

获取船长桶的集合。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& barrels = ObjectManager::GetGangplankBarrels();
for (auto barrel : barrels)
{
    // 处理每个船长桶
    float distance = player->GetPosition().Distance(barrel->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的船长桶进行操作
    }
}

# GetNeutralMinions

std::vector<AIBaseClient*> const& GetNeutralMinions()

获取野怪的集合。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& neutralMinions = ObjectManager::GetNeutralMinions();
for (auto monster : neutralMinions)
{
    // 处理每个野怪
    float distance = player->GetPosition().Distance(monster->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的野怪进行操作
    }
}

# GetPlantsMinions

std::vector<AIBaseClient*> const& GetPlantsMinions()

获取地图上果实的集合。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& plants = ObjectManager::GetPlantsMinions();
for (auto plant : plants)
{
    // 处理每个果实
    float distance = player->GetPosition().Distance(plant->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的果实进行操作
    }
}

# GetSennaSouls

std::vector<AIBaseClient*> const& GetSennaSouls()

获取赛纳灵魂的集合。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& souls = ObjectManager::GetSennaSouls();
for (auto soul : souls)
{
    // 处理每个赛纳灵魂
    float distance = player->GetPosition().Distance(soul->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的赛纳灵魂进行操作
    }
}

# GetSpecialMinions

std::vector<AIBaseClient*> const& GetSpecialMinions()

获取特殊小兵的集合,如皇子旗子、劫影子、辛德拉球、刀妹E、婕拉种子、女警W、霞羽毛等。这些对象有效但不可攻击。仅需判断距离,已处理可见性、死亡状态和有效目标检查。

std::vector<AIBaseClient*> const& specialMinions = ObjectManager::GetSpecialMinions();
for (auto minion : specialMinions)
{
    // 处理每个特殊小兵
    float distance = player->GetPosition().Distance(minion->GetPosition());
    if (distance < 800.0f)
    {
        // 对范围内的特殊小兵进行操作
    }
}

# GetUnitByIndex

AIBaseClient* GetUnitByIndex(short index)

通过索引获取游戏单位。

参数名 参数类型 描述
index short 单位的索引
AIBaseClient* unit = ObjectManager::GetUnitByIndex(5);
if (unit && unit->IsValid())
{
    // 处理有效单位
}

# Player

AIBaseClient* Player()

获取当前玩家控制的单位。

AIBaseClient* player = ObjectManager::Player();
Vector playerPosition = player->GetPosition();