Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос CL_Move Shifting Crashing at Various Occasions

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
22 Янв 2020
Сообщения
101
Реакции
15
C++:
Expand Collapse Copy
void __cdecl Hooks::CLMove(float accumulated_extra_samples, bool bFinalTick)
{
    if (Globals::skip_ticks > 0 && !Globals::dt_charged) {
        Globals::m_nTickbaseShift = 0;
        Globals::skip_ticks--;
        if (Globals::skip_ticks == 0) {
            Globals::dt_charged = true;
        }
        Utils::Log("tried to recharge");
        return;
    }

    while (Globals::m_nTickbaseShift) {
        if (!Globals::LocalPlayer || !Globals::LocalPlayer->IsAlive() || !CanDT() || Globals::disable_dt || Globals::FreezeTime) {
            Globals::m_nTickbaseShift = 0;
            break;
        }
        Globals::m_nTickbaseShift--;

        bFinalTick = Globals::m_nTickbaseShift <= 0;

        CLMove_original(accumulated_extra_samples, bFinalTick); //where the breakpoint is triggered
    }

    CLMove_original(accumulated_extra_samples, bFinalTick);
}
This causes crashes if you try to shoot during freeze time, try to throw a nade (yes I dt with nades but it shouldn't be crashing), if you try to shoot right before you die, etc
Edit: the callstack shows original FrameStageNotify as well
 
Последнее редактирование:
C++:
Expand Collapse Copy
void __cdecl Hooks::CLMove(float accumulated_extra_samples, bool bFinalTick)
{
    if (Globals::skip_ticks > 0 && !Globals::dt_charged) {
        Globals::m_nTickbaseShift = 0;
        Globals::skip_ticks--;
        if (Globals::skip_ticks == 0) {
            Globals::dt_charged = true;
        }
        Utils::Log("tried to recharge");
        return;
    }

    while (Globals::m_nTickbaseShift) {
        if (!Globals::LocalPlayer || !Globals::LocalPlayer->IsAlive() || !CanDT() || Globals::disable_dt || Globals::FreezeTime) {
            Globals::m_nTickbaseShift = 0;
            break;
        }
        Globals::m_nTickbaseShift--;

        bFinalTick = Globals::m_nTickbaseShift <= 0;

        CLMove_original(accumulated_extra_samples, bFinalTick); //where the breakpoint is triggered
    }

    CLMove_original(accumulated_extra_samples, bFinalTick);
}
This causes crashes if you try to shoot during freeze time, try to throw a nade (yes I dt with nades but it shouldn't be crashing), if you try to shoot right before you die, etc
I think you don't need to call original twice
 
Назад
Сверху Снизу