# TargetSelector
# 说明
TargetSelector命名空间提供了目标选择功能,可以根据不同的条件和策略选择最佳攻击目标。
# 如何使用
// 获取最佳攻击目标
AIBaseClient* target = TargetSelector::GetTarget(900.0f, eDamageType::Magical);
if (target && target->IsValidTarget()) {
// 使用目标...
}
// 设置目标选择模式
TargetSelector::SetMode(eTargetingMode::AutoPriority);
// 检查目标是否免疫伤害
if (!TargetSelector::IsInvulnerable(target, eDamageType::Magical)) {
// 释放技能...
}
# GetMode
eTargetingMode GetMode()
获取当前目标选择模式。
eTargetingMode mode = TargetSelector::GetMode();
if (mode == eTargetingMode::LowHP) {
// 当前为低血量优先模式
}
# GetPriority
float GetPriority(AIBaseClient* hero)
获取英雄的优先级。
参数名 | 参数类型 | 描述 |
---|---|---|
hero | AIBaseClient* | 目标英雄 |
auto enemy = ObjectManager::GetEnemies()[0];
float priority = TargetSelector::GetPriority(enemy);
# GetSelectedTarget
AIBaseClient* GetSelectedTarget()
获取玩家手动选择的目标。
AIBaseClient* target = TargetSelector::GetSelectedTarget();
if (target && target->IsValidTarget()) {
// 使用玩家选择的目标
}
# GetTarget
AIBaseClient* GetTarget(float range, eDamageType damageType, bool ignoreShieldSpells = true, bool TargetBoundingRadius = false, std::vector<AIBaseClient*> const& ignoredChamps = {}, Vector rangeCheckFrom = Vector::Zero)
根据设定的目标选择模式获取最佳目标。
参数名 | 参数类型 | 描述 |
---|---|---|
range | float | 选择范围 |
damageType | eDamageType | 伤害类型 |
ignoreShieldSpells | bool | 是否忽略护盾技能 |
TargetBoundingRadius | bool | 是否考虑目标碰撞体积 |
ignoredChamps | std::vector<AIBaseClient*> const& | 忽略的英雄列表 |
rangeCheckFrom | Vector | 距离检测起点 |
AIBaseClient* target = TargetSelector::GetTarget(900.0f, eDamageType::Magical);
if (target) {
// 使用选择的目标
}
# GetTarget
AIBaseClient* GetTarget(AIBaseClient* champion, float range, eDamageType damageType, bool ignoreShieldSpells = true, bool TargetBoundingRadius = false, std::vector<AIBaseClient*> const& ignoredChamps = {}, Vector rangeCheckFrom = Vector::Zero)
从指定英雄的位置获取最佳目标。
参数名 | 参数类型 | 描述 |
---|---|---|
champion | AIBaseClient* | 参考英雄 |
range | float | 选择范围 |
damageType | eDamageType | 伤害类型 |
ignoreShieldSpells | bool | 是否忽略护盾技能 |
TargetBoundingRadius | bool | 是否考虑目标碰撞体积 |
ignoredChamps | std::vector<AIBaseClient*> const& | 忽略的英雄列表 |
rangeCheckFrom | Vector | 距离检测起点 |
auto ally = ObjectManager::GetAllies()[0];
AIBaseClient* target = TargetSelector::GetTarget(ally, 800.0f, eDamageType::Physical);
if (target) {
// 使用选择的目标
}
# IsInvulnerable
bool IsInvulnerable(AIBaseClient* target, eDamageType damageType, bool ignoreShields = true)
判断目标是否无敌或免疫特定伤害类型。
参数名 | 参数类型 | 描述 |
---|---|---|
target | AIBaseClient* | 目标单位 |
damageType | eDamageType | 伤害类型 |
ignoreShields | bool | 是否忽略护盾 |
auto target = TargetSelector::GetTarget(900.0f, eDamageType::Magical);
if (target && !TargetSelector::IsInvulnerable(target, eDamageType::Magical)) {
// 目标可以受到魔法伤害
}
# SetMenu_OnlyAttackSelectedTarget
void SetMenu_OnlyAttackSelectedTarget(bool v)
设置是否只攻击选中目标。
参数名 | 参数类型 | 描述 |
---|---|---|
v | bool | 是否启用 |
// 启用只攻击选中目标
TargetSelector::SetMenu_OnlyAttackSelectedTarget(true);
// 禁用只攻击选中目标
TargetSelector::SetMenu_OnlyAttackSelectedTarget(false);
# SetMode
void SetMode(eTargetingMode mode)
设置目标选择模式。
参数名 | 参数类型 | 描述 |
---|---|---|
mode | eTargetingMode | 目标选择模式 |
// 设置为自动优先级模式
TargetSelector::SetMode(eTargetingMode::AutoPriority);
// 设置为最近距离模式
TargetSelector::SetMode(eTargetingMode::Closest);
# SetTarget
void SetTarget(AIBaseClient* hero)
手动设置目标选择器的目标。
参数名 | 参数类型 | 描述 |
---|---|---|
hero | AIBaseClient* | 目标英雄 |
auto enemy = ObjectManager::GetEnemies()[0];
TargetSelector::SetTarget(enemy);
← Prediction Utility →