this is for jump vec (avadd 2) a lot of peepz wanted so here it is... btw: i didn't use arazes aimbot.cpp or perfectwall or anything.. i just use ogc9 aimbot
first go to aimbot.h and you will see this
Code:
vector<aimvec> AimVecsS;
vector<aimvec> AimVecsD;
and under those put
Code:
vector<aimvec> AimVecsJ;
now lets take a trip to aimbot.cpp.. go in there and look for Code:
void OriginAimbot::draw_player_vecs(int ax)
Code:
if (vPlayers[ax].getEnt()->curstate.usehull == 0)
{
pos = AimVecsS.begin();
end = AimVecsS.end();
} else {
pos = AimVecsD.begin();
end = AimVecsD.end();
}
Under that put
Code:
if (vPlayers[ax].getEnt()->curstate.gaitsequence == 6)
{
pos = AimVecsJ.begin();
end = AimVecsJ.end();
}
So now draw_player_vecs should look like this
Code:
void OriginAimbot::draw_player_vecs(int ax)
{
vec3_t aim_location, target_origin;
vec3_t up, right, forward, playerAngles;
vector<aimvec>::iterator pos, end;
if (vPlayers[ax].getEnt()->curstate.usehull == 0)
{
pos = AimVecsS.begin();
end = AimVecsS.end();
} else {
pos = AimVecsD.begin();
end = AimVecsD.end();
}
if (vPlayers[ax].getEnt()->curstate.gaitsequence == 6)
{
pos = AimVecsJ.begin();
end = AimVecsJ.end();
}
// get predicted origin
PredictTarget(ax,target_origin);
// calculate aiming vectors
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 we got that completed.. and now go to Code:
aimvec* OriginAimbot::TargetRegion(int ax)
and under targetregion find Code:
if (vPlayers[ax].getEnt()->curstate.usehull == 0)
{
// loop AimVecsS
si = AimVecsS.begin(); end = AimVecsS.end();
} else {
// loop AimVecsD
si = AimVecsD.begin(); end = AimVecsD.end();
}
and under that put
Code:
if (vPlayers[ax].getEnt()->curstate.gaitsequence == 6)
{
si = AimVecsJ.begin(); end = AimVecsJ.end();
}
and finally the last part of aimbot.cpp
find Code:
void OriginAimbot::CalcTargetSpot(float *out)
and then in there find Code:
if (ent->curstate.usehull==0 && AimVecsS.size()>0)
{
f = AimVecsS[0].f;
h = AimVecsS[0].h;
r = AimVecsS[0].r;
}
else
{
f = AimVecsD[0].f;
h = AimVecsD[0].h;
r = AimVecsD[0].r;
}
and then add Code:
if (ent->curstate.gaitsequence==6 && AimVecsJ.size()>0)
{
f = AimVecsJ[0].f;
h = AimVecsJ[0].h;
r = AimVecsJ[0].r;
}
}
and then that will be it for aimbot.cpp... last part... go to client.cpp
and go to Code:
func_avadd
and then replace it with this code
Code:
void func_avadd(void)
{
aimvec av;
int duck = cmd.argI(1);
int arg = 2;
while(*cmd.argC(arg))
{
av.h = cmd.argF(arg++);
av.f = cmd.argF(arg++);
av.r = cmd.argF(arg++);
if (duck == 1)
{
gAimbot.AimVecsD.push_back(av);
}
if (duck == 0)
{
gAimbot.AimVecsS.push_back(av);
}
if (duck == 2)
gAimbot.AimVecsJ.push_back(av);
}
}
AND THEN FIND Code:
func_avclear
and then replace it with this code
Code:
void func_avclear(void)
{
gAimbot.AimVecsS.clear();
gAimbot.AimVecsJ.clear();
gAimbot.AimVecsD.clear();
}
and finally find Code:
func_avlist
and replace it with this
Code:
void func_avlist(void)
{
int dmmy = cmd.argI(1);
if (dmmy == 1)
{
Con_Echo("Listing AimVecs(1) Ducking\n");
for (vector<aimvec>::iterator si = gAimbot.AimVecsD.begin(); si != gAimbot.AimVecsD.end();++si)
{
Con_Echo("Height: &w%f&a Forward: &w%f&a Right: &w%f&a\n",si->h,si->f,si->r);
}
}
if (dmmy == 0)
{
Con_Echo("Listing AimVecs(0) Standing\n");
for (vector<aimvec>::iterator si = gAimbot.AimVecsS.begin(); si != gAimbot.AimVecsS.end();++si)
{
Con_Echo("Height: &w%f&a Forward: &w%f&a Right: &w%f&a\n",si->h,si->f,si->r);
}
}
if (dmmy == 2)
{
Con_Echo("Listing AimVecs(2) Jumping\n");
for (vector<aimvec>::iterator si = gAimbot.AimVecsJ.begin(); si != gAimbot.AimVecsJ.end();++si)
{
Con_Echo("Height: &w%f&a Forward: &w%f&a Right: &w%f&a\n",si->h,si->f,si->r);
}
}
}
/==================================================================================
//** func_saveaimvecs <config> <vecalias> *UPDATED FOR AVADD 2*
void func_saveaimvecs()
{
string filename = getOgcDirFile(cmd.argC(1)); // first arg: filename
string vecalias = cmd.argC(2); // Second arg: vec alias
float recoil = cvar.recoil; // Recoil
float aspeed = cvar.aspeed; // Aspeed
filename += ".cfg"; // add .cfg extension to the filename
const char* file = filename.c_str(); // filename convert to a const char*
const char* vec = vecalias.c_str(); // vecalias convert to a const char*
if (!file || strlen(file) == 0 || !vec || strlen(vec) == 0) // if there arent any arguments
{
Con_Echo("&rformat: &wsaveaimvecs &g<filename> <vecalias> <recoil> <aspeed> <nospread> <");
return;
}
ofstream ofs(file, ios::binary | ios::app); // open the file to be savered
if (!ofs) // If it cant open the file..
{
Con_Echo("&rfile: &w%s&r save failed.",filename.c_str()); // .. print error message
return;
}
ofs << "alias " << vec << "Stand \""; // print to file: alias vecSt "
for (vector<aimvec>::iterator si = gAimbot.AimVecsS.begin(); si != gAimbot.AimVecsS.end();++si)
{
ofs << "avadd 0 " << si->h << ' ' << si->f << ' ' << si->r << ";"; // print avadd 0 vec;
}
ofs << "\"" << (char)0x0D << (char)0x0A << "alias " << vec << "Duck \""; // print to file: " newline alias vecDuck "
for (vector<aimvec>::iterator si2 = gAimbot.AimVecsD.begin(); si2 != gAimbot.AimVecsD.end();++si2)
{
ofs << "avadd 1 " << si2->h << ' ' << si2->f << ' ' << si2->r << ";"; // print avadd 1 vec;
}
ofs << "\"" << (char)0x0D << (char)0x0A << "alias " << vec << "Jump \""; // print to file: " newline alias vecJump "
for (vector<aimvec>::iterator si3 = gAimbot.AimVecsJ.begin(); si3 != gAimbot.AimVecsJ.end();++si2)
{
ofs << "avadd 2 " << si2->h << ' ' << si2->f << ' ' << si2->r << ";"; // print avadd 2 vec;
}
ofs << "\"" << (char)0x0D << (char)0x0A << "alias " << vec << "Ex \"avclear;" << vec << "Stand;" << vec << "Duck;" << vec << "Jump; recoil " << recoil << "; aspeed " << aspeed << "; txt " << vec << "Loaded.\"" << (char)0x0D << (char)0x0A << (char)0x0D << (char)0x0A; // print the alias that starts the vec, with recoil/aspeed and a txt message
if (ofs) // success message
Con_Echo("file: &w%s&a saved motha fucka.", filename.c_str());
ofs.close(); // close file
}