Вопрос Как написать на с++ thirdperson?

  • Автор темы Автор темы glowee
  • Дата начала Дата начала
Помогите, как делать thirdperson, то есть не просто скинуть код, а именно чтоб я понял, что за что отвечает
Ну меняешь состояние камеры и ставишь её позицию на более удобную для осмотра
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1. хукаешь функцию override view (модуль - client.dll, сигнатура - 55 8B EC 83 E4 F8 8B 4D 04 83 EC 58)
2. получаешь инпут интерфейс (
Пожалуйста, авторизуйтесь для просмотра ссылки.
,
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
3. в твоей хукнунтой функции вставляешь такой код:
C++:
Expand Collapse Copy
void __fastcall c_hooks::hk_override_view(void* ecx, void* edx, c_view_setup* setup_view)
{
    /* аннулируем значение переменной камеры, чтобы исключить проблемы после смерти (п.с как вариант можно через евент, но это очень геморно)*/
    if (!g_sdk.m_local()->is_alive())
    {
        g_sdk.m_interfaces.m_input->m_camera_in_third_person = false;
        return;
    }
 
    /* включаем вид от третьего лица (п.с можешь сделать доп чек по бинду) */
    if (!g_sdk.m_interfaces.m_input->m_camera_in_third_person)
        g_sdk.m_interfaces.m_input->m_camera_in_third_person = true;

    /* выставляем дистанцию */
    g_sdk.m_interfaces.m_input->m_camera_offset.z = static_cast<float>(g_cfg.m_misc.m_thirdperson_distance);
    return g_sdk.m_hooks_data.m_originals.m_override_view(ecx, setup_view);
}
 
1. хукаешь функцию override view (модуль - client.dll, сигнатура - 55 8B EC 83 E4 F8 8B 4D 04 83 EC 58)
2. получаешь инпут интерфейс (
Пожалуйста, авторизуйтесь для просмотра ссылки.
,
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
3. в твоей хукнунтой функции вставляешь такой код:
C++:
Expand Collapse Copy
void __fastcall c_hooks::hk_override_view(void* ecx, void* edx, c_view_setup* setup_view)
{
    /* аннулируем значение переменной камеры, чтобы исключить проблемы после смерти (п.с как вариант можно через евент, но это очень геморно)*/
    if (!g_sdk.m_local()->is_alive())
    { 
        g_sdk.m_interfaces.m_input.m_camera_in_third_person = false;
        return;
    }
  
    /* включаем вид от третьего лица (п.с можешь сделать доп чек по бинду) */
    if (!g_sdk.m_interfaces.m_input.m_camera_in_third_person)
        g_sdk.m_interfaces.m_input.m_camera_in_third_person = true;

    /* выставляем дистанцию */
    g_sdk.m_interfaces.m_input->m_camera_offset.z = static_cast<float>(g_cfg.m_misc.m_thirdperson_distance);
    return g_sdk.m_hooks_data.m_originals.m_override_view(ecx, setup_view);
}
бля спс помог
 
Назад
Сверху Снизу