# 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();