PasterAlmir С++ Участник Участник Статус Оффлайн Регистрация 27 Фев 2019 Сообщения 1,128 Реакции 393 14 Дек 2019 #1
DAEGER AGGRESSIVE ØŊE ŁØVE Начинающий Начинающий Статус Оффлайн Регистрация 4 Фев 2019 Сообщения 194 Реакции 19 14 Дек 2019 #2 Старый GetCSWpnData с паттерном заменяешь на следующий код C++: Expand Collapse Copy WeaponInfo_t* GetCSWpnData() { return Utils::CallVTable< WeaponInfo_t * (__thiscall*)(void*) >(this, 457)(this); } В utils.h добавляешь следующий код Код: Expand Collapse Copy template <typename T> static T CallVTable(void* pAddr, int iIndex) { return (*reinterpret_cast<T**>(pAddr))[iIndex]; }
Старый GetCSWpnData с паттерном заменяешь на следующий код C++: Expand Collapse Copy WeaponInfo_t* GetCSWpnData() { return Utils::CallVTable< WeaponInfo_t * (__thiscall*)(void*) >(this, 457)(this); } В utils.h добавляешь следующий код Код: Expand Collapse Copy template <typename T> static T CallVTable(void* pAddr, int iIndex) { return (*reinterpret_cast<T**>(pAddr))[iIndex]; }