Я ещё не проверял но имею такую теорию.IsInAbilityPhase чекни(C_DOTABaseAbility::m_bInAbilityPhase)
Пожалуйста, авторизуйтесь для просмотра ссылки.
если не секрет, то как там правильно итерировать надо партикли?позицию ульты сфа(где кастуется) можно найти по партиклям
Посмотреть вложение 267868
void* GetParticleList()
{
return *reinterpret_cast<void**>((uintptr_t)this + 0x88); /// maybe outdated
}
int GetParticlesCount()
{
return *reinterpret_cast<int*>((uintptr_t)this + 0x80); /// maybe outdated
}
int GetCurrentHandle()
{
return *reinterpret_cast<int*>((uintptr_t)this + 0xB8); /// maybe outdated
}
CParticleInstance* GetParticleByHandle(int Handle)
{
auto list = GetParticleList();
auto count = GetParticlesCount();
for (int i = 0; i < count; i++)
{
CParticleInstance* ParticleInstance = *reinterpret_cast<CParticleInstance**>((uintptr_t)list + i * 8);
if (!ParticleInstance || !ParticleInstance->CNewParticleEffect)
{
continue;
}
if (ParticleInstance->Handle == Handle)
{
return ParticleInstance;
}
}
return nullptr;
}
решил консолькой dumpparticlelist и смотрел че как и видно что как токо юзается ульта то из более интересных появляется hero_nevermore/nevermore_wings.впцфпозицию ульты сфа(где кастуется) можно найти по партиклям
Посмотреть вложение 267868
ищу партикли с помощью netchannel->postreceivednetmessage (messageid == 145), там ловлю партикль месседж == 0(GAME_PARTICLE_MANAGER_EVENT_CREATE) и записываю их в массив, а сортировать по партикль неймам можно с помощью resourcesystem->getresourcename(particleindex) (vfunc 32)если не секрет, то как там правильно итерировать надо партикли?
Просто я знаю как получать партиклю по хендлу но не совсем, не нашел ещё решения как найти по названию :
решил консолькой dumpparticlelist и смотрел че как и видно что как токо юзается ульта то из более интересных появляется hero_nevermore/nevermore_wings.впцфC++:void* GetParticleList() { return *reinterpret_cast<void**>((uintptr_t)this + 0x88); /// maybe outdated } int GetParticlesCount() { return *reinterpret_cast<int*>((uintptr_t)this + 0x80); /// maybe outdated } int GetCurrentHandle() { return *reinterpret_cast<int*>((uintptr_t)this + 0xB8); /// maybe outdated } CParticleInstance* GetParticleByHandle(int Handle) { auto list = GetParticleList(); auto count = GetParticlesCount(); for (int i = 0; i < count; i++) { CParticleInstance* ParticleInstance = *reinterpret_cast<CParticleInstance**>((uintptr_t)list + i * 8); if (!ParticleInstance || !ParticleInstance->CNewParticleEffect) { continue; } if (ParticleInstance->Handle == Handle) { return ParticleInstance; } } return nullptr; }
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz