Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 6 Мар 2026
- Сообщения
- 25
- Реакции
- 1
дебагер - ничего, чёт я запутался, 2 день не могу найти ошибку, база великой андромеды
hooks -
seed trigger:
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:
#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:
#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);
}
Последнее редактирование: