Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool CAimbot::ValidTeam(int iIndex)
- {
- if(!g_CVar.AimTeam && g_Player.GetLocalPlayer()->Team != g_Player.GetPlayerByIndex(iIndex)->Team)
- return true;
- if(g_CVar.AimTeam==1 && g_Player.GetLocalPlayer()->Team == g_Player.GetPlayerByIndex(iIndex)->Team)
- return true;
- if(g_CVar.AimTeam == 2)
- return true;
- return false;
- }
- Vector CAimbot::SetupAimVector(int iIndex)
- {
- Vector vRet=g_Player.GetPlayerByIndex(iIndex)->Hitbox;
- if(g_CVar.AimMethod == 1 || g_Player.GetPlayerByIndex(iIndex)->bSoundActive)
- {
- Vector vF, vR, vU, vOrigin = g_Player.GetPlayerByIndex(iIndex)->Origin;
- g_Math.AngleVectors(Vector(g_Player.GetPlayerByIndex(iIndex)->AngleX, g_Player.GetPlayerByIndex(iIndex)->AngleY, 0.0f), vF, vR, vU);
- if(g_Player.GetPlayerByIndex(iIndex)->Ducking)
- vOrigin.z+=4;
- vRet = vOrigin + vF * g_CVar.Aim_VecForward + vR * g_CVar.Aim_VecRight + vU * g_CVar.Aim_VecUp;
- if(g_Player.WeaponType == WEAPONTYPE_SNIPER)
- vRet = vOrigin + vF * g_CVar.Sniper_VecForward + vR * g_CVar.Sniper_VecRight + vU * g_CVar.Sniper_VecUp;
- }
- return vRet;
- }
- bool CAimbot::AnglesInFOV(float *flOrigin, float flFovW, float flFovH)
- {
- Vector vOrigin, vF, vR, vU, vAngles = Vector(0.0f, g_Player.GetLocalPlayer()->AngleX, 0.0f);
- g_Math.AngleVectors(vAngles,vF,vR,vU);
- VectorCopy(flOrigin,vOrigin);
- Vector vUpFOV = vOrigin + vU * flFovH;
- Vector vRightFOV = vOrigin + vR * flFovW;
- Vector vForwardFOV = vOrigin + vF * flFovW;
- float flDistance = g_Math.GetAngleDistance(vOrigin).Length();
- if(flDistance <= g_Math.GetAngleDistance(vUpFOV, vOrigin)
- && (flDistance <= g_Math.GetAngleDistance(vRightFOV, vOrigin)
- || flDistance <= g_Math.GetAngleDistance(vForwardFOV, vOrigin)))
- return true;
- return false;
- }
- Vector CAimbot::GetRecoilValues()
- {
- static Vector tmp;
- VectorClear(tmp);
- float flRecoilValue = ((float)g_CVar.Rifle_Recoil * 2.0f) / 100.0f;
- if(g_Player.WeaponType == WEAPONTYPE_PISTOL)
- flRecoilValue = ((float)g_CVar.Pistol_Recoil * 2.0f) / 100.0f;
- if(g_Player.WeaponType==WEAPONTYPE_SHOTGUN)
- flRecoilValue = ((float)g_CVar.Shotgun_Recoil * 2.0f) / 100.0f;
- if(g_Player.WeaponType==WEAPONTYPE_SNIPER)
- flRecoilValue = ((float)g_CVar.Sniper_Recoil * 2.0f) / 100.0f;
- VectorCopy(g_Player.PunchAngles, tmp);
- tmp[0] *= flRecoilValue;
- tmp[1] *= flRecoilValue;
- return tmp;
- }
- Vector CAimbot::GetAimAngles(float *flOrigin,float flSmooth,bool bRecoil)
- {
- Vector vAngles = g_Player.ViewAngles, vAimAngles;
- g_Math.VectorViewangles(flOrigin, vAimAngles);
- if(g_CVar.AntiRecoil && bRecoil)
- {
- vAimAngles[0]-=GetRecoilValues()[0];
- vAimAngles[1]-=GetRecoilValues()[1];
- }
- vAngles[0] += vAimAngles[0] / flSmooth;
- vAngles[1] += vAimAngles[1] / flSmooth;
- return vAngles;
- }
- bool CAimbot::CanAim()
- {
- if(g_Player.GetLocalWeapon()->Reloading || !g_Player.GetLocalWeapon()->Ammo || g_Player.WeaponType == WEAPONTYPE_MISC)
- return false;
- return true;
- }
- bool CAimbot::IsAimkeyDown()
- {
- bool bRet = false;
- if(g_CVar.AimKey > 2) ++g_CVar.AimKey;
- if(g_CVar.SniperKey > 2) ++g_CVar.SniperKey;
- DoNormalAim=false;
- if(GetAsyncKeyState(g_CVar.AimKey) && g_Player.WeaponType != WEAPONTYPE_SNIPER)
- DoNormalAim = bRet = true;
- if(GetAsyncKeyState(g_CVar.SniperKey) && g_Player.WeaponType == WEAPONTYPE_SNIPER)
- DoNormalAim = bRet = true;
- if(g_CVar.AimKey > 2) --g_CVar.AimKey;
- if(g_CVar.SniperKey > 2) --g_CVar.SniperKey;
- return bRet;
- }
- void CAimbot::FindTarget(float *flOut)
- {
- 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))
- {
- tmrAimDelay.Start(g_CVar.AimDelay);
- tmrAimDelay.Reset(g_CVar.AimDelay);
- TargetID = -1;
- }
- if(tmrAimDelay.Running())
- {
- TargetID = -1;
- return;
- }
- if(g_CVar.AimLock && TargetID!=-1)
- {
- VectorCopy(SetupAimVector(TargetID), flOut);
- return;
- }
- float flClosest = 999999.9f;
- TargetID = -1;
- for(int i=0;i <= 32; ++i)
- {
- if(!g_Player.GetPlayerByIndex(i)->Valid || !ValidTeam(i) || (g_CVar.AimDisableJumpers && g_pEntity[i].curstate.gaitsequence==6))
- continue;
- Vector vAimPos = SetupAimVector(i);
- if(!g_CVar.AimThroughWalls && !g_Player.GetPlayerByIndex(i)->Visible)
- continue;
- if(!g_CVar.FOVMethod && !AnglesInFOV(vAimPos, g_CVar.AimFOV_Width, g_CVar.AimFOV_Height))
- continue;
- float flDistance = g_Math.GetAngleDistance(vAimPos).Length();
- if(g_CVar.FOVMethod && (int)flDistance > g_CVar.FOVSize)
- continue;
- if(flDistance < flClosest)
- {
- flClosest = flDistance;
- TargetID = i;
- VectorCopy(SetupAimVector(i), flOut);
- }
- }
- }
- void CAimbot::CallAimbot()
- {
- if(!g_CVar.Aimbot)
- return;
- Vector vAimPosition;
- if(IsAimkeyDown() && CanAim())
- FindTarget(vAimPosition);
- else
- {
- TargetID = -1;
- tmrAimDelay.Stop();
- }
- Active=(TargetID != -1);
- if(TargetID != -1)
- VectorCopy(GetAimAngles(vAimPosition, g_CVar.AimSmooth, true), g_Player.ViewAngles);
- }
- class CAimbot
- {
- public:
- bool Active;
- bool DoNormalAim;
- int TargetID;
- CTimer tmrAimDelay;
- public:
- bool ValidTeam(int iIndex);
- Vector SetupAimVector(int iIndex);
- bool AnglesInFOV(float *flOrigin, float flFovW, float flFovH);
- Vector GetRecoilValues();
- Vector GetAimAngles(float *flOrigin, float flSmooth, bool bRecoil);
- bool CanAim();
- bool IsAimkeyDown();
- void FindTarget(float *flOut);
- void CallAimbot();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement