Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Movement prediction issue (solved)

  • Автор темы Автор темы ayuqe
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Сен 2025
Сообщения
18
Реакции
2
всем привет, я немного новичок в читдеве, может ли кто-то объяснить как работает мувмент предикт в кс2?

мне надо реализовать предикт ффлагов на 1 тик, но я вообще не понимаю с чего мне начать...
я пытался смотреть исходники предикта в дарксайде и сенсикале, но все равно не особо понял как эта тема работает
 
Писюнчик ещё не вырос чтобы таким заниматься, но если тебе действительно интересно и хочешь вникнуть, посмотри разные сурсы, их сотни буквально, как там реализован предикт. Вникай в каждую строчку кода, что она делает, не понимаю почему вас школьников не учат гуглить. Меня когда обучали пользоваться компом то каждый день вдалбливали как юзать гугл и яндекс. Для хорошего кодера поиск информации очень важен.

Теперь перейдём к твоему вопросу, тебе нужно понять зачем ты это делаешь, зачем тебе вообще предикт? Увы но информации на английском зачастую бывает больше чем на русском, поэтому учи инглиш, пригодится.

Engine prediction is used for hitting people when you move mostly. When you run your aimbot, it always tends to be 1 cmd update behind, making you miss your shot because of that. Thats what engine prediction fixes by catching up

A great example of this is you go into aim_botz or something, then start bhopping at massive speeds, then you will notice how big of an impact engine prediction really has for nospread people

Еушники говорят что на клиенте ты всегда на 1 тик опаздываешь от сервера, чтобы это компенсировать и ты бхопил быстро и сервер тебя не стопил из за репредикта огромной разницы в сетевых переменных, тебе и нужен тот самый заветный пердикт на локал плеере. Врубаешь предикт, сохраняешь флаги которые ты хочешь и потом юзаешь их внутри мувмент функций, завершаешь предикт.

Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad)
 
Последнее редактирование:
Писюнчик ещё не вырос чтобы таким заниматься, но если тебе действительно интересно и хочешь вникнуть, посмотри разные сурсы, их сотни буквально, как там реализован предикт. Вникай в каждую строчку кода, что она делает, не понимаю почему вас школьников не учат гуглить. Меня когда обучали пользоваться компом то каждый день вдалбливали как юзать гугл и яндекс. Для хорошего кодера поиск информации очень важен.

Теперь перейдём к твоему вопросу, тебе нужно понять зачем ты это делаешь, зачем тебе вообще предикт? Увы но информации на английском зачастую бывает больше чем на русском, поэтому учи инглиш, пригодится.

Engine prediction is used for hitting people when you move mostly. When you run your aimbot, it always tends to be 1 cmd update behind, making you miss your shot because of that. Thats what engine prediction fixes by catching up

A great example of this is you go into aim_botz or something, then start bhopping at massive speeds, then you will notice how big of an impact engine prediction really has for nospread people

Еушники говорят что на клиенте ты всегда на 1 тик опаздываешь от сервера, чтобы это компенсировать и ты бхопил быстро и сервер тебя не стопил из за репредикта огромной разницы в сетевых переменных, тебе и нужен тот самый заветный пердикт на локал плеере. Врубаешь предикт, сохраняешь флаги которые ты хочешь и потом юзаешь их внутри мувмент функций, завершаешь предикт.

Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad)

C++:
Expand Collapse Copy
    const bool predicted = prediction::start( cmd );

    // set cmd->buttons.buttonstates &= ~IN_JUMP; here

    if ( local_player->flags( ) & FL_ONGROUND ) {

        // set cmd->buttons.buttonstates to |= IN_JUMP; here

        c_subtick_move_step* new_step = cmd->allocate_new_move_step( 1.0F );

        new_step->set_button( IN_JUMP );
        new_step->set_pressed( true );

        new_step = cmd->allocate_new_move_step( 1.0F );

        new_step->set_button( IN_JUMP );
        new_step->set_pressed( false );
    }

    if ( predicted )
        prediction::end( );
спасибо за объяснение

по поводу гугла - я пытался искать сурсы/темы связанные с предиктом и на юге, и на уц, и в сурсах разных паст с гитхаба, но оттуда толком ниче не смог понять всеравно
может ты сможешь посоветовать какие-либо ресурсы, где я могу искать нормальную информацию? или я просто недостаточно искал на уц и юге?

(P.S. я не отрицаю того факта, что я возможно просто нуб ебаный и не смог из качественной информации получить пользу)
 
Писюнчик ещё не вырос чтобы таким заниматься, но если тебе действительно интересно и хочешь вникнуть, посмотри разные сурсы, их сотни буквально, как там реализован предикт. Вникай в каждую строчку кода, что она делает, не понимаю почему вас школьников не учат гуглить. Меня когда обучали пользоваться компом то каждый день вдалбливали как юзать гугл и яндекс. Для хорошего кодера поиск информации очень важен.

Теперь перейдём к твоему вопросу, тебе нужно понять зачем ты это делаешь, зачем тебе вообще предикт? Увы но информации на английском зачастую бывает больше чем на русском, поэтому учи инглиш, пригодится.

