retard
-
Автор темы
- #1
Anyone know why t4zcheat's aimbot only goes for head? CPP code:
Hitscan
Createmove(Aimbot.cpp)
Hitscan
Код:
Vector Aimbot::Hitscan(C_BaseEntity* pEnt)
{
static int iWidth, iHeight;
g_pEngine->GetScreenSize(iWidth, iHeight);
float DamageArray[28];
float tempDmg = 0.f;
Vector tempHitbox = { 0,0,0 };
static int HitboxForMuti[] = { 2,2,4,4,6,6 };
float angToLocal = g_Math.CalcAngle(g::pLocalEntity->GetOrigin(), pEnt->GetOrigin()).y;
Vector2D MutipointXY = { (sin(g_Math.GRD_TO_BOG(angToLocal))),(cos(g_Math.GRD_TO_BOG(angToLocal))) };
Vector2D MutipointXY180 = { (sin(g_Math.GRD_TO_BOG(angToLocal + 180))) ,(cos(g_Math.GRD_TO_BOG(angToLocal + 180))) };
Vector2D Mutipoint[] = { Vector2D(MutipointXY.x, MutipointXY.y), Vector2D(MutipointXY180.x, MutipointXY180.y) };
float Velocity = abs(pEnt->GetVelocity().Length2D());
std::vector<int> Scan;
int HeadHeight = g_Menu.Config.HeadScale;
bool Baim = ShouldBaim(pEnt);
if (g_Menu.Config.ForceBaim)
Baim = true;
if (!Baim && g_Menu.Config.HB_Head)
{
Scan.push_back(HITBOX_HEAD);
}
if (Velocity <= 215.f || Baim)
{
if (g_Menu.Config.MultiPoint)
{
if (g_Menu.Config.HB_Pelvis)
{
Scan.push_back(HITBOX_PELVIS);
}
if (g_Menu.Config.HB_Thorax)
{
Scan.push_back(HITBOX_THORAX);
}
if (g_Menu.Config.HB_Chest)
{
Scan.push_back(HITBOX_LOWER_CHEST);
Scan.push_back(HITBOX_UPPER_CHEST);
}
if (g_Menu.Config.HB_Feet)
{
Scan.push_back(HITBOX_LEFT_FOOT);
Scan.push_back(HITBOX_RIGHT_FOOT);
}
if (g_Menu.Config.HB_Arms)
{
Scan.push_back(HITBOX_LEFT_UPPER_ARM);
Scan.push_back(HITBOX_RIGHT_UPPER_ARM);
}
if (g_Menu.Config.HB_Thighs)
{
Scan.push_back(HITBOX_LEFT_THIGH);
Scan.push_back(HITBOX_RIGHT_THIGH);
}
if (g_Menu.Config.HB_Calf)
{
Scan.push_back(HITBOX_RIGHT_CALF);
Scan.push_back(HITBOX_LEFT_CALF);
}
if (g_Menu.Config.HB_Belly)
{
Scan.push_back(HITBOX_BELLY);
}
if (g_Menu.Config.HB_Neck)
{
Scan.push_back(HITBOX_NECK);
}
}
}
Vector Hitbox;
int bestHitboxint = 0;
for (int hitbox : Scan)
{
if (hitbox < 19)
Hitbox = pEnt->GetHitboxPosition(hitbox, Matrix[pEnt->EntIndex()]);
else if (hitbox > 18 && hitbox < 25)
{
float Radius = 0;
Hitbox = pEnt->GetHitboxPosition(HitboxForMuti[hitbox - 19], Matrix[pEnt->EntIndex()], &Radius);
Radius *= (g_Menu.Config.BodyScale / 100.f);
Hitbox = Vector(Hitbox.x + (Radius * Mutipoint[((hitbox - 19) % 2)].x), Hitbox.y - (Radius * Mutipoint[((hitbox - 19) % 2)].y), Hitbox.z);
}
else if (hitbox > 24 && hitbox < 28)
{
float Radius = 0;
Hitbox = pEnt->GetHitboxPosition(0, Matrix[pEnt->EntIndex()], &Radius);
Radius *= (HeadHeight / 100.f);
if (hitbox != 27)
Hitbox = Vector(Hitbox.x + (Radius * Mutipoint[((hitbox - 25) % 2)].x), Hitbox.y - (Radius * Mutipoint[((hitbox - 25) % 2)].y), Hitbox.z);
else
Hitbox += Vector(0, 0, Radius);
}
float Damage = g_Autowall.Damage(Hitbox);
if (Damage > 0.f)
DamageArray[hitbox] = Damage;
else
DamageArray[hitbox] = 0;
if (g_Menu.Config.BaimLethal && hitbox != 0 && hitbox != 25 && hitbox != 26 && hitbox != 27 && Damage >= (pEnt->GetHealth() + 10))
{
DamageArray[hitbox] = 400;
Baim = true;
}
if (DamageArray[hitbox] > tempDmg)
{
tempHitbox = Hitbox;
bestHitboxint = hitbox;
tempDmg = DamageArray[hitbox];
}
g::AimbotHitbox[pEnt->EntIndex()][hitbox] = Hitbox;
}
PlayerRecords pPlayerEntityRecord = g_LagComp.PlayerRecord[pEnt->EntIndex()].at(0);
Backtrack[pEnt->EntIndex()] = false;
ShotBacktrack[pEnt->EntIndex()] = false;
if (tempDmg >= g_Menu.Config.Mindmg)
{
bestEntDmg = tempDmg;
if ((bestHitboxint == 25 || bestHitboxint == 26 || bestHitboxint == 27) && abs(DamageArray[HITBOX_HEAD] - DamageArray[bestHitboxint]) <= 10.f)
return pEnt->GetHitboxPosition(HITBOX_HEAD, Matrix[pEnt->EntIndex()]);
else if ((bestHitboxint == 19 || bestHitboxint == 20) && DamageArray[HITBOX_PELVIS] > 30)
return pEnt->GetHitboxPosition(HITBOX_PELVIS, Matrix[pEnt->EntIndex()]);
else if ((bestHitboxint == 21 || bestHitboxint == 22) && DamageArray[HITBOX_THORAX] > 30)
return pEnt->GetHitboxPosition(HITBOX_THORAX, Matrix[pEnt->EntIndex()]);
else if ((bestHitboxint == 23 || bestHitboxint == 24) && DamageArray[HITBOX_UPPER_CHEST] > 30)
return pEnt->GetHitboxPosition(HITBOX_UPPER_CHEST, Matrix[pEnt->EntIndex()]);
return tempHitbox;
} // && pPlayerEntityRecord.Velocity >= 29.f
else if (g_Menu.Config.PosBacktrack)
{
if (g_Menu.Config.LbyBacktrack)
{
int bestHeadEntDmg = 0;
int bestLbyEntDmg = 0;
if (g_Autowall.CanHitFloatingPoint(pEnt->GetHitboxPosition(HITBOX_HEAD, pPlayerEntityRecord.Matrix), g::pLocalEntity->GetEyePosition(), g::pLocalEntity))
bestHeadEntDmg = (100000.f - fabs(g_Math.Distance(Vector2D(g::pLocalEntity->GetOrigin().x, g::pLocalEntity->GetOrigin().y), Vector2D(pEnt->GetOrigin().x, pEnt->GetOrigin().y))));
if (g_Autowall.CanHitFloatingPoint(pEnt->GetHitboxPosition(HITBOX_PELVIS, pPlayerEntityRecord.Matrix), g::pLocalEntity->GetEyePosition(), g::pLocalEntity))
bestLbyEntDmg = (100000.f - fabs(g_Math.Distance(Vector2D(g::pLocalEntity->GetOrigin().x, g::pLocalEntity->GetOrigin().y), Vector2D(pEnt->GetOrigin().x, pEnt->GetOrigin().y))));
Backtrack[pEnt->EntIndex()] = true;
if (bestHeadEntDmg == 0 && bestLbyEntDmg == 0)
return Vector(0,0,0);
if (bestHeadEntDmg == 0 && bestLbyEntDmg != 0)
return pEnt->GetHitboxPosition(HITBOX_PELVIS, pPlayerEntityRecord.Matrix);
if (bestLbyEntDmg == 0 && bestHeadEntDmg != 0)
return pEnt->GetHitboxPosition(HITBOX_HEAD, pPlayerEntityRecord.Matrix);
if (bestHeadEntDmg > bestLbyEntDmg)
return pEnt->GetHitboxPosition(HITBOX_HEAD, pPlayerEntityRecord.Matrix);
else
return pEnt->GetHitboxPosition(HITBOX_PELVIS, pPlayerEntityRecord.Matrix);
}
else
{
if (g_Autowall.CanHitFloatingPoint(pEnt->GetHitboxPosition(HITBOX_HEAD, pPlayerEntityRecord.Matrix), g::pLocalEntity->GetEyePosition(), g::pLocalEntity))
{
bestEntDmg = (100000.f - fabs(g_Math.Distance(Vector2D(g::pLocalEntity->GetOrigin().x, g::pLocalEntity->GetOrigin().y), Vector2D(pEnt->GetOrigin().x, pEnt->GetOrigin().y))));
Backtrack[pEnt->EntIndex()] = true;
return pEnt->GetHitboxPosition(HITBOX_HEAD, pPlayerEntityRecord.Matrix);
}
}
}
return Vector(0, 0, 0);
}
Код:
Vector Hitbox = Hitscan(pPlayerEntity);
if (Hitbox != Vector(0, 0, 0) && tempDmg <= bestEntDmg)
{
Aimpoint = Hitbox;
Target = pPlayerEntity;
targetID = Target->EntIndex();
tempDmg = bestEntDmg;
}
}