Начинающий
- Статус
- Оффлайн
- Регистрация
- 2 Ноя 2024
- Сообщения
- 42
- Реакции
- 4
давно еще разрабатывал, работало очень даже хорошо (делал на базе асфиксии).
если че делал этим апрелем:
else if (strafeMode == 2)
{
Vector_t vecVelocity = pLocalPawn->GetAbsVelocity();
QAngle_t vecLocalAngles = pUserCmd->pViewAngles->angValue;
vecLocalAngles.z = 0.0f;
float flSpeed = vecVelocity.Length2D();
if (flSpeed < C_GET(float, Vars.flMinimumVelocity))
return;
float flDeltaAir = CalculateStrafeDelta(flSpeed);
if (flDeltaAir == 0.0f)
return;
float flVelocityAngle = std::atan2(vecVelocity.y, vecVelocity.x) - deg2rad(vecLocalAngles.y);
float flBestAngle = std::atan2(pUserCmd->flSideMove, pUserCmd->flForwardMove);
float flDeltaAngle = DeltaAngle(flVelocityAngle, flBestAngle);
float flFinalMove = (flDeltaAngle < 0.0f) ? flVelocityAngle + flDeltaAir : flVelocityAngle - flDeltaAir;
QAngle_t vecCurrentAngles = vecLocalAngles;
vecCurrentAngles.y = std::fmod(rad2deg(flFinalMove), 45.0f) + vecLocalAngles.y;
pUserCmd->pViewAngles->angValue = vecCurrentAngles;
pUserCmd->SetBits(EBaseCmdBits::BASE_BITS_VIEWANGLES);
pUserCmd->flForwardMove = std::cos(flFinalMove);
pUserCmd->flSideMove = std::sin(flFinalMove);
pUserCmd->SetBits(EBaseCmdBits::BASE_BITS_FORWARDMOVE | EBaseCmdBits::BASE_BITS_LEFTMOVE);
}