Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Пытаюсь зделать про сприд/сид тригер

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Сен 2025
Сообщения
17
Реакции
0
иногда он вообще медлено стреляет иногда нормально иногда мисает как это можно исправить и вообще правильно я вычисляю пулю
код
mega pro spread pasta:
Expand Collapse Copy
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;
     }
 }
 
иногда он вообще медлено стреляет иногда нормально иногда мисает как это можно исправить и вообще правильно я вычисляю пулю
код
mega pro spread pasta:
Expand Collapse Copy
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;
     }
 }
Чо с есп? Екстернал чит?
 
иногда он вообще медлено стреляет иногда нормально иногда мисает как это можно исправить и вообще правильно я вычисляю пулю
код
mega pro spread pasta:
Expand Collapse Copy
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;
     }
 }
Так вроде норм же? Он расчитывает разброс, и правильно стреляет, почти во всех читах (кроме нла) миссает пс
 
иногда он вообще медлено стреляет иногда нормально иногда мисает как это можно исправить и вообще правильно я вычисляю пулю
код
mega pro spread pasta:
Expand Collapse Copy
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;
     }
 }
seed бери под индекс пули и нормализуй вектор
 
Назад
Сверху Снизу