# Spellbook
# 说明
Spellbook类是管理和操作英雄技能的核心类,通过它可以获取当前施法状态、技能位置信息以及施法者和目标等信息。
# 如何使用
AIBaseClient* hero = ObjectManager::Player();
if (hero) {
Spellbook* book = hero->SpellBook();
if (book && book->IsCastingSpell()) {
// 英雄正在施放技能
}
}
# Slot
eSpellSlot Slot()
获取当前正在施放的技能栏位。
Spellbook* book = hero->SpellBook();
if (book) {
eSpellSlot currentSlot = book->Slot();
// 根据技能栏位判断正在施放什么技能
}
# Slot2
eSpellSlot Slot2()
获取当前施放技能的次要栏位。
Spellbook* book = hero->SpellBook();
if (book) {
eSpellSlot secondarySlot = book->Slot2();
// 使用次要栏位信息
}
# CastTime
float CastTime()
获取当前技能开始施放的时间点。
Spellbook* book = hero->SpellBook();
if (book) {
float castTime = book->CastTime();
// 使用施法开始时间
}
# CastEndTime
float CastEndTime()
获取当前技能施放结束的时间点。
Spellbook* book = hero->SpellBook();
if (book) {
float endTime = book->CastEndTime();
// 计算技能还需要多久才能施放完成
float remainingCastTime = endTime - Game::Time();
}
# EndTime
float EndTime()
获取技能施放的结束时间点。
Spellbook* book = hero->SpellBook();
if (book) {
float endTime = book->EndTime();
// 使用技能结束时间
}
# Delay
float Delay()
获取当前技能的延迟。
Spellbook* book = hero->SpellBook();
if (book) {
float delay = book->Delay();
// 使用技能延迟信息
}
# CastDelay
float CastDelay()
获取当前技能的施法延迟。
Spellbook* book = hero->SpellBook();
if (book) {
float castDelay = book->CastDelay();
// 使用施法延迟进行计算
}
# MissileRadius
float MissileRadius()
获取当前技能弹道的半径。
Spellbook* book = hero->SpellBook();
if (book) {
float radius = book->MissileRadius();
// 使用弹道半径信息
}
# MissileNetworkId
int MissileNetworkId()
获取当前技能弹道的网络ID。
Spellbook* book = hero->SpellBook();
if (book) {
int missileId = book->MissileNetworkId();
// 使用弹道网络ID
}
# Start
Vector const& Start()
获取当前技能的起始位置。
Spellbook* book = hero->SpellBook();
if (book) {
Vector startPos = book->Start();
// 使用技能起始位置
}
# End
Vector const& End()
获取当前技能的目标位置。
Spellbook* book = hero->SpellBook();
if (book) {
Vector endPos = book->End();
// 使用技能目标位置
}
# End2
Vector const& End2()
获取当前技能的次要目标位置。
Spellbook* book = hero->SpellBook();
if (book) {
Vector secondaryEndPos = book->End2();
// 使用技能次要目标位置
}
# Direction
Vector const& Direction()
获取当前技能的方向向量。
Spellbook* book = hero->SpellBook();
if (book) {
Vector dir = book->Direction();
// 使用技能方向向量
}
# IsAutoAttacking
bool IsAutoAttacking()
判断是否正在进行普通攻击。
Spellbook* book = hero->SpellBook();
if (book && book->IsAutoAttacking()) {
// 英雄正在进行普通攻击
}
# IsCastingSpell
bool IsCastingSpell()
判断是否正在施放技能。
Spellbook* book = hero->SpellBook();
if (book && book->IsCastingSpell()) {
// 英雄正在施放技能
}
# Sender
AIBaseClient* Sender()
获取当前技能的施放者。
Spellbook* book = hero->SpellBook();
if (book) {
AIBaseClient* caster = book->Sender();
if (caster) {
// 使用施放者信息
}
}
# Target
AIBaseClient* Target()
获取当前技能的目标。
Spellbook* book = hero->SpellBook();
if (book) {
AIBaseClient* target = book->Target();
if (target) {
// 使用技能目标信息
}
}
# SData
SpellData* SData()
获取当前技能的技能数据。
Spellbook* book = hero->SpellBook();
if (book) {
SpellData* spellData = book->SData();
if (spellData) {
// 使用技能数据
}
}
← SpellDataInst Vector →