-
Автор темы
- #1
Я думаю, многие заметили что больше не получается по-человечески организовать смещение viewmodel offset по x,y,z и fov через конвары (значения крайне ограничены). Знаю, многие скорее всего уже догадались и нашли, но этот пост для тех кому копаться в новых слитых сурсах в поисках фикса лень - вот рабочая вещь
2 хука (для оффсетов и для фова)
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;
}