Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- oid FakeLagPrediction(C_BaseEntity *pBaseEntity)
- {
- if (!pBaseEntity)
- return;
- for (int Index = 1; Index <= g_pGlobals->maxEntities; Index++)
- {
- C_BaseEntity *pIndex = (C_BaseEntity*)entitylist->GetClientEntity(Index);
- if (pIndex == pBaseEntity || !pIndex) continue;
- if (!pIndex->IsDormant() || pIndex->GetHealth() > 0 || pIndex->m_iTeamNum == pBaseEntity->m_iTeamNum) continue;
- float flSimTime = pIndex->GetSimulationTime();
- if (m_pPlayerlist[Index].old_flTickCount == flSimTime)
- {
- m_pPlayerlist[Index].flLostTick += 1.0f;
- }
- else
- {
- m_pPlayerlist[Index].flLostTick = 0.0f;
- }
- m_pPlayerlist[Index].old_flTickCount = flSimTime;
- if (m_pPlayerlist[Index].flLostTick >= 15.0f) m_pPlayerlist[Index].flLostTick = 0;
- }
- }
- void ExtraPolation(C_BaseEntity *pBaseEntity, static Vector m_vecPosition, Vector &vEyePos, int Index)
- {
- C_BaseEntity *pEntity = (C_BaseEntity*)entitylist->GetClientEntity(Index);
- Vector vOld[65];
- Vector vOldMe;
- Vector vAccel[65];
- Vector vMyAccel;
- Vector vecEnemyVelocity = pEntity->GetVelocity();
- Vector vMyVel = pBaseEntity->GetVelocity();
- Vector vDelta = vecEnemyVelocity - vOld[Index];
- vOld[Index] = vecEnemyVelocity;
- if (vDelta != Vector(0.0f, 0.0f, 0.0f))
- {
- vAccel[Index] = vDelta;
- }
- Vector vDeltaMe = vMyVel - vOldMe;
- vOldMe = vMyVel;
- if (vDeltaMe != Vector(0.0f, 0.0f, 0.0f))
- {
- vMyAccel = vDeltaMe;
- }
- float flTick = g_pGlobals->interval_per_tick;
- int iFakeLagCmd = m_pPlayerlist[Index].flLostTick;
- if (iFakeLagCmd > 5.0f)
- {
- flTick += g_pGlobals->interval_per_tick * m_pPlayerlist[Index].flLostTick;
- if (vAccel[Index] != Vector(0.0f, 0.0f, 0.0f) || vMyAccel != Vector(0.0f, 0.0f, 0.0f))
- {
- Vector vDivide;
- VectorDivide((vAccel[Index] - vMyAccel) * sqrt(flTick) + (vecEnemyVelocity - vMyVel) * flTick + m_vecPosition - vEyePos, 0.5f, vDivide);
- m_vecPosition -= vDivide;
- g_pCVar->FindVar("cl_interpolate")->SetValue("0.695");
- g_pCVar->FindVar("cl_updaterate")->SetValue("1048576");
- g_pCVar->FindVar("cl_cmdrate")->SetValue("1048576");
- }
- }
- if (iFakeLagCmd <= 5.0f && iFakeLagCmd > 1.0f)
- {
- flTick += g_pGlobals->interval_per_tick * m_pPlayerlist[Index].flLostTick;
- if (vAccel[Index] != Vector(0.0f, 0.0f, 0.0f) || vMyAccel != Vector(0.0f, 0.0f, 0.0f))
- {
- Vector vDivide;
- VectorDivide((vAccel[Index] - vMyAccel) * sqrt(flTick) + (vecEnemyVelocity - vMyVel) * flTick + m_vecPosition - vEyePos, 0.5f, vDivide);
- m_vecPosition -= vDivide;
- g_pCVar->FindVar("cl_interpolate")->SetValue("0.7");
- g_pCVar->FindVar("cl_updaterate")->SetValue("66");
- g_pCVar->FindVar("cl_cmdrate")->SetValue("66");
- }
- }
- if (iFakeLagCmd == 1.0f)
- {
- if (vAccel[Index] != Vector(0.0f, 0.0f, 0.0f) || vMyAccel != Vector(0.0f, 0.0f, 0.0f))
- {
- Vector vDivide;
- VectorDivide((vAccel[Index] - vMyAccel) * sqrt(flTick) + (vecEnemyVelocity - vMyVel) * flTick + m_vecPosition - vEyePos, 0.5f, vDivide);
- m_vecPosition += vDivide;
- g_pCVar->FindVar("cl_updaterate")->SetValue("67");
- g_pCVar->FindVar("cl_cmdrate")->SetValue("67");
- g_pCVar->FindVar("cl_interpolate")->SetValue("1");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement