Вопрос Thirdperson

ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
Сделал антиаимы, хочу посмотреть с третьего лица, а моделька просто смотрит вперед при это другие игроки видят что я смотрю назад... Я пытался это пофиксить, но ничего не вышло. Подскажете что делать? База CSGOSimple.
thirdperson code:
C++:
void Visuals::ThirdPerson() {
    if (!g_LocalPlayer)
        return;

    if (g_Options.misc_thirdperson && g_LocalPlayer->IsAlive())
    {
        if (!g_Input->m_fCameraInThirdPerson)
        {
            g_Input->m_fCameraInThirdPerson = true;
        }

        float dist = g_Options.misc_thirdperson_dist;

        
        QAngle* view = g_LocalPlayer->GetVAngles();
        trace_t tr;
        Ray_t ray;

        Vector desiredCamOffset = Vector(cos(DEG2RAD(view->yaw)) * dist,
            sin(DEG2RAD(view->yaw)) * dist,
            sin(DEG2RAD(-view->pitch)) * dist
        );

        //cast a ray from the Current camera Origin to the Desired 3rd person Camera origin
        ray.Init(g_LocalPlayer->GetEyePos(), (g_LocalPlayer->GetEyePos() - desiredCamOffset));
        CTraceFilter traceFilter;
        traceFilter.pSkip = g_LocalPlayer;
        g_EngineTrace->TraceRay(ray, MASK_SHOT, &traceFilter, &tr);

        Vector diff = g_LocalPlayer->GetEyePos() - tr.endpos;

        float distance2D = sqrt(abs(diff.x * diff.x) + abs(diff.y * diff.y));// Pythagorean

        bool horOK = distance2D > (dist - 2.0f);
        bool vertOK = (abs(diff.z) - abs(desiredCamOffset.z) < 3.0f);

        float cameraDistance;

        if (horOK && vertOK)  // If we are clear of obstacles
        {
            cameraDistance = dist; // go ahead and set the distance to the setting
        }
        else
        {
            if (vertOK) // if the Vertical Axis is OK
            {
                cameraDistance = distance2D * 0.95f;
            }
            else// otherwise we need to move closer to not go into the floor/ceiling
            {
                cameraDistance = abs(diff.z) * 0.95f;
            }
        }
        g_Input->m_fCameraInThirdPerson = true;

        g_Input->m_vecCameraOffset.z = cameraDistance;
    }
    else
    {
        g_Input->m_fCameraInThirdPerson = false;
    }
}
 
Пользователь
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
172
Реакции[?]
66
Поинты[?]
34K
Сделал антиаимы, хочу посмотреть с третьего лица, а моделька просто смотрит вперед при это другие игроки видят что я смотрю назад... Я пытался это пофиксить, но ничего не вышло. Подскажете что делать? База CSGOSimple.
thirdperson code:
C++:
void Visuals::ThirdPerson() {
    if (!g_LocalPlayer)
        return;

    if (g_Options.misc_thirdperson && g_LocalPlayer->IsAlive())
    {
        if (!g_Input->m_fCameraInThirdPerson)
        {
            g_Input->m_fCameraInThirdPerson = true;
        }

        float dist = g_Options.misc_thirdperson_dist;

       
        QAngle* view = g_LocalPlayer->GetVAngles();
        trace_t tr;
        Ray_t ray;

        Vector desiredCamOffset = Vector(cos(DEG2RAD(view->yaw)) * dist,
            sin(DEG2RAD(view->yaw)) * dist,
            sin(DEG2RAD(-view->pitch)) * dist
        );

        //cast a ray from the Current camera Origin to the Desired 3rd person Camera origin
        ray.Init(g_LocalPlayer->GetEyePos(), (g_LocalPlayer->GetEyePos() - desiredCamOffset));
        CTraceFilter traceFilter;
        traceFilter.pSkip = g_LocalPlayer;
        g_EngineTrace->TraceRay(ray, MASK_SHOT, &traceFilter, &tr);

        Vector diff = g_LocalPlayer->GetEyePos() - tr.endpos;

        float distance2D = sqrt(abs(diff.x * diff.x) + abs(diff.y * diff.y));// Pythagorean

        bool horOK = distance2D > (dist - 2.0f);
        bool vertOK = (abs(diff.z) - abs(desiredCamOffset.z) < 3.0f);

        float cameraDistance;

        if (horOK && vertOK)  // If we are clear of obstacles
        {
            cameraDistance = dist; // go ahead and set the distance to the setting
        }
        else
        {
            if (vertOK) // if the Vertical Axis is OK
            {
                cameraDistance = distance2D * 0.95f;
            }
            else// otherwise we need to move closer to not go into the floor/ceiling
            {
                cameraDistance = abs(diff.z) * 0.95f;
            }
        }
        g_Input->m_fCameraInThirdPerson = true;

        g_Input->m_vecCameraOffset.z = cameraDistance;
    }
    else
    {
        g_Input->m_fCameraInThirdPerson = false;
    }
}
Тебе нужно углы третьего лица ставить самостоятельно

I::Prediction->SetLocalViewAngles(angles)
в FRAME_RENDER_START
 
ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
Тебе нужно углы третьего лица ставить самостоятельно

I::Prediction->SetLocalViewAngles(angles)
в FRAME_RENDER_START
Может я тебя заколебал, но все же, не подскажешь где взять этот prediction.cpp с содержанием setlocalviewangles? В исходниках не смог найти подходящего
 
Хех.......)#манипулятор #кукловод #манипуляция
Участник
Статус
Оффлайн
Регистрация
28 Дек 2019
Сообщения
560
Реакции[?]
224
Поинты[?]
3K
Может я тебя заколебал, но все же, не подскажешь где взять этот prediction.cpp с содержанием setlocalviewangles? В исходниках не смог найти подходящего
я уверен, что поиск для тебя просто шутка....
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
я уверен, что поиск для тебя просто шутка....
Пожалуйста, авторизуйтесь для просмотра ссылки.
вот щас встал с кровати, и посмотрел, у меня же другой сдк, а переместить эту фичу нельзя.. или как то это можно сделать, надеюсь на твою помощь
 
:roflanBuldiga:
Пользователь
Статус
Оффлайн
Регистрация
3 Апр 2019
Сообщения
428
Реакции[?]
117
Поинты[?]
1K
Спастить для тебя шутка? Что вообще у тебя за обрубок, а не сдк
 
ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
tift0 мб ты знаешь? я уже 3 дня пытаюсь это пофиксить, мне дали намек, но сдк не позволяет, а насчет измены сдк не получается
 
:roflanBuldiga:
Пользователь
Статус
Оффлайн
Регистрация
3 Апр 2019
Сообщения
428
Реакции[?]
117
Поинты[?]
1K
ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
zzz
Участник
Статус
Оффлайн
Регистрация
25 Сен 2017
Сообщения
899
Реакции[?]
306
Поинты[?]
6K
Хех.......)#манипулятор #кукловод #манипуляция
Участник
Статус
Оффлайн
Регистрация
28 Дек 2019
Сообщения
560
Реакции[?]
224
Поинты[?]
3K
ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
ну бля, я уже незнаю что делать.. добавить ничего не получается. Пробовал все, непонимаю как у вас это получается с чего вы начинали, ведь таких туторов по сдк нет...
 
Последнее редактирование:
// removed because antipasta
Забаненный
Статус
Оффлайн
Регистрация
10 Сен 2018
Сообщения
312
Реакции[?]
145
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну бля, я уже незнаю что делать.. добавить ничего не получается. Пробовал все, непонимаю как у вас это получается с чего вы начинали, ведь таких туторов по сдк нет...
Код:
void SetLocalViewAngles(QAngle& angView) {
        typedef void(__thiscall* oSetLocalViewAngles)(void*, QAngle&);
        return CallVFunction<oSetLocalViewAngles>(this, 13)(this, angView);
    }
 
ППХУДЕР
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2020
Сообщения
390
Реакции[?]
23
Поинты[?]
6K
Код:
void SetLocalViewAngles(QAngle& angView) {
        typedef void(__thiscall* oSetLocalViewAngles)(void*, QAngle&);
        return CallVFunction<oSetLocalViewAngles>(this, 13)(this, angView);
    }
будет ли правильным сделать так?
C++:
//hkCreateMove

ClientFrameStage_t stage;

if(stage == FRAME_RENDER_START)
    g_Prediction->SetLocalViewAngles(cmd->viewangles);

//hkCreateMoveEnd
Если нет, то где здесь ошибка? Куда правильнее это написать
 
Начинающий
Статус
Оффлайн
Регистрация
12 Фев 2020
Сообщения
37
Реакции[?]
9
Поинты[?]
0
будет ли правильным сделать так?
C++:
//hkCreateMove

ClientFrameStage_t stage;

if(stage == FRAME_RENDER_START)
    g_Prediction->SetLocalViewAngles(cmd->viewangles);

//hkCreateMoveEnd
Если нет, то где здесь ошибка? Куда правильнее это написать
Are you still struggling?
Do you want me to spoonfeed you ?
 
Сверху Снизу