Гайд InvalidateBoneCache

sapphire dev
Пользователь
Статус
Оффлайн
Регистрация
15 Мар 2018
Сообщения
188
Реакции[?]
124
Поинты[?]
36K
Для лохусоф делаю самый полезный гаед с выбором использования функции указанной в названии:

C++:
void invalidate_bone_cache()
{
    static auto invalidate_bone_cache_call = pattern::find(m_client_dll, XOR("E8 ? ? ? ? 43 3B 5D F4 7C CF 8B 75 FC 8B 7D 08")).relative().as<void(__thiscall*)(void*)>();
    static auto byte_10D5C0E0 = *(bool*)(pattern::find(m_client_dll, XOR("80 3D ? ? ? ? ? 74 16 A1 ? ? ? ? 48 C7 81")) + 0x2);
    const bool backup_byte = byte_10D5C0E0;
    byte_10D5C0E0 = true;
    invalidate_bone_cache_call(this);
    byte_10D5C0E0 = backup_byte;
}

C++:
void invalidate_bone_cache()
{
    static auto ptr_ModelBoneCounter = *(int*)(pattern::find(m_client_dll, XOR("A1 ? ? ? ? 48 C7 81 ? ? ? ? ? ? ? ?")) + 0x2);
    static auto offset_flLastBoneSetupTime = *(uintptr_t*)(pattern::find(m_client_dll, XOR("C7 87 ? ? ? ? ? ? ? ? 89 87 ? ? ? ? 8B 8F")) + 0x2);
    static auto offset_iMostRecentModelBoneCounter = *(uintptr_t*)(pattern::find(m_client_dll, XOR("89 87 ? ? ? ? 8B 8F ? ? ? ? 85 C9 74 10")) + 0x2);
    *(float*)(uintptr_t(this) + offset_flLastBoneSetupTime) = -FLT_MAX;
    *(int*)(uintptr_t(this) + offset_iMostRecentModelBoneCounter) = (ptr_ModelBoneCounter - 1);
}
 
Последнее редактирование:
Разработчик
Статус
Оффлайн
Регистрация
1 Сен 2018
Сообщения
1,602
Реакции[?]
882
Поинты[?]
117K
Я вижу вы любитель сканить паттерны по 5 миллионов раз? Производительность сказала спасибо!
 
sapphire dev
Пользователь
Статус
Оффлайн
Регистрация
15 Мар 2018
Сообщения
188
Реакции[?]
124
Поинты[?]
36K
Легенда форума
Статус
Оффлайн
Регистрация
16 Сен 2018
Сообщения
4,000
Реакции[?]
1,946
Поинты[?]
7K
Сверху Снизу