Code: Select all
/*========================================================================================
Visit:
www.sethioz.co.uk
Credits:
TeamRetox - :D
sreaG - <3
This file may be used and/or spread on teh
internetz as long as you keep these credits intact
Usage:
CAimbot mybot;
mybot.CalcAim(MyX, MyY, MyZ, EnemyX, EnemyY, EnemyZ, true) for aiming in degrees
mybot.CalcAim(MyX, MyY, MyZ, EnemyX, EnemyY, EnemyZ, false) for aiming in radians
after CalcAim you can write mybot.rX and mybot.rY to your rotation
========================================================================================*/
#ifndef CAimbot_H
#define CAimbot_H
#include <math.h>
//comment these out if their already defined :)
#define M_PI 3.14159265359f
#define RadToDeg 57.2957795130f
class CAimbot
{
public:
void CalcAim(float pX, float pY, float pZ, float eX, float eY, float eZ, bool degrees)
{
float dX, dY;
/*Sector 1 = South-East of our position*/
if(pX > eX && pY <= eY)
{
dX = (eX-pX);
dY = (pY-eY);
rX = (M_PI-atan(dY/dX));
}
/*Sector 2 = South-West of our position*/
else if(pX >= eX && pY > eY)
{
dX = (pX-eX);
dY = (pY-eY);
rX = (M_PI+atan(dY/dX));
}
/*Sector 3 = North-West of our position*/
else if(pX < eX && pY >= eY)
{
dX = (pX-eX);
dY = (eY-pY);
rX = (M_PI*2-atan(dY/dX));
}
/*Sector 4 = North-East of our position*/
else if(pX <= eX && pY < eY)
{
dX = (eX-pX);
dY = (eY-pY);
rX = (0.0f+atan(dY/dX));
}
float distance;
distance = sqrt((dX*dX)+(dY*dY));
if(pZ <= eZ)
{
rY = 0.0f+atan((eZ-pZ)/distance);
}
else if(pZ > eZ)
{
rY = 0.0f-atan((pZ-eZ)/distance);
}
if(degrees==true)
{
rX = (rX * RadToDeg);
rY = (rY * RadToDeg);
}
}
float rX, rY;
};
#endif