Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 19 Сен 2025
- Сообщения
- 17
- Реакции
- 0
иногда он вообще медлено стреляет иногда нормально иногда мисает как это можно исправить и вообще правильно я вычисляю пулю
код
код
mega pro spread pasta:
inline void AngleVectors(const QAngle_t& angles, Vector_t* forward, Vector_t* right = nullptr, Vector_t* up = nullptr)
{
float sp = sinf(angles.x * 0.017453292f);
float cp = cosf(angles.x * 0.017453292f);
float sy = sinf(angles.y * 0.017453292f);
float cy = cosf(angles.y * 0.017453292f);
float sr = sinf(angles.z * 0.017453292f);
float cr = cosf(angles.z * 0.017453292f);
if (forward)
{
forward->x = cp * cy;
forward->y = cp * sy;
forward->z = -sp;
}
if (right)
{
right->x = -1.f * sr * sp * cy + -1.f * cr * -sy;
right->y = -1.f * sr * sp * sy + -1.f * cr * cy;
right->z = -1.f * sr * cp;
}
if (up)
{
up->x = cr * sp * cy + -sr * -sy;
up->y = cr * sp * sy + -sr * cy;
up->z = cr * cp;
}
}
auto pWeaponData = pWeapon->GetWeaponVData();
if (pWeaponData && fnGetHashSeed && fnCalculateSpreadAngle)
{
uint32_t nTickBase = pLocalController->GetTickBase();
uint32_t seed = fnGetHashSeed(nullptr, &angView, nTickBase);
float flInaccuracy = pWeapon->get_inaccuracy();
float flSpread = pWeaponData->GetSpread();
float flRecoilIndex = pWeapon->GetRecoilIndex();
int nWeaponID = pWeapon->GetAttributeManager().GetItem().GetItemDefinitionIndex();
int nNumBullets = pWeaponData->GetNumBullets();
float spread_x, spread_y;
fnCalculateSpreadAngle(nWeaponID, nNumBullets, 1, seed + 1,
flInaccuracy, flSpread, flRecoilIndex,
&spread_x, &spread_y);
Vector_t vForward, vRight, vUp;
AngleVectors(pUserCmd->pViewAngles->angValue, &vForward, &vRight, &vUp);
Vector_t vDirection = vForward + (vRight * spread_x) + (vUp * spread_y);
Vector_t vecTargetPos = pHitPawn->GetEyePosition();
float flDistance = vecStart.DistTo(vecTargetPos);
if (flDistance > 0.0f && flDistance <= pWeaponData->GetRange())
{
Vector_t vEndPos = vecStart + (vDirection * flDistance);
alignas(16) CGameTrace spreadTrace {};
spreadTrace.fraction = 1.0f;
EngineTrace::TraceLine(vecStart, vEndPos, &spreadTrace,
reinterpret_cast<uintptr_t>(pLocalPawn), 0x1C3003u);
if (spreadTrace.m_pHitEntity != reinterpret_cast<void*>(pHitPawn))
return;
}
}