# PredictionOutput
# 说明
用于存储技能预测计算的结果数据的结构体,包含预测的各种输出信息,如命中率、施放位置等。
# 如何使用
// 创建预测输入参数
PredictionInput input;
input.Unit = target;
input.Delay = 0.25f;
input.Speed = 1600.f;
input.Radius = 60.f;
input.Range = 1000.f;
input.Type = eSkillshotType::SkillshotLine;
input.Aoe = true; // 设置为AOE技能以检测可能命中的多个目标
// 进行预测
PredictionOutput output = Prediction::GetPrediction(input);
// 检查预测结果
if (output.Hitchance >= eHitChance::High)
{
// 获取建议的施放位置
Vector castPos = output.CastPosition();
// 获取目标的预测位置
Vector targetPos = output.UnitPosition();
// 检查可能命中的AOE目标数量
int targetsHit = output.AoeTargetsHitCount();
// 如果可以命中多个目标,则施放技能
if (targetsHit >= 2)
{
ObjectManager::Player()->CastSpell(eSpellSlot::R, castPos);
}
// 检查是否有碰撞
if (output.CollisionObjects.empty())
{
// 没有碰撞,可以施放技能
ObjectManager::Player()->CastSpell(eSpellSlot::Q, castPos);
}
else
{
// 有碰撞,输出碰撞对象信息
for (auto obj : output.CollisionObjects)
{
Console::Add("Collision with: %s", obj->GetBuildInfo().Name.c_str());
}
}
}
# Properties
属性名 | 类型 | 描述 |
---|---|---|
AoeTargetsHit | std::vector<AIBaseClient*> | AOE技能可能命中的目标列表 |
CollisionObjects | std::vector<AIBaseClient*> | 碰撞到的对象列表 |
Hitchance | eHitChance | 预测的命中几率级别 |
_aoeTargetsHitCount | int | AOE技能命中的目标数量(内部变量) |
Input | PredictionInput | 用于此预测的输入参数 |
# 方法
方法名 | 返回类型 | 描述 |
---|---|---|
AoeTargetsHitCount() | int | 获取AOE技能命中的目标数量 |
CastPosition() | Vector | 获取建议的技能施放位置 |
CastPosition_Set(Vector const& value) | void | 设置建议的技能施放位置 |
UnitPosition() | Vector | 获取目标预测位置 |
UnitPosition_Set(Vector const& value) | void | 设置目标预测位置 |