# MissileClient
# 说明
MissileClient类用于获取和管理游戏中投射物的相关属性,例如技能槽位、起始位置、目标位置、技能数据、目标对象和施法者等信息。
# 如何使用
// 遍历所有投射物
for (auto missile : ObjectManager::GetAllMissile())
{
if (missile->IsValid() && missile->IsEnemy())
{
// 获取投射物的施法者
AIBaseClient* caster = missile->SpellCaster();
if (caster && caster->IsValid() && caster->IsAIHero())
{
// 获取投射物的技能数据
SpellData* spellData = missile->SData();
if (spellData)
{
Console::Add("检测到敌方英雄 %s 的投射物: %s", caster->ChampionName(), spellData->Name());
}
}
}
}
# Slot
eSpellSlot Slot()
获取投射物对应的技能槽位。
eSpellSlot slot = missile->Slot();
if (slot == eSpellSlot::Q)
{
Console::Add("检测到Q技能投射物");
}
# StartPosition
Vector const& StartPosition()
获取投射物的起始位置。
Vector startPos = missile->StartPosition();
Console::Add("投射物起始位置: %.1f, %.1f, %.1f", startPos.x, startPos.y, startPos.z);
# EndPosition
Vector const& EndPosition()
获取投射物的目标位置。
Vector endPos = missile->EndPosition();
// 计算投射物飞行距离
float distance = startPos.Distance(endPos);
Console::Add("投射物飞行距离: %.1f", distance);
# EndPosition2
Vector const& EndPosition2()
获取投射物的第二目标位置(某些特殊技能使用)。
Vector endPos2 = missile->EndPosition2();
# SData
SpellData* SData()
获取投射物的技能数据。
SpellData* spellData = missile->SData();
if (spellData)
{
Console::Add("投射物名称: %s", spellData->Name());
Console::Add("投射物速度: %.1f", spellData->MissileSpeed());
}
# Target
AIBaseClient* Target()
获取投射物的目标对象。
AIBaseClient* target = missile->Target();
if (target && target->IsValid() && target->IsMe())
{
Console::Add("检测到指向自己的投射物!");
}
# SpellCaster
AIBaseClient* SpellCaster()
获取投射物的施法者。
AIBaseClient* caster = missile->SpellCaster();
if (caster && caster->IsValid() && caster->IsAIHero())
{
Console::Add("施法者: %s", caster->ChampionName());
}
← MenuOption Spell →