Исходник Viewmodel cvar fix

Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2017
Сообщения
386
Реакции[?]
32
Поинты[?]
8K
Я думаю, многие заметили что больше не получается по-человечески организовать смещение viewmodel offset по x,y,z и fov через конвары (значения крайне ограничены). Знаю, многие скорее всего уже догадались и нашли, но этот пост для тех кому копаться в новых слитых сурсах в поисках фикса лень - вот рабочая вещь

2 хука (для оффсетов и для фова)
C++:
//"client.dll" "55 8B EC 8B 45 08 F3 0F 7E 45"
//inline std::add_pointer_t<int __fastcall(uintptr_t, uintptr_t, int, float, float, float)> o_set_viewmodel_offsets;
//HOOK(set_viewmodel_offsets, hk_set_viewmodel_offsets, o_set_viewmodel_offsets);
int __fastcall hk_set_viewmodel_offsets(uintptr_t ecx, uintptr_t edx, int something, float x, float y, float z) {
    if (!g_interfaces.m_engine->IsInGame() || !g_interfaces.m_engine->IsConnected())
        return o_set_viewmodel_offsets(ecx, edx, something, x, y, z);

    if (!g_sdk.m_local() || !g_sdk.m_local()->is_alive())
        return o_set_viewmodel_offsets(ecx, edx, something, x, y, z);

    if (g_sdk.m_local()->is_scoped())
        return o_set_viewmodel_offsets(ecx, edx, something, x, y, z);

    if (config.misc_fov_offset)
    {
        x = config.misc_fov_viewmodel_x;
        y = config.misc_fov_viewmodel_y;
        z = config.misc_fov_viewmodel_z;
    }

    return o_set_viewmodel_offsets(ecx, edx, something, x, y, z);
}

//"client.dll" "55 8B EC 8B 4D 04 83 EC 08 57"
//typedef float_t(__thiscall* get_viewmodel_fov_t)(LPVOID);
//get_viewmodel_fov_t get_viewmodel_fov = NULL;
//HOOK(get_viewmodel_fov, hk_get_viewmodel_fov, o_get_viewmodel_fov);
float_t __fastcall hk_get_viewmodel_fov(LPVOID pEcx, uint32_t)
{
    return 68.f + config.misc_fov_viewmodel;
}
 
Участник
Статус
Оффлайн
Регистрация
16 Июн 2017
Сообщения
825
Реакции[?]
179
Поинты[?]
2K
это же фиксится 1 строчкой, уже давно выкладывали
 
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2017
Сообщения
386
Реакции[?]
32
Поинты[?]
8K
Сверху Снизу