Может кто подсказать смещение или как найти CWeaponSpecific->InZoomAction ?
int m_curr = 0x120
string -> Curr state
if(this-m_curr == 2){
//is zoomed
}
struct CWeaponGeneral
{
EWeaponStates m_currState() {
return driver.read<EWeaponStates>((uintptr_t)this + 0x120);
}
bool IsZooming() {
bool IsZoomStates = (this->m_currState() == EWeaponStates::eWS_IdleZoomed)
|| (this->m_currState() == EWeaponStates::eWS_ZoomedFire)
|| (this->m_currState() == EWeaponStates::eWS_ZoomInFire)
|| (this->m_currState() == EWeaponStates::eWS_ZoomOutFire);
if (!IsZoomStates) return 1;
else return 0;
}
};
попробуй сделать таким образом:Всё разобрался. Смещение верное, но почему-что не на всём оружие снайпера срабатывает проверка на прицел...
bool IsZooming() {
return api.read<int>((uintptr_t)this + 0x120) == 2;
}
Хорошо, что вы разобрались. Но, вам не стоит использовать эти костыли, просто вызывайте методы, которые сами определят в каком состоянии находится ваше оружие в данный момент. Получить все эти методы, вы можете просто изучив vmt в конструкторе класса CWeaponGeneral.Всё разобрался.
45 33 E4 48 8D 05 ? ? ? ? 48 89 01 48 8D 05 ? ? ? ?
Почему это костыль? Виртуальная функция хранит в себе эти параметры, да и в некоторых моментах в движке используют такими методами, нежели виртХорошо, что вы разобрались. Но, вам не стоит использовать эти костыли, просто вызывайте методы, которые сами определят в каком состоянии находится ваше оружие в данный момент. Получить все эти методы, вы можете просто изучив vmt в конструкторе класса CWeaponGeneral.
C++:45 33 E4 48 8D 05 ? ? ? ? 48 89 01 48 8D 05 ? ? ? ?
Ой, пока что это слишком сложно для меня. Я только учусь. Мб когда-то дойду до этого.Получить все эти методы, вы можете просто изучив vmt
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz