vec3 myOrigin;
char AttackerTeam;
vec3 refOrigin;
vec3 testOrigin;
#pragma region Aimbot
vec3 myOrigin;
char AttackerTeam;
vec3 refOrigin;
vec3 testOrigin;
vec3 vectoangles(float value1, float value2, float value3)
{
float forward;
float yaw, pitch;
vec3 angles;
if (value1 == 0 && value2 == 0)
{
yaw = 0;
if (value3 > 0) pitch = 90.00;
else pitch = 270.00;
}
else
{
if (value1 != -1) yaw = (float)(atan2((double)value2, (double)value1) * 180.00 / PI);
else if (value2 > 0) yaw = 90.00;
else yaw = 270;
if (yaw < 0) yaw += 360.00;
forward = (float)sqrt((double)(value1 * value1 + value2 * value2));
pitch = (float)(atan2((double)value3, (double)forward) * 180.00 / PI);
if (pitch < 0) pitch += 360.00;
}
angles.angles[0] = -pitch;
angles.angles[1] = yaw;
angles.angles[2] = 0;
return angles;
}
vec3 getOrigin(int client)
{
vec3 origin;
origin.angles[0] = mw3Playerstate[client]->x;
origin.angles[1] = mw3Playerstate[client]->y;
origin.angles[2] = mw3Playerstate[client]->z;
return origin;
}
bool closer(vec3 myOrigin, vec3 referenceOrigin, vec3 newOrigin)
{
float onex = myOrigin.angles[0] - referenceOrigin.angles[0];
float twox = myOrigin.angles[1] - referenceOrigin.angles[1];
float threex = myOrigin.angles[2] - referenceOrigin.angles[2];
double orig = (onex * onex) + (twox * twox) + (threex + threex);
float myx = myOrigin.angles[0] - newOrigin.angles[0];
float myx2 = myOrigin.angles[1] - newOrigin.angles[1];
float myxx = myOrigin.angles[2] - newOrigin.angles[2];
double newo = (myx * myx) + (myx2 * myx2) + (myxx + myxx);
if (newo < orig)
return true;
else
return false;
}
void setAngles(int client, float pitch, float yaw, float roll)
{
SetViewAngle setViewAngles = (SetViewAngle)0x8222FC90;
float angles[] = { pitch, yaw, roll };
setViewAngles(mw3Entity[client], angles);
}
void aimAtNearestClient(int attacker)
{
myOrigin = getOrigin(attacker);
AttackerTeam = mw3Playerstate[attacker]->team;
for(int i=0; i<3; i++) refOrigin.angles[i] = 99999999.00;
int numAlivePlayers = 0;
for (int i = 0; i < 18; i++)
{
if (mw3Entity[i]->active == (char)1)
{
//printf("aimbot client %i active\n", i);
if (Verified[i] == false && i != attacker)
{
//printf("client %i is not attacker\n", i);
if (checkTeam(i, AttackerTeam))
{
//printf("client %i is not on attackers team\n", i);
if (mw3Entity[i]->alive != (char)4)
{
//printf("client %i is alive\n", i);
numAlivePlayers++;
testOrigin = getOrigin(i);
if (closer(myOrigin, refOrigin, testOrigin))
{
//printf("client %i is the closest\n", i);
refOrigin = testOrigin;
}
}
}
}
}
}
if (numAlivePlayers > 0)
{
vec3 test = vectoangles(refOrigin.angles[0] - myOrigin.angles[0], refOrigin.angles[1] - myOrigin.angles[1], refOrigin.angles[2] - myOrigin.angles[2]);
//printf("target found, setting client view angles to %f, %f, %f", test.angles[0], test.angles[1], test.angles[2]);
setAngles(attacker, test.angles[0], test.angles[1], test.angles[2]);
}
}
#pragma endregion All aimbot functions (mw3)
#pragma region Aimbot
vec3 getOriginBo2(int client)
{
vec3 origin;
origin.angles[0] = bo2Playerstate[client]->x;
origin.angles[1] = bo2Playerstate[client]->y;
origin.angles[2] = bo2Playerstate[client]->z;
return origin;
}
bool checkTeamBo2(int client, int attackerTeam)
{
if (attackerTeam == 0) return true;
int team = (int)bo2Playerstate[client]->team;
if (attackerTeam != team) return true;
else return false;
}
void setAnglesBo2(int client, float pitch, float yaw, float roll)
{
float angles[] = { pitch, yaw, roll };
setViewAnglesBo2(bo2Entity[client], angles);
}
singleuchar *getClientStance(int client)
{
return (singleuchar*)(bo2PlayerstateInt(client) + 0xff);
}
bool targetFound = false;
void aimAtNearestClientBo2(int attacker)
{
targetFound = false;
myOrigin = getOriginBo2(attacker);
AttackerTeam = bo2Playerstate[attacker]->team;
for(int i=0; i<3; i++) refOrigin.angles[i] = -99999999.00;
int numAlivePlayers = 0;
int closestInt = 0;
for (int i = 0; i < 18; i++)
{
if (bo2Entity[i]->active == 0x04)
{
if (bo2Playerstate[i]->verificationLevel != 0x01 && i != attacker)
{
if (checkTeamBo2(i, AttackerTeam))
{
if (bo2Entity[i]->alive != 0x04)
{
numAlivePlayers++;
testOrigin = getOriginBo2(i);
if (closer(myOrigin, refOrigin, testOrigin))
{
refOrigin = testOrigin;
targetFound = true;
closestInt = i;
}
}
}
}
}
}
if (numAlivePlayers > 0 && targetFound)
{
refOrigin = getOriginBo2(closestInt);
myOrigin = getOriginBo2(attacker);
unsigned char stance = getClientStance(closestInt)->character;
if(stance == 0x04 || stance == 0x06 || stance == 0x44)
refOrigin.angles[2] -= 14.00; //crouch
else if(stance == 0x08 || stance == 0x0a || stance == 0x4
refOrigin.angles[2] -= 44.00; //prone
vec3 test = vectoangles(refOrigin.angles[0] - myOrigin.angles[0], refOrigin.angles[1] - myOrigin.angles[1], refOrigin.angles[2] - myOrigin.angles[2]);
setAnglesBo2(attacker, test.angles[0], test.angles[1], test.angles[2]);
}
}
Copyright © 2025, NextGenUpdate.
All Rights Reserved.