Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Movement recorder не правильно воспроизводит запись

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Июн 2025
Сообщения
64
Реакции
1
Код:
Expand Collapse Copy
    static void Record()
    {
        if (!Globals::m_pCmd || !Globals::m_pBaseCmd)
            return;

        QAngle ang;
        {
            auto va = Globals::m_pBaseCmd->viewangles();
            ang.x = va.x();
            ang.y = va.y();
            ang.z = va.z();
        }

        NormalizeAngles(ang);

        recorded_cmd rec{};
        rec.buttons = Globals::m_pCmd->m_nButtons.m_nValue;
        rec.forwardmove = Globals::m_pBaseCmd->forwardmove();
        rec.leftmove = Globals::m_pBaseCmd->leftmove();
        rec.upmove = Globals::m_pBaseCmd->upmove();
        rec.viewangles = ang;
        rec.position = Globals::m_pLocalPlayerPawn->m_pGameSceneNode()->m_vecAbsOrigin();

        if (g_ResetNext)
        {
            g_Path.clear();
            g_ResetNext = false;
        }

        g_Path.push_back(rec);
    }

    static void Play()
    {
        if (!Globals::m_pCmd || !Globals::m_pBaseCmd)
            return;

        if (g_PlayIndex >= g_Path.size())
        {
            StopPlayback();
            return;
        }

        const recorded_cmd& rec = g_Path[g_PlayIndex];

        Globals::m_pBaseCmd->set_forwardmove(rec.forwardmove);
        Globals::m_pBaseCmd->set_leftmove(rec.leftmove);
        Globals::m_pBaseCmd->set_upmove(rec.upmove);

        QAngle ang = rec.viewangles;
        NormalizeAngles(ang);

        auto* va = Globals::m_pBaseCmd->mutable_viewangles();
        va->set_x(ang.x);
        va->set_y(ang.y);
        va->set_z(ang.z);

        Globals::m_pCmd->m_nButtons.m_nValue = rec.buttons;

        g_PlayIndex++;
    }
Как пофиксить?
 
Назад
Сверху Снизу