- Статус
- Оффлайн
- Регистрация
- 28 Фев 2026
- Сообщения
- 33
- Реакции
- 8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
больше не понадобится (до аг2 апдейта)
но хочу сказать о том что это не весь код и достаточно вещей не хватает (но это базовый вариант который работает как швейцарские часики хотя.. по крайне мере работал до аг2 апдейта)
а то в большинстве сурсов вижу неудачливые попытки ребилдить CCSPlayerMovementServices::RunCommand и тд
хаха ребят вы чего
но хочу сказать о том что это не весь код и достаточно вещей не хватает (но это базовый вариант который работает как швейцарские часики хотя.. по крайне мере работал до аг2 апдейта)
а то в большинстве сурсов вижу неудачливые попытки ребилдить CCSPlayerMovementServices::RunCommand и тд
хаха ребят вы чего
C++:
void CPrediction::Begin( CUserCmd* pUserCmd, CCSPlayerController* pLocalPlayerController, C_CSPlayerPawn* pLocalPlayerPawn ) noexcept
{
if ( pUserCmd->iSequenceNumber == PredictionData.m_iSequenceNumber )
return;
CNetworkGameClient* pNetworkGameClient = CTX::pCS2->pNetworkClientService->GetNetworkGameClient( );
if ( !pNetworkGameClient )
return;
PredictionData.m_flCurrentTime = CTX::pCS2->pGlobalVarsBase->flCurrentTime;
PredictionData.m_flFrameTime = CTX::pCS2->pGlobalVarsBase->flFrameTime;
PredictionData.m_bInPrediction = CTX::pCS2->pPrediction->bInPrediction;
PredictionData.m_bFirstTimePredicted = CTX::pCS2->pPrediction->bFirstTimePredicted;
PredictionData.m_bHasBeenPredicted = pUserCmd->bHasBeenPredicted;
PredictionData.m_bShouldPredict = pNetworkGameClient->bShouldPredict;
PredictionData.m_uPreFlags = pLocalPlayerPawn->GetFlags( );
CTX::pCS2->pGlobalVarsBase->flCurrentTime = TICKS_TO_TIME( pLocalPlayerController->GetTickBase( ) );
CTX::pCS2->pGlobalVarsBase->flFrameTime = CTX::pCS2->pPrediction->bEnginePaused ? 0.0f : TICK_INTERVAL;
CTX::pCS2->pPrediction->bInPrediction = true;
CTX::pCS2->pPrediction->bFirstTimePredicted = false;
pUserCmd->bHasBeenPredicted = false;
pNetworkGameClient->bShouldPredict = true;
if ( pNetworkGameClient->bShouldPredict && pNetworkGameClient->iDeltaTick > 0 && pNetworkGameClient->iServerTick > 0 )
{
const bool bInPrediction = pNetworkGameClient->bInPrediction;
pNetworkGameClient->bInPrediction = true;
CTX::pCS2->pPrediction->Update( PREDICTION_REASON_CREATEMOVE );
pNetworkGameClient->bInPrediction = bInPrediction;
}
}
void CPrediction::End( CUserCmd* pUserCmd, C_CSPlayerPawn* pLocalPlayerPawn ) noexcept
{
if ( pUserCmd->iSequenceNumber == PredictionData.m_iSequenceNumber )
return;
CNetworkGameClient* pNetworkGameClient = CTX::pCS2->pNetworkClientService->GetNetworkGameClient( );
if ( !pNetworkGameClient )
return;
CTX::pCS2->pGlobalVarsBase->flCurrentTime = PredictionData.m_flCurrentTime;
CTX::pCS2->pGlobalVarsBase->flFrameTime = PredictionData.m_flFrameTime;
CTX::pCS2->pPrediction->bInPrediction = PredictionData.m_bInPrediction;
CTX::pCS2->pPrediction->bFirstTimePredicted = PredictionData.m_bFirstTimePredicted;
pUserCmd->bHasBeenPredicted = PredictionData.m_bHasBeenPredicted;
pNetworkGameClient->bShouldPredict = PredictionData.m_bShouldPredict;
PredictionData.m_uPostFlags = pLocalPlayerPawn->GetFlags( );
PredictionData.m_iSequenceNumber = pUserCmd->iSequenceNumber;
}
