Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.47 KB | None | 0 0
  1. bool CAimbot::ValidTeam(int iIndex)
  2. {
  3.     if(!g_CVar.AimTeam && g_Player.GetLocalPlayer()->Team != g_Player.GetPlayerByIndex(iIndex)->Team)
  4.         return true;
  5.     if(g_CVar.AimTeam==1 && g_Player.GetLocalPlayer()->Team == g_Player.GetPlayerByIndex(iIndex)->Team)
  6.         return true;
  7.     if(g_CVar.AimTeam == 2)
  8.         return true;
  9.     return false;
  10. }
  11.  
  12. Vector CAimbot::SetupAimVector(int iIndex)
  13. {
  14.     Vector vRet=g_Player.GetPlayerByIndex(iIndex)->Hitbox;
  15.     if(g_CVar.AimMethod == 1 || g_Player.GetPlayerByIndex(iIndex)->bSoundActive)
  16.     {
  17.         Vector vF, vR, vU, vOrigin = g_Player.GetPlayerByIndex(iIndex)->Origin;
  18.         g_Math.AngleVectors(Vector(g_Player.GetPlayerByIndex(iIndex)->AngleX, g_Player.GetPlayerByIndex(iIndex)->AngleY, 0.0f), vF, vR, vU);
  19.         if(g_Player.GetPlayerByIndex(iIndex)->Ducking)
  20.             vOrigin.z+=4;
  21.         vRet = vOrigin + vF * g_CVar.Aim_VecForward + vR * g_CVar.Aim_VecRight + vU * g_CVar.Aim_VecUp;
  22.         if(g_Player.WeaponType == WEAPONTYPE_SNIPER)
  23.             vRet = vOrigin + vF * g_CVar.Sniper_VecForward + vR * g_CVar.Sniper_VecRight + vU * g_CVar.Sniper_VecUp;
  24.     }
  25.     return vRet;
  26. }
  27.  
  28. bool CAimbot::AnglesInFOV(float *flOrigin, float flFovW, float flFovH)
  29. {
  30.     Vector vOrigin, vF, vR, vU, vAngles = Vector(0.0f, g_Player.GetLocalPlayer()->AngleX, 0.0f);
  31.     g_Math.AngleVectors(vAngles,vF,vR,vU);
  32.     VectorCopy(flOrigin,vOrigin);
  33.  
  34.     Vector vUpFOV = vOrigin + vU * flFovH;
  35.     Vector vRightFOV = vOrigin + vR * flFovW;
  36.     Vector vForwardFOV = vOrigin + vF * flFovW;
  37.  
  38.     float flDistance = g_Math.GetAngleDistance(vOrigin).Length();
  39.     if(flDistance <= g_Math.GetAngleDistance(vUpFOV, vOrigin)
  40.         && (flDistance <= g_Math.GetAngleDistance(vRightFOV, vOrigin)
  41.         ||  flDistance <= g_Math.GetAngleDistance(vForwardFOV, vOrigin)))
  42.         return true;
  43.     return false;
  44. }
  45.  
  46. Vector CAimbot::GetRecoilValues()
  47. {
  48.     static Vector tmp;
  49.     VectorClear(tmp);
  50.  
  51.     float flRecoilValue = ((float)g_CVar.Rifle_Recoil * 2.0f) / 100.0f;
  52.     if(g_Player.WeaponType == WEAPONTYPE_PISTOL)
  53.         flRecoilValue = ((float)g_CVar.Pistol_Recoil * 2.0f) / 100.0f;
  54.     if(g_Player.WeaponType==WEAPONTYPE_SHOTGUN)
  55.         flRecoilValue = ((float)g_CVar.Shotgun_Recoil * 2.0f) / 100.0f;
  56.     if(g_Player.WeaponType==WEAPONTYPE_SNIPER)
  57.         flRecoilValue = ((float)g_CVar.Sniper_Recoil * 2.0f) / 100.0f;
  58.  
  59.     VectorCopy(g_Player.PunchAngles, tmp);
  60.     tmp[0] *= flRecoilValue;
  61.     tmp[1] *= flRecoilValue;
  62.     return tmp;
  63. }
  64.  
  65. Vector CAimbot::GetAimAngles(float *flOrigin,float flSmooth,bool bRecoil)
  66. {
  67.     Vector vAngles = g_Player.ViewAngles, vAimAngles;
  68.     g_Math.VectorViewangles(flOrigin, vAimAngles);
  69.     if(g_CVar.AntiRecoil && bRecoil)
  70.     {
  71.         vAimAngles[0]-=GetRecoilValues()[0];
  72.         vAimAngles[1]-=GetRecoilValues()[1];
  73.     }
  74.     vAngles[0] += vAimAngles[0] / flSmooth;
  75.     vAngles[1] += vAimAngles[1] / flSmooth;
  76.  
  77.     return vAngles;
  78. }
  79.  
  80. bool CAimbot::CanAim()
  81. {
  82.     if(g_Player.GetLocalWeapon()->Reloading || !g_Player.GetLocalWeapon()->Ammo || g_Player.WeaponType == WEAPONTYPE_MISC)
  83.         return false;
  84.     return true;
  85. }
  86.  
  87. bool CAimbot::IsAimkeyDown()
  88. {
  89.     bool bRet = false;
  90.  
  91.     if(g_CVar.AimKey > 2) ++g_CVar.AimKey;
  92.     if(g_CVar.SniperKey > 2) ++g_CVar.SniperKey;
  93.  
  94.     DoNormalAim=false;
  95.     if(GetAsyncKeyState(g_CVar.AimKey) && g_Player.WeaponType != WEAPONTYPE_SNIPER)
  96.         DoNormalAim = bRet = true;
  97.     if(GetAsyncKeyState(g_CVar.SniperKey) && g_Player.WeaponType == WEAPONTYPE_SNIPER)
  98.         DoNormalAim = bRet = true;
  99.  
  100.     if(g_CVar.AimKey > 2) --g_CVar.AimKey;
  101.     if(g_CVar.SniperKey > 2) --g_CVar.SniperKey;
  102.  
  103.     return bRet;
  104. }
  105.  
  106. void CAimbot::FindTarget(float *flOut)
  107. {
  108.     if(TargetID != -1 && ((!g_CVar.AimThroughWalls && !g_Player.GetPlayerByIndex(TargetID)->Visible) || (g_CVar.AimDisableJumpers && g_pEntity[TargetID].curstate.gaitsequence == 6) || !g_Player.GetPlayerByIndex(TargetID)->Alive || !g_Player.GetPlayerByIndex(TargetID)->Valid))
  109.     {
  110.         tmrAimDelay.Start(g_CVar.AimDelay);
  111.         tmrAimDelay.Reset(g_CVar.AimDelay);
  112.         TargetID = -1;
  113.     }
  114.  
  115.     if(tmrAimDelay.Running())
  116.     {
  117.         TargetID = -1;
  118.         return;
  119.     }
  120.  
  121.     if(g_CVar.AimLock && TargetID!=-1)
  122.     {
  123.         VectorCopy(SetupAimVector(TargetID), flOut);
  124.         return;
  125.     }
  126.  
  127.     float flClosest = 999999.9f;
  128.     TargetID = -1;
  129.  
  130.     for(int i=0;i <= 32; ++i)
  131.     {
  132.         if(!g_Player.GetPlayerByIndex(i)->Valid || !ValidTeam(i) || (g_CVar.AimDisableJumpers && g_pEntity[i].curstate.gaitsequence==6))
  133.             continue;
  134.  
  135.         Vector vAimPos = SetupAimVector(i);
  136.  
  137.         if(!g_CVar.AimThroughWalls && !g_Player.GetPlayerByIndex(i)->Visible)
  138.             continue;
  139.  
  140.         if(!g_CVar.FOVMethod && !AnglesInFOV(vAimPos, g_CVar.AimFOV_Width, g_CVar.AimFOV_Height))
  141.             continue;
  142.  
  143.         float flDistance = g_Math.GetAngleDistance(vAimPos).Length();
  144.         if(g_CVar.FOVMethod && (int)flDistance > g_CVar.FOVSize)
  145.             continue;
  146.  
  147.         if(flDistance < flClosest)
  148.         {
  149.             flClosest = flDistance;
  150.             TargetID = i;
  151.             VectorCopy(SetupAimVector(i), flOut);
  152.         }
  153.     }
  154. }
  155.  
  156. void CAimbot::CallAimbot()
  157. {
  158.     if(!g_CVar.Aimbot)
  159.         return;
  160.  
  161.     Vector vAimPosition;
  162.  
  163.     if(IsAimkeyDown() && CanAim())
  164.         FindTarget(vAimPosition);
  165.     else
  166.     {
  167.         TargetID = -1;
  168.         tmrAimDelay.Stop();
  169.     }
  170.  
  171.     Active=(TargetID != -1);
  172.  
  173.     if(TargetID != -1)
  174.         VectorCopy(GetAimAngles(vAimPosition, g_CVar.AimSmooth, true), g_Player.ViewAngles);
  175. }
  176.  
  177.  
  178.  
  179.  
  180.  
  181. class CAimbot
  182. {
  183. public:
  184.     bool Active;
  185.     bool DoNormalAim;
  186.     int TargetID;
  187.     CTimer tmrAimDelay;
  188.  
  189. public:
  190.     bool ValidTeam(int iIndex);
  191.     Vector SetupAimVector(int iIndex);
  192.     bool AnglesInFOV(float *flOrigin, float flFovW, float flFovH);
  193.     Vector GetRecoilValues();
  194.     Vector GetAimAngles(float *flOrigin, float flSmooth, bool bRecoil);
  195.     bool CanAim();
  196.     bool IsAimkeyDown();
  197.     void FindTarget(float *flOut);
  198.     void CallAimbot();
  199. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement