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

Вопрос Крашит при высчитывании сприда

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Мар 2026
Сообщения
25
Реакции
1
дебагер - ничего, чёт я запутался, 2 день не могу найти ошибку, база великой андромеды


seed trigger:
Expand Collapse Copy
void LegitAim::ProcessPlayer(CCSPlayerController* pController, C_CSPlayerPawn* pPawn, CCSGOInput* input, CUserCmd* cmd)
{
    auto* pLocalController = GetCL_Players()->GetLocalPlayerController();
    if (!pLocalController) return;

    if (pController == pLocalController) return;
    auto* pLocalPawn = pLocalController->m_hPawn().Get<C_CSPlayerPawn>();
    if (!pLocalPawn) return;
    if (!pPawn) return;

    if (pPawn->m_iTeamNum() == pLocalPawn->m_iTeamNum()) return;

    const Vector3 head = GetCL_Bones()->GetBonePositionByName(pPawn, "head_0");
    if (head.IsZero())
        return;

    Vector3 localPos = pLocalPawn->GetEyePosition();
    QAngle target = Math::CalcAngle(localPos, head);

    auto weapon = GetCL_Weapons();
    if (!weapon) return;

    auto activeWeapon = weapon->GetLocalActiveWeapon();
    if (!activeWeapon) return;

    auto gun = reinterpret_cast<C_CSWeaponBaseGun*>(activeWeapon);
    if (!gun) return;

    auto w = weapon->GetLocalWeaponVData();
    if (!w) return;

    auto seed = fnGetHashSeed(nullptr, &target, pLocalController->m_nTickBase());

    GetCL_Bypass()->SetViewAngles(&target, input, cmd, true, Settings::LegitAim::Silent ? true : false);

    Vector3 vForward, vRight, vUp;

    C_CSWeaponBase* base = reinterpret_cast<C_CSWeaponBase*>(gun);
    if (!base) return;

    float spreadR[2];

    fnCalculateSpreadAngle(
        weapon->GetLocalWeaponDefinitionIndex(),
        w->m_nNumBullets(),
        1,
        seed + 1,
        C_CSWeaponBaseGun_GetInaccuracy(gun),
        C_CSWeaponBaseGun_GetSpread(gun),
        base->m_flRecoilIndex(),
        0,
        spreadR
    );


    Math::AngleVectors(target, vForward, vRight, vUp);

    Vector3 vDirection = vForward + (vRight * spreadR[0]) + (vUp * spreadR[1]);
    Vector3 vEndPos = localPos + (vDirection * w->m_flRange());

    GetCL_Trace()->TraceToEntityEndPos(&vEndPos);
 }

hooks -
hook.hpp:
Expand Collapse Copy
#pragma once
#include <Common/Common.hpp>
#include "../SDK/Math/QAngle.hpp"

// 48 89 5C 24 ? 57 48 81 EC ? ? ? ? F3 0F 10 0A @client.dll

using fnGetHashSeed_t = unsigned int(__fastcall*)(void*, QAngle*, uint32_t);
extern fnGetHashSeed_t fnGetHashSeed_o;
unsigned int __fastcall fnGetHashSeed(void* a1, QAngle* angle, uint32_t tick);

// 48 8B C4 48 89 58 08 48 89 68 18 48 89 70 20 57 41 54 41 55 41 56 41 57 48 81 @client.dll
using fnCalculateSpreadAngle_t = void(__fastcall*)(uint16_t, int, int, uint32_t, float, float, float, __int64, float*);
extern fnCalculateSpreadAngle_t fnCalculateSpreadAngle_o;
void __fastcall fnCalculateSpreadAngle(uint16_t a1, int a2, int a3, uint32_t a4, float a5, float a6, float a7, __int64 a8, float* a9);
hook.cpp:
Expand Collapse Copy
#include "Hook_Seed.hpp"

fnGetHashSeed_t fnGetHashSeed_o = nullptr;
fnCalculateSpreadAngle_t fnCalculateSpreadAngle_o = nullptr;

unsigned int __fastcall fnGetHashSeed(void* a1, QAngle* angle, uint32_t tick) {
    return fnGetHashSeed_o(a1, angle, tick);
}

void __fastcall fnCalculateSpreadAngle(uint16_t a1, int a2, int a3, uint32_t a4, float a5, float a6, float a7, __int64 a8, float* a9) {
    return fnCalculateSpreadAngle_o(a1, a2, a3, a4, a5, a6, a7, a8, a9);
}
 
Последнее редактирование:
fnCalculateSpreadAngle
fnGetHashSeed

а ты чекнул что вообще находит сиги ?
using func_t = void( __fastcall* )( int16_t , int , int , uint32_t , float , float , float , float* , float* );
pFn( nWeaponDefIndex , 1 , 0 , nRandomSeed , flInAccuracy , flSpread , 0.0f , &vecOut.x , &vecOut.y );
 
fnCalculateSpreadAngle
fnGetHashSeed

а ты чекнул что вообще находит сиги ?
using func_t = void( __fastcall* )( int16_t , int , int , uint32_t , float , float , float , float* , float* );
pFn( nWeaponDefIndex , 1 , 0 , nRandomSeed , flInAccuracy , flSpread , 0.0f , &vecOut.x , &vecOut.y );
сенк юю, теперь всё воркает
 
Назад
Сверху Снизу