code:
std::uintptr_t get_spread_values = 0x61D0110;
std::uintptr_t get_spread_angles = 0x6D6E8B0;
std::uintptr_t tovector_and_normalize = 0x17B4EC0;
std::uintptr_t toangle_and_normalize = 0x17AF6C0;
std::uintptr_t firing_state_component = 0x1208;
std::uintptr_t seed_data = 0x4a0;
std::uintptr_t stability_component = 0x490;
std::uintptr_t error_power = 0x49C;
std::uintptr_t error_retries = 0x470;
code2:
namespace NoSpread
{
static FVector calc_spread(AShooterCharacter* actor, uint64_t firing_state_component, AAresEquippable* weapon, FVector direction)
{
if (!actor || !firing_state_component || !weapon)
return FVector(0, 0, 0);
uint64_t stability_component = Memory::ReadStub<uint64_t>(firing_state_component + Offsets::stability_component);
if (!stability_component)
return FVector(0, 0, 0);
static uint8_t error_values[4096];
static uint8_t seed_data_snapshot[4096];
static uint8_t spread_angles[4096];
static uint8_t out_spread_angles[4096];
auto func1_fn = (float* (__fastcall*)(uint64_t, float*))(VALORANT::Module + Offsets::get_spread_values);
auto func2_fn = (void(__fastcall*)(uint64_t, FVector*, float, float, int, int, uint64_t))(VALORANT::Module + Offsets::get_spread_angles);
auto func3_fn = (FVector * (__fastcall*)(FVector*, FVector*))(VALORANT::Module + Offsets::tovector_and_normalize);
auto func4_fn = (FVector * (__fastcall*)(FVector*, FVector*))(VALORANT::Module + Offsets::toangle_and_normalize);
auto func5_fn = (uintptr_t(__fastcall*)(__int64, float*))(VALORANT::Module + Offsets::get_spread_values);
*(uint64_t*)(&out_spread_angles[0]) = (uint64_t)&spread_angles[0];
*(int*)(&out_spread_angles[0] + 8) = 1;
*(int*)(&out_spread_angles[0] + 12) = 1;
uint64_t seed_data = Memory::ReadStub<uint64_t>(firing_state_component + Offsets::seed_data);
if (!seed_data)
return FVector(0, 0, 0);
memcpy((void*)seed_data_snapshot, (void*)seed_data, sizeof(seed_data_snapshot));
reinterpret_cast<float* (__cdecl*)(uint64_t, float*, uintptr_t, void*)>(
spoofcall_stub)(stability_component, (float*)&error_values[0], 0x46C4660, func1_fn);
FVector temp1, temp2 = FVector(0, 0, 0);
FVector previous_firing_direction, firing_direction = FVector(0, 0, 0);
actor->Get_Firing_Location_Direction(&temp1, &previous_firing_direction, false);
reinterpret_cast<FVector* (__cdecl*)(FVector*, FVector*, uintptr_t, void*)>(
spoofcall_stub)(&previous_firing_direction, &temp2, 0x46C4660, func3_fn);
reinterpret_cast<FVector* (__cdecl*)(FVector*, FVector*, uintptr_t, void*)>(
spoofcall_stub)(&temp2, &temp1, 0x46C4660, func4_fn);
previous_firing_direction = temp1;
temp1.X += *(float*)(&error_values[0] + 12);
temp1.Y += *(float*)(&error_values[0] + 16);
reinterpret_cast<FVector* (__cdecl*)(FVector*, FVector*, uintptr_t, void*)>(
spoofcall_stub)(&temp1, &firing_direction, 0x46C4660, func3_fn);
float test[20];
uintptr_t v38 = reinterpret_cast<uintptr_t(__cdecl*)(__int64, float*, uintptr_t, void*)>(
spoofcall_stub)(stability_component, test, 0x46C4660, func5_fn);
float v46 = Memory::ReadStub<float>(v38 + 0x14);
float v48 = *(float*)(&error_values[0] + 8) + *(float*)(&error_values[0] + 4);
int error_retries = Memory::ReadStub<int>(firing_state_component + Offsets::error_retries);
reinterpret_cast<void(__cdecl*)(
uint64_t, FVector*, float, float, int, int, uint64_t, uintptr_t, void*)>(
spoofcall_stub)(
((uint64_t)&seed_data_snapshot[0]) + Offsets::seed_addsomeshit, &firing_direction,
v48, v46, error_retries, 1,
(uint64_t)&out_spread_angles[0], 0x46C4660, func2_fn);
FVector spread_vector = *(FVector*)(&spread_angles[0]);
reinterpret_cast<FVector* (__cdecl*)(FVector*, FVector*, uintptr_t, void*)>(
spoofcall_stub)(&spread_vector, &firing_direction, 0x46C4660, func4_fn);
return firing_direction - previous_firing_direction;
}
}
code3:
spread_angle = NoSpread::calc_spread(MyShooter, (uintptr_t)firing_state, current_equip, direction);
if (spread_angle.Size() > 0.001f) {
new_rotation = new_rotation - spread_angle;
}
aimbot_memory(new_rotation, ControlRotation, MyController);