http://www.forum.game-deception.com/showthread.php?s=&threadid=2983
This is a slight mod on the tut at http://own4g3cheats.com/forum
Its Amirs's gsaim. The tutorial that was posted uses the standing vec for walking players. I made it so you can have a seperate vec for walking players and the avadd numbers 0-5 are the same as they are in XC from Rage-X.
in aimbot.h look for
PHP:--------------------------------------------------------------------------------
vector<aimvec> AimVecsS;
vector<aimvec> AimVecsD;
--------------------------------------------------------------------------------
and make it look like this
PHP:--------------------------------------------------------------------------------
vector<aimvec> AimVecsS;
vector<aimvec> AimVecsD;
vector<aimvec> AimVecsW;
vector<aimvec> AimVecsR;
vector<aimvec> AimVecsX;
vector<aimvec> AimVecsJ;
--------------------------------------------------------------------------------
now goto aimbot.cpp and look for
PHP:--------------------------------------------------------------------------------
void OriginAimbot::Draw_Player_Vecs(int ax)
--------------------------------------------------------------------------------
i dunno if it would be the same for all hacks (im using liquid fx)
but it should look like this
PHP:--------------------------------------------------------------------------------
void OriginAimbot::Draw_Player_Vecs(int ax)
{
vec3_t aim_location, target_origin;
vec3_t up, right, forward, playerAngles;
vector<aimvec>::iterator pos, end;
// GaitSequence Aiming
// Legendary Amir (c) 2003
switch (vPlayers[ax].getEnt()->curstate.gaitsequence)
{
case 1:
{
pos = AimVecsS.begin();
end = AimVecsS.end();
}
break;
case 2:
{
pos = AimVecsD.begin();
end = AimVecsD.end();
}
break;
case 3:
{
pos = AimVecsW.begin();
end = AimVecsW.end();
}
break;
case 4:
{
if (cvar.gsaim)
{
pos = AimVecsR.begin();
end = AimVecsR.end();
}
else
{
pos = AimVecsS.begin();
end = AimVecsS.end();
}
}
break;
case 5:
{
if (cvar.gsaim)
{
pos = AimVecsX.begin();
end = AimVecsX.end();
}
else
{
pos = AimVecsS.begin();
end = AimVecsS.end();
}
}
break;
case 6:
{
pos = AimVecsJ.begin();
end = AimVecsJ.end();
}
break;
default:
{
pos = AimVecsS.begin();
end = AimVecsS.end();
}
break;
}
PredictTarget(ax,target_origin);
playerAngles[0]=0;
playerAngles[1]=vPlayers[ax].getEnt()->angles[1];
playerAngles[2]=0;
gEngfuncs.pfnAngleVectors (playerAngles, forward, right, up);
forward[2] = -forward[2];
register DWORD color = 0xFF1111FF;
for (;pos!=end;++pos)
{
VectorCopy(target_origin,aim_location);
aim_location = aim_location + forward * pos->f;
aim_location = aim_location + up * pos->h;
aim_location = aim_location + right * pos->r;
gDrawFilledBoxAtLocation(aim_location,color,1);
color = 0xFFFFFFFF;
}
}
--------------------------------------------------------------------------------
now look for
PHP:--------------------------------------------------------------------------------
aimvec* OriginAimbot::TargetRegion(int ax, bool onlyvis)
--------------------------------------------------------------------------------
change it to this
PHP:--------------------------------------------------------------------------------
aimvec* OriginAimbot::TargetRegion(int ax, bool onlyvis)
{
vec3_t vecEnd, up, right, forward, EntViewOrg,PredOrg, playerAngles;
static struct aimvec temp = {0,0,0};
PredictTarget(ax,PredOrg);
vector<aimvec>::iterator si, end;
// GaitSequence Aiming
// Legendary Amir (c) 2003
switch (vPlayers[ax].getEnt()->curstate.gaitsequence)
{
case 1:
{
if (AimVecsS.size() > 0)
{
si = AimVecsS.begin();
end = AimVecsS.end();
}
}
break;
case 2:
{
if (AimVecsD.size() > 0)
{
si = AimVecsD.begin();
end = AimVecsD.end();
}
}
break;
case 3:
{
if (AimVecsS.size() > 0)
{
si = AimVecsW.begin();
end = AimVecsW.end();
}
}
break;
case 4:
{
if (AimVecsR.size() > 0 && cvar.gsaim)
{
si = AimVecsR.begin();
end = AimVecsR.end();
}
else
{
si = AimVecsS.begin();
end = AimVecsS.end();
}
}
break;
case 5:
{
if (AimVecsX.size() > 0 && cvar.gsaim)
{
si = AimVecsX.begin();
end = AimVecsX.end();
}
else
{
si = AimVecsS.begin();
end = AimVecsS.end();
}
}
break;
case 6:
{
if (AimVecsJ.size() > 0)
{
si = AimVecsJ.begin();
end = AimVecsJ.end();
}
}
break;
default:
{
if (AimVecsS.size() > 0)
{
si = AimVecsS.begin();
end = AimVecsS.end();
}
}
break;
}
playerAngles[0]=0;
playerAngles[1]=vPlayers[ax].getEnt()->angles[1];
playerAngles[2]=0;
gEngfuncs.pfnAngleVectors (playerAngles, forward, right, up);
forward[2] = -forward[2];
for (;si!=end;++si)
{
VectorCopy(PredOrg,EntViewOrg);
EntViewOrg = EntViewOrg + forward * si->f;
EntViewOrg = EntViewOrg + up * si->h;
EntViewOrg = EntViewOrg + right * si->r;
if(PathFree(me.pmEyePos, EntViewOrg)) return &(*si);
}
return NULL;
}
--------------------------------------------------------------------------------