-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
#pragma once
#include "../../stdafx.h"
#include "../Utils/Hitbox.h"
#include "../Menu/Menu.h"
#include "../Utils/Playerlist.h"
#include "../Menu/SettingsManager.h"
#include "../Utils/HitboxLists.h"
class GOTV
{
public:
class CHLTVFrame;
class CHLTVDemoRecorder
{
public:
char _pad[0x540];
bool m_bIsRecording;
int m_nFrameCount;
float m_nStartTick;
int m_SequenceInfo;
int m_nDeltaTick;
int m_nSignonTick;
bf_write m_MessageData; // temp buffer for all network messages
};
class CHLTVServer
{
public:
char _pad[0x5040];
CHLTVDemoRecorder m_DemoRecorder;
};
};
class Aimbot
{
private:
struct Target_t
{
Vector aimspot;
CBaseEntity* ent;
};
Vector GetBestPoint(PlayerList::CPlayer* Player)
{
for (auto Pos : Player->ShootPos)
{
if (Pos != Vector(0, 0, 0))
{
Vector New = Pos + Player->box->points[1];
Vector Aimangles;
Misc::CalcAngle(Hacks.LocalPlayer->GetEyePosition(), New, Aimangles);
//if (Misc::FovTo(Hacks.CurrentCmd->viewangles, Aimangles) > Menu::AimbotMenu::Selection::Fov.value) continue;
float damage = Autowall::GetDamage(New);
if (damage > Vars.Ragebot.MinDamage)
{
return New;
}
}
}
return Vector(0, 0, 0);
}
void HitboxScanning(PlayerList::CPlayer* Player)
{
Hitbox* box = Player->box;
CTraceFilter filter;
trace_t tr;
Ray_t ray;
int Dividens[3] = { (box->points[8].x - box->points[1].x) / 5 , (box->points[8].y - box->points[1].y) / 5, (box->points[8].z - box->points[1].z) / 5 };
int Old = Player->ScannedNumber + 5;
for (; Player->ScannedNumber < Old; Player->ScannedNumber++)
{
int x = Player->ScannedNumber;
int y = 0;
int z = 0;
while (x >= 5)
{
x -= 5;
y++;
}
while (y >= 5)
{
y -= 5;
z++;
}
if (z >= 5)
{
Player->ScannedNumber = 0;
break;
}
Vector Pos = Vector(box->points[1].x + (x * Dividens[0]), box->points[1].y + (y * Dividens[1]), box->points[1].z + (z * Dividens[2]));
ray.Init(Pos, Pos);
Interfaces.pTrace->TraceRay(ray, MASK_SHOT, &filter, &tr);
if (tr.m_pEnt != Player->entity)
Player->ShootPos[Player->ScannedNumber] = Vector(0, 0, 0);
}
}
void GetTargets(std::vector< CBaseEntity* >& possibletargets)
{
for (auto i = 0; i <= Interfaces.pEntList->GetHighestEntityIndex(); i++)
{
auto pEntity = static_cast< CBaseEntity* >(Interfaces.pEntList->GetClientEntity(i));
if (pEntity == nullptr)
continue;
if (pEntity == Hacks.LocalPlayer)
continue;
if (!pEntity->isAlive())
continue;
if (!(pEntity->GetHealth() > 0))
continue;
if (pEntity->GetTeam() == Hacks.LocalPlayer->GetTeam())
continue;
if (pEntity->IsDormant())
continue;
PlayerList::CPlayer* Player = plist.FindPlayer(pEntity);
Player->entity = pEntity;
if (pEntity->HasGunGameImmunity())
continue;
player_info_t info;
if (!(Interfaces.pEngine->GetPlayerInfo(pEntity->GetIndex(), &info)))
continue;
possibletargets.emplace_back(pEntity);
}
}
void GetAimSpots(std::vector< Vector >& Targets, std::vector< Target_t >& possibleaimspots, std::vector< CBaseEntity* >& possibletargets)
{
if ((int)possibletargets.size())
{
for (CBaseEntity* pEntity : possibletargets)
{
Targets.emplace_back(pEntity->GetVecOrigin() - Hacks.LocalPlayer->GetVecOrigin());
std::vector< int > iArray = { iBoxListDefault[(int)(Vars.Ragebot.Hitbox)] };
float flBestDamage = 0.f;
if (iBoxListDefault[(int)(Vars.Ragebot.Hitbox)])
{
iArray = { iBoxListDefault[(int)(Vars.Ragebot.Hitbox)] };
}
else
{
if (Vars.Ragebot.Velocity)
{
if (!(pEntity->GetFlags() & FL_ONGROUND))
{
if (Vars.Ragebot.HitHead)
{
iArray =
{
(int)CSGOHitboxID::Head
};
};
if (Vars.Ragebot.HitNeck)
{
iArray =
{
(int)CSGOHitboxID::Neck,
};
};
if (Vars.Ragebot.HitLowerNeck)
{
iArray =
{
(int)CSGOHitboxID::NeckLower
};
};
if (Vars.Ragebot.HitUpperChest)
{
iArray =
{
(int)CSGOHitboxID::UpperChest
};
};
if (Vars.Ragebot.HitLowerChest)
{
iArray =
{
(int)CSGOHitboxID::LowerChest
};
};
if (Vars.Ragebot.HitPelvis)
{
iArray =
{
(int)CSGOHitboxID::Pelvis
};
};
if (Vars.Ragebot.HitStomach)
{
iArray =
{
(int)CSGOHitboxID::Stomach
};
};
if (Vars.Ragebot.HitRightThigh)
{
iArray =
{
(int)CSGOHitboxID::RightThigh
};
};
if (Vars.Ragebot.HitLeftThigh)
{
iArray =
{
(int)CSGOHitboxID::LeftThigh
};
};
if (Vars.Ragebot.HitLShin)
{
iArray =
{
(int)CSGOHitboxID::LeftShin
};
};
if (Vars.Ragebot.HitRShin)
{
iArray =
{
(int)CSGOHitboxID::RightShin
};
};
if (Vars.Ragebot.HitLfoot)
{
iArray =
{
(int)CSGOHitboxID::LeftFoot
};
};
if (Vars.Ragebot.HitRfoot)
{
iArray =
{
(int)CSGOHitboxID::RightFoot
};
};
if (Vars.Ragebot.HitLeftUpperArm)
{
iArray =
{
(int)CSGOHitboxID::LeftUpperArm
};
};
if (Vars.Ragebot.HitLowerArm)
{
iArray =
{
(int)CSGOHitboxID::LeftLowerArm
};
};
if (Vars.Ragebot.HitUpperArm)
{
iArray =
{
(int)CSGOHitboxID::RightUpperArm
};
};
if (Vars.Ragebot.HitLowerArm)
{
iArray =
{
(int)CSGOHitboxID::RightLowerArm
};
};
if (Vars.Ragebot.HitLhand)
{
iArray =
{
(int)CSGOHitboxID::LeftHand
};
};
if (Vars.Ragebot.HitRhand)
{
iArray =
{
(int)CSGOHitboxID::RightHand
};
};
flBestDamage = ScanBoxList(pEntity, iArray, possibleaimspots);
if (flBestDamage == 0)
{
if (Vars.Ragebot.HitHead)
{
iArray =
{
(int)CSGOHitboxID::Head
};
};
if (Vars.Ragebot.HitNeck)
{
iArray =
{
(int)CSGOHitboxID::Neck,
};
};
if (Vars.Ragebot.HitLowerNeck)
{
iArray =
{
(int)CSGOHitboxID::NeckLower
};
};
if (Vars.Ragebot.HitUpperChest)
{
iArray =
{
(int)CSGOHitboxID::UpperChest
};
};
if (Vars.Ragebot.HitLowerChest)
{
iArray =
{
(int)CSGOHitboxID::LowerChest
};
};
if (Vars.Ragebot.HitPelvis)
{
iArray =
{
(int)CSGOHitboxID::Pelvis
};
};
if (Vars.Ragebot.HitStomach)
{
iArray =
{
(int)CSGOHitboxID::Stomach
};
};
if (Vars.Ragebot.HitRightThigh)
{
iArray =
{
(int)CSGOHitboxID::RightThigh
};
};
if (Vars.Ragebot.HitLeftThigh)
{
iArray =
{
(int)CSGOHitboxID::LeftThigh
};
};
if (Vars.Ragebot.HitLShin)
{
iArray =
{
(int)CSGOHitboxID::LeftShin
};
};
if (Vars.Ragebot.HitRShin)
{
iArray =
{
(int)CSGOHitboxID::RightShin
};
};
if (Vars.Ragebot.HitLfoot)
{
iArray =
{
(int)CSGOHitboxID::LeftFoot
};
};
if (Vars.Ragebot.HitRfoot)
{
iArray =
{
(int)CSGOHitboxID::RightFoot
};
};
if (Vars.Ragebot.HitLeftUpperArm)
{
iArray =
{
(int)CSGOHitboxID::LeftUpperArm
};
};
if (Vars.Ragebot.HitLowerArm)
{
iArray =
{
(int)CSGOHitboxID::LeftLowerArm
};
};
if (Vars.Ragebot.HitUpperArm)
{
iArray =
{
(int)CSGOHitboxID::RightUpperArm
};
};
if (Vars.Ragebot.HitLowerArm)
{
iArray =
{
(int)CSGOHitboxID::RightLowerArm
};
};
if (Vars.Ragebot.HitLhand)
{
iArray =
{
(int)CSGOHitboxID::LeftHand
};
};
if (Vars.Ragebot.HitRhand)
{
iArray =
{
(int)CSGOHitboxID::RightHand
};
};
flBestDamage = ScanBoxList(pEntity, iArray, possibleaimspots);
}
}
else
{
if (Vars.Ragebot.HitHead)
{
iArray =
{
(int)CSGOHitboxID::Head
};
};
if (Vars.Ragebot.HitNeck)
{
iArray =
{
(int)CSGOHitboxID::Neck,
};
};
if (Vars.Ragebot.HitLowerNeck)
{
iArray =
{
(int)CSGOHitboxID::NeckLower
};
};
if (Vars.Ragebot.HitUpperChest)
{
iArray =
{
(int)CSGOHitboxID::UpperChest
};
};
if (Vars.Ragebot.HitLowerChest)
{
iArray =
{
(int)CSGOHitboxID::LowerChest
};
};
if (Vars.Ragebot.HitPelvis)
{
iArray =
{
(int)CSGOHitboxID::Pelvis
};
};
if (Vars.Ragebot.HitStomach)
{
iArray =
{
(int)CSGOHitboxID::Stomach
};
};
if (Vars.Ragebot.HitRightThigh)
{
iArray =
{
(int)CSGOHitboxID::RightThigh
};
};
if (Vars.Ragebot.HitLeftThigh)
{
iArray =
{
(int)CSGOHitboxID::LeftThigh
};
};
if (Vars.Ragebot.HitLShin)
{
iArray =
{
(int)CSGOHitboxID::LeftShin
};
};
if (Vars.Ragebot.HitRShin)
{
iArray =
{
(int)CSGOHitboxID::RightShin
};
};
if (Vars.Ragebot.HitLfoot)
{
iArray =
{
(int)CSGOHitboxID::LeftFoot
};
};
if (Vars.Ragebot.HitRfoot)
{
iArray =
{
(int)CSGOHitboxID::RightFoot
};
};
if (Vars.Ragebot.HitLeftUpperArm)
{
iArray =
{
(int)CSGOHitboxID::LeftUpperArm
};
};
if (Vars.Ragebot.HitLowerArm)
{
iArray =
{
(int)CSGOHitboxID::LeftLowerArm
};
};
if (Vars.Ragebot.HitUpperArm)
{
iArray =
{
(int)CSGOHitboxID::RightUpperArm
};
};
if (Vars.Ragebot.HitLowerArm)
{
iArray =
{
(int)CSGOHitboxID::RightLowerArm
};
};
if (Vars.Ragebot.HitLhand)
{
iArray =
{
(int)CSGOHitboxID::LeftHand
};
};
if (Vars.Ragebot.HitRhand)
{
iArray =
{
(int)CSGOHitboxID::RightHand
};
};
flBestDamage = ScanBoxList(pEntity, iArray, possibleaimspots);
}
}
else
{
if (Vars.Ragebot.HitHead)
{
iArray.push_back((int)CSGOHitboxID::Head);
};
if (Vars.Ragebot.HitNeck)
{
iArray =
{
(int)CSGOHitboxID::Neck,
};
};
if (Vars.Ragebot.HitLowerNeck)
{
iArray =
{
(int)CSGOHitboxID::NeckLower
};
};
if (Vars.Ragebot.HitUpperChest)
{
iArray =
{
(int)CSGOHitboxID::UpperChest
};
};
if (Vars.Ragebot.HitLowerChest)
{
iArray =
{
(int)CSGOHitboxID::LowerChest
};
};
if (Vars.Ragebot.HitPelvis)
{
iArray =
{
(int)CSGOHitboxID::Pelvis
};
};
if (Vars.Ragebot.HitStomach)
{
iArray =
{
(int)CSGOHitboxID::Stomach
};
};
if (Vars.Ragebot.HitRightThigh)
{
iArray =
{
(int)CSGOHitboxID::RightThigh
};
};
if (Vars.Ragebot.HitLeftThigh)
{
iArray =
{
(int)CSGOHitboxID::LeftThigh
};
};
if (Vars.Ragebot.HitLShin)
{
iArray =
{
(int)CSGOHitboxID::LeftShin
};
};
if (Vars.Ragebot.HitRShin)
{
iArray =
{
(int)CSGOHitboxID::RightShin
};
};
if (Vars.Ragebot.HitLfoot)
{
iArray =
{
(int)CSGOHitboxID::LeftFoot
};
};
if (Vars.Ragebot.HitRfoot)
{
iArray =
{
(int)CSGOHitboxID::RightFoot
};
};
if (Vars.Ragebot.HitLeftUpperArm)
{
iArray =
{
(int)CSGOHitboxID::LeftUpperArm
};
};
if (Vars.Ragebot.HitLowerArm)
{
iArray =
{
(int)CSGOHitboxID::LeftLowerArm
};
};
if (Vars.Ragebot.HitUpperArm)
{
iArray =
{
(int)CSGOHitboxID::RightUpperArm
};
};
if (Vars.Ragebot.HitLowerArm)
{
iArray =
{
(int)CSGOHitboxID::RightLowerArm
};
};
if (Vars.Ragebot.HitLhand)
{
iArray =
{
(int)CSGOHitboxID::LeftHand
};
};
if (Vars.Ragebot.HitRhand)
{
iArray =
{
(int)CSGOHitboxID::RightHand
};
};
flBestDamage = ScanBoxList(pEntity, iArray, possibleaimspots);
}
}
if (flBestDamage == 0)
{
iArray = { iBoxListDefault[(int)(Vars.Ragebot.Hitbox)] };
ScanBoxList(pEntity, iArray, possibleaimspots);
}
}
}
}
float ScanBoxList(CBaseEntity* pEntity, std::vector< int > iArray, std::vector< Target_t > &possibleaimspots);
Vector Target;
void GetAtTargetsSpot(std::vector< Vector >& Targets)
{
if (!(int)Targets.size())
Target = Vector(0, 0, 0);
else
{
Target = Vector(11249, 11250, 11251);
for (Vector t : Targets)
{
if (t.Length() < Target.Length())
Target = t;
}
}
}
bool Fire(CInput::CUserCmd* cmd, Vector vecCurPos, std::vector< Target_t >& possibleaimspots);
{
int closest = 13491;
if ((!Vars.Ragebot.AutoShoot)) !((cmd->buttons & IN_ATTACK)) || !Vars.Ragebot.EnableAim))
return;
Vector Aimangles;
int originaltick = Hacks.CurrentCmd->tick_count;
int distance = -1;
static int Cycle = 0;
bool shot = false;
if (!Misc::bullettime())
return;
int selection = Vars.Ragebot.Selection);
if (selection != 2)
for (int i = 0; i < possibleaimspots.size(); i++)
{
Target_t Aimspot = possibleaimspots[i];
Misc::CalcAngle(vecCurPos, Aimspot.aimspot, Aimangles);
distance = vecCurPos.DistTo(Aimspot.aimspot);
if (distance < closest)
{
int TempTick = originaltick;
if (Misc::GetNumberOfTicksChoked(Aimspot.ent) > 5 && (Vars.Ragebot.PositionAdjustment))
{
float correct = Interfaces.pEngine->GetNetChannelInfo()->GetLatency(FLOW_OUTGOING);
TempTick = originaltick + Misc::GetNumberOfTicksChoked(Aimspot.ent) + Misc::TIME_TO_TICKS(fabs(correct));
}
if (AntiGOTV(TempTick))
{
float correct = Interfaces.pEngine->GetNetChannelInfo()->GetLatency(FLOW_OUTGOING);
TempTick = originaltick + Misc::GetNumberOfTicksChoked(Aimspot.ent) + Misc::TIME_TO_TICKS(fabs(correct));
float Backtrack[8103];
struct Hitbox
{
Hitbox(void)
{
hitbox = -1;
}
Hitbox(int newHitBox)
{
hitbox = newHitBox;
}
int hitbox;
Vector points[9];
};
enum
{
FL_HIGH = (1 << 0),
FL_LOW = (1 << 1),
FL_SPECIAL = (1 << 2)
};
struct BestPoint
{
BestPoint(void)
{
hitbox = -1;
index = -1;
dmg = -1;
flags = 0;
}
BestPoint(int newHitBox)
{
hitbox = newHitBox;
index = -1;
dmg = -1;
flags = 0;
}
Vector point;
int index;
int dmg;
int flags;
int untransformedBox;
int hitbox;
};
class HitboxS
{
public:
Vector points[9];
bool GetHitbox(CBaseEntity* Player, int HitboxID)
{
if (!Player)
return false;
matrix3x4 matrix[128];
if (!Player->SetupBones(matrix, 128, 0x00000100, GetTickCount64()))
return false;
const model_t* mod = Player->GetModel();
if (!mod)
return false;
studiohdr_t* hdr = Interfaces.g_pModelInfo->GetStudioModel(mod);
if (!hdr)
return false;
mstudiohitboxset_t* set = hdr->GetHitboxSet(0);
if (!set)
return false;
mstudiobbox_t* hitbox = set->pHitbox(HitboxID);
if (!hitbox)
return false;
Vector points[] = { ((hitbox->bbmin + hitbox->bbmax) * .5f),
Vector(hitbox->bbmin.x, hitbox->bbmin.y, hitbox->bbmin.z),
Vector(hitbox->bbmin.x, hitbox->bbmax.y, hitbox->bbmin.z),
Vector(hitbox->bbmax.x, hitbox->bbmax.y, hitbox->bbmin.z),
Vector(hitbox->bbmax.x, hitbox->bbmin.y, hitbox->bbmin.z),
Vector(hitbox->bbmax.x, hitbox->bbmax.y, hitbox->bbmax.z),
Vector(hitbox->bbmin.x, hitbox->bbmax.y, hitbox->bbmax.z),
Vector(hitbox->bbmin.x, hitbox->bbmin.y, hitbox->bbmax.z),
Vector(hitbox->bbmax.x, hitbox->bbmin.y, hitbox->bbmax.z) };
for (int index = 0; index < 9; ++index)
{
float multiplier = 100.f / (Vars.Ragebot.PointScale);
g_Math.VectorTransform2(points[index], matrix[hitbox->bone], this->points[index]);
}
return true;
}
void FixHitbox(CBaseEntity* entity)
{
for (int index = 3; index <= 11; ++index)
{
trace_t tr;
Ray_t ray;
CTraceFilterEntity filter;
filter.pHit = entity;
ray.Init(points[index], points[0]);
Interfaces.pTrace->TraceRay(ray, MASK_SHOT, &filter, &tr);
Vector Target;
CBaseEntity* pTarget;
Vector Angles;
int amount = (Vars.Ragebot.Multibox) <= 1) ? 27 : 9;
// Vector center = box->points[0];
points[index] = tr.endpos;
}
}
float ScanCenter(Vector& Aimspot)
{
Aimspot = this->points[0];
return this->points[0] == Vector(0, 0, 0) ? -1.f : Autowall::GetDamage(this->points[0]);
}
void FindActualHitbox(CBaseEntity* pEntity, Vector& best) {
FireBulletData Bullet_Data = FireBulletData(Vector(best.x, best.y, best.z - 0.5));
int bestdamage = 0;
for (int i = -90; i < 90; i += 45) {
Vector Angle = Vector(0, i, 0);
g_Math.angleVectors(Angle, Bullet_Data.direction);
if (Autowall::FireSimulatedBullet(Bullet_Data, Hacks.LocalPlayer, Hacks.LocalWeapon))
if (Bullet_Data.current_damage > bestdamage) {
bestdamage = Bullet_Data.current_damage;
best = Bullet_Data.enter_trace.endpos;
}
}
}
};
Hacks.CurrentCmd->tick_count = TempTick;
cmd->viewangles = Aimangles;
pTarget = Aimspot.ent;
cmd->buttons |= IN_ATTACK;
Angles = cmd->viewangles;
shot = true;
}
}
}
else if (possibleaimspots.size() > 0)
{
Cycle++;
if (Cycle >= possibleaimspots.size())
Cycle = 0;
Target_t Aimspot = possibleaimspots[Cycle];
Misc::CalcAngle(vecCurPos, Aimspot.aimspot, Aimangles);
int TempTick = originaltick;
if (Misc::GetNumberOfTicksChoked(Aimspot.ent) > 5 && Vars.Ragebot.PositionAdjustment))
{
float correct = Interfaces.pEngine->GetNetChannelInfo()->GetLatency(FLOW_OUTGOING);
TempTick = originaltick + Misc::GetNumberOfTicksChoked(Aimspot.ent) + Misc::TIME_TO_TICKS(fabs(correct));
}
if (AntiGOTV(TempTick))
{
float correct = Interfaces.pEngine->GetNetChannelInfo()->GetLatency(FLOW_OUTGOING);
TempTick = originaltick + Misc::GetNumberOfTicksChoked(Aimspot.ent) + Misc::TIME_TO_TICKS(fabs(correct));
float Backtrack[8103];
struct Hitbox
{
Hitbox(void)
{
hitbox = -1;
}
Hitbox(int newHitBox)
{
hitbox = newHitBox;
}
int hitbox;
Vector points[9];
};
enum
{
FL_HIGH = (1 << 0),
FL_LOW = (1 << 1),
FL_SPECIAL = (1 << 2)
};
struct BestPoint
{
BestPoint(void)
{
hitbox = -1;
index = -1;
dmg = -1;
flags = 0;
}
BestPoint(int newHitBox)
{
hitbox = newHitBox;
index = -1;
dmg = -1;
flags = 0;
}
Vector point;
int index;
int dmg;
int flags;
int untransformedBox;
int hitbox;
};
class HitboxS
{
public:
Vector points[9];
bool GetHitbox(CBaseEntity* Player, int HitboxID)
{
if (!Player)
return false;
matrix3x4 matrix[128];
if (!Player->SetupBones(matrix, 128, 0x00000100, GetTickCount64()))
return false;
const model_t* mod = Player->GetModel();
if (!mod)
return false;
studiohdr_t* hdr = Interfaces.g_pModelInfo->GetStudioModel(mod);
if (!hdr)
return false;
mstudiohitboxset_t* set = hdr->GetHitboxSet(0);
if (!set)
return false;
mstudiobbox_t* hitbox = set->pHitbox(HitboxID);
if (!hitbox)
return false;
Vector points[] = { ((hitbox->bbmin + hitbox->bbmax) * .5f),
Vector(hitbox->bbmin.x, hitbox->bbmin.y, hitbox->bbmin.z),
Vector(hitbox->bbmin.x, hitbox->bbmax.y, hitbox->bbmin.z),
Vector(hitbox->bbmax.x, hitbox->bbmax.y, hitbox->bbmin.z),
Vector(hitbox->bbmax.x, hitbox->bbmin.y, hitbox->bbmin.z),
Vector(hitbox->bbmax.x, hitbox->bbmax.y, hitbox->bbmax.z),
Vector(hitbox->bbmin.x, hitbox->bbmax.y, hitbox->bbmax.z),
Vector(hitbox->bbmin.x, hitbox->bbmin.y, hitbox->bbmax.z),
Vector(hitbox->bbmax.x, hitbox->bbmin.y, hitbox->bbmax.z) };
for (int index = 0; index < 9; ++index)
{
float multiplier = 100.f / (Vars.Ragebot.PointScale);
g_Math.VectorTransform2(points[index], matrix[hitbox->bone], this->points[index]);
}
return true;
}
void FixHitbox(CBaseEntity* entity)
{
for (int index = 3; index <= 11; ++index)
{
trace_t tr;
Ray_t ray;
CTraceFilterEntity filter;
filter.pHit = entity;
ray.Init(points[index], points[0]);
Interfaces.pTrace->TraceRay(ray, MASK_SHOT, &filter, &tr);
Vector Target;
CBaseEntity* pTarget;
Vector Angles;
int amount = (Vars.Ragebot.Multibox) <= 1) ? 27 : 9;
// Vector center = box->points[0];
points[index] = tr.endpos;
}
}
float ScanCenter(Vector& Aimspot)
{
Aimspot = this->points[0];
return this->points[0] == Vector(0, 0, 0) ? -1.f : Autowall::GetDamage(this->points[0]);
}
void FindActualHitbox(CBaseEntity* pEntity, Vector& best) {
FireBulletData Bullet_Data = FireBulletData(Vector(best.x, best.y, best.z - 0.5));
int bestdamage = 0;
for (int i = -90; i < 90; i += 45) {
Vector Angle = Vector(0, i, 0);
g_Math.angleVectors(Angle, Bullet_Data.direction);
if (Autowall::FireSimulatedBullet(Bullet_Data, Hacks.LocalPlayer, Hacks.LocalWeapon))
if (Bullet_Data.current_damage > bestdamage) {
bestdamage = Bullet_Data.current_damage;
best = Bullet_Data.enter_trace.endpos;
}
}
}
};
}
Hacks.CurrentCmd->tick_count = TempTick;
cmd->viewangles = Aimangles;
Angles = cmd->viewangles;
cmd->buttons |= IN_ATTACK;
shot = true;
}
}
bool AntiGOTV(int tick)
{
static bool wasactivegotv = false;
//if (Settings.GetSetting(Tab_Ragebot, Ragebot_GOTV))
{
static DWORD dwHLTVServer;
static GOTV::CHLTVServer** hltv;
if (!hltv || !*hltv)
{
dwHLTVServer = Utils.PatternSearch("engine.dll", (PBYTE)"\xBE\x00\x00\x00\x00\x8B\x0E\x85\xC9\x74\x1E\xD4\x89\x02\x8B\x01", "x????xxxxxx", NULL, NULL) + 0x1;
hltv = *(GOTV::CHLTVServer***)dwHLTVServer;
}
if (hltv && *hltv)
{
int Dif = max((*hltv)->m_DemoRecorder.m_nDeltaTick, tick) - min((*hltv)->m_DemoRecorder.m_nDeltaTick, tick);
if (Dif % 16 == 0 || Dif == 0)
{
return false;
}
}
}
return true;
}
public:
Vector Target;
CBaseEntity* pTarget;
Vector Angles;
bool Aim(CInput::CUserCmd* cmd)
{
Angles = cmd->viewangles;
Vector vecCurPos = Hacks.LocalPlayer->GetEyePosition();
std::vector< Vector > Targets;
std::vector< Target_t > possibleaimspots;
std::vector< CBaseEntity* > possibletargets;
GetTargets(possibletargets);
GetAimSpots(Targets, possibleaimspots, possibletargets);
GetAtTargetsSpot(Targets);
if (Hacks.LocalWeapon->IsMiscWeapon())
return false;
if (Vars.Ragebot.Autoscope) Hacks.LocalWeapon->isSniper() && !Hacks.LocalPlayer->m_bIsScoped() && possibleaimspots.size() > 0)
{
Hacks.CurrentCmd->buttons |= IN_ATTACK2;
return false;
}
if (Hacks.LocalWeapon->hitchance() < Settings.GetSetting(Tab_Ragebot, Ragebot_Hitchance))
return false;
return !Fire(cmd, vecCurPos, possibleaimspots);
}
} Aimbot;