Engine prediction is used for hitting people when you move mostly. When you run your aimbot, it always tends to be 1 cmd update behind, making you miss your shot because of that. Thats what engine prediction fixes by catching up

A great example of this is you go into aim_botz or something, then start bhopping at massive speeds, then you will notice how big of an impact engine prediction really has for nospread people

Еушники говорят что на клиенте ты всегда на 1 тик опаздываешь от сервера, чтобы это компенсировать и ты бхопил быстро и сервер тебя не стопил из за репредикта огромной разницы в сетевых переменных, тебе и нужен тот самый заветный пердикт на локал плеере. Врубаешь предикт, сохраняешь флаги которые ты хочешь и потом юзаешь их внутри мувмент функций, завершаешь предикт.

Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad)

C++:
Expand Collapse Copy
    const bool predicted = prediction::start( cmd );

    // set cmd->buttons.buttonstates &= ~IN_JUMP; here

    if ( local_player->flags( ) & FL_ONGROUND ) {

        // set cmd->buttons.buttonstates to |= IN_JUMP; here

        c_subtick_move_step* new_step = cmd->allocate_new_move_step( 1.0F );

        new_step->set_button( IN_JUMP );
        new_step->set_pressed( true );

        new_step = cmd->allocate_new_move_step( 1.0F );

        new_step->set_button( IN_JUMP );
        new_step->set_pressed( false );
    }

    if ( predicted )
        prediction::end( );
when - 1.f wrong
just reverse CPrediction::RunCommand, CPrediction::Update functions
C++:
Expand Collapse Copy
// xreferences: "CPrediction::Update", "runcommand:%04d,tick:%u"

also u can check CNetworkGameClient::ClientSidePredict function (and see where and how the game calls it)
C++:
Expand Collapse Copy
// xreferences: "CNetworkGameClient::ClientSidePredict"
sadly there is no runcommand in prediction(((
 
всем привет, я немного новичок в читдеве, может ли кто-то объяснить как работает мувмент предикт в кс2?

мне надо реализовать предикт ффлагов на 1 тик, но я вообще не понимаю с чего мне начать...
я пытался смотреть исходники предикта в дарксайде и сенсикале, но все равно не особо понял как эта тема работает
по поводу твоего вопроса, для точного предикшена тебе следует залесть в ранкомманд, а конкретно там посмотри как тикбаза ставится, на серваке чекни где вызывается, из каких мест, там есть одно место(это задание тебе найти его), где игра по интересному запускает ранкомманд, собственно это то что тебе и нужно делать в чите
 
по поводу твоего вопроса, для точного предикшена тебе следует залесть в ранкомманд, а конкретно там посмотри как тикбаза ставится, на серваке чекни где вызывается, из каких мест, там есть одно место(это задание тебе найти его), где игра по интересному запускает ранкомманд, собственно это то что тебе и нужно делать в чите
т.е. если я изменю функцию ранкомманд, то будет работать такой предикт?

Код:
Expand Collapse Copy
MoveService->SetPredictionCommand(Cmd)
MoveService->RunCommand(Cmd)
MoveService->ResetPredictionCommand()

или нужно вызывать какие-то дополнительные функции?

кстати я заметил, что если я втупую сделаю CPrediction::Update(PredictionReasonCreateMove, TickCount), то предикт правильно выдаёт флаги на 1 тик вперёд, но пиздец джиттерит персонажа при движении мышью, пока что вообще не понимаю в чём проблема..

попробую сегодня разобраться с ранкомманд по твоему гайду, ибо без использования CPrediction::Update ничего не предиктится

спасибо
 
u just can call CNetworkGameClient::ClientSidePredict instead of CPrediction::Update

also some useful shit

C++:
Expand Collapse Copy
/* reasons for call ClientSidePrediction */
enum EPredReason : int
{
    CreateMove = 0,
    DemoPreEntity = 1,
    DemoSimulation = 2,
    PostNetUpdate = 3,
    ServerStarvedAndAddedUsercmds = 4
};
thank you,

by any chance, can you please explain why CPrediction::Update causing shit ton of jitter? im really confused rn (im new to cheatdev, sorry for dumbass questions..)
 
idk maybe you're calling him with the wrong tick
just call CNetworkGameClient::ClientSidePredict
clientsidepredict worked, thank you so much


по поводу твоего вопроса, для точного предикшена тебе следует залесть в ранкомманд, а конкретно там посмотри как тикбаза ставится, на серваке чекни где вызывается, из каких мест, там есть одно место(это задание тебе найти его), где игра по интересному запускает ранкомманд, собственно это то что тебе и нужно делать в чите
заработало с ClientSidePredict по совету другого типа, твой совет с ранкоммандом тоже заработал, я понял, что у меня ранкомманд с неправильным айдишником немного был... 26 вместо 27, всё завелось без ребилда ранкомманда по итогу


всем спасибо за помощь!!
 
clientsidepredict worked, thank you so much



заработало с ClientSidePredict по совету другого типа, твой совет с ранкоммандом тоже заработал, я понял, что у меня ранкомманд с неправильным айдишником немного был... 26 вместо 27, всё завелось без ребилда ранкомманда по итогу


всем спасибо за помощь!!
как ты реализовал клиент сайд предикшен?
 
Назад
Сверху Снизу