Advertisement
captmicro

SourceSDK aimbot/nospread snippet

Dec 19th, 2011
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.75 KB | None | 0 0
  1. C_BaseEntity *aimlock = 0;
  2. ConVar aimbot_on("aimbot_on", "0", FCVAR_CHEAT);
  3. ConVar trgbot_on("trgbot_on", "0", FCVAR_CHEAT);
  4. ConVar esp_on("esp_on", "0", FCVAR_CHEAT);
  5. ConVar nospread_on("nospread_on", "0", FCVAR_CHEAT);
  6.  
  7.         // If we're firing multiple shots, and the first shot has to be bang on target, ignore spread
  8.         if ( iShot == 0 && info.m_iShots > 1 && (info.m_nFlags & FIRE_BULLETS_FIRST_SHOT_ACCURATE) )
  9.         {
  10.             vecDir = Manipulator.GetShotDirection();
  11.         }
  12.         else if (!nospread_on.GetBool())
  13.         {
  14.             // Don't run the biasing code for the player at the moment.
  15.             vecDir = Manipulator.ApplySpread( info.m_vecSpread );
  16.         }
  17.  
  18.     if (aimbot_on.GetBool())
  19.     {
  20.         C_BasePlayer *lp = UTIL_PlayerByIndex(1);
  21.  
  22.         float radius = 2048.0f;
  23.         C_BaseEntity *ents[256];
  24.         int ent_count = UTIL_EntitiesInSphere(ents, 256, lp->GetAbsOrigin(), radius, 0);
  25.         int i = 0;
  26.         for (i = 0; i < ent_count; i++)
  27.         {
  28.             if (aimlock == 0 && (ents[i] != NULL)
  29.                 && ents[i]->IsAlive() && ents[i]->IsNPC()
  30.                 && (ents[i]->GetMoveType() != MOVETYPE_NONE)
  31.                 && (ents[i]->GetMoveType() != MOVETYPE_OBSERVER))
  32.             {
  33.                 aimlock = ents[i];
  34.                 break;
  35.             }
  36.             else if (aimlock != 0)
  37.             {
  38.                 if ((ents[i] == NULL)
  39.                     || !ents[i]->IsAlive() || !ents[i]->IsNPC()
  40.                     || (ents[i]->GetMoveType() == MOVETYPE_NONE)
  41.                     || (ents[i]->GetMoveType() == MOVETYPE_OBSERVER))
  42.                 {
  43.                     aimlock = 0;
  44.                     break;
  45.                 }
  46.             }
  47.         }
  48.  
  49.         if (aimlock != 0)
  50.         {
  51.             Vector aimpos; aimpos.Init();
  52.             QAngle aimang; aimang.Init();
  53.  
  54.             C_BasePlayer *enemy = (C_BasePlayer*)aimlock;
  55.             Vector epos = enemy->GetAbsOrigin();
  56.             epos.z += enemy->BoundingRadius();
  57.             Vector lpos = lp->GetAbsOrigin();
  58.             lpos.z += (lp->BoundingRadius()>40)?64:28;
  59.  
  60.             QAngle aang;
  61.             int atch = ents[i]->LookupAttachment("ValveBiped.Bip01_Head1");
  62.             if (atch != 0) ents[i]->GetAttachment(atch, epos, aang);
  63.  
  64.             aimpos = epos - lpos;
  65.             VectorAngles(aimpos, aimang);
  66.             pCmd->viewangles = aimang;
  67.  
  68.             if (trgbot_on.GetBool())
  69.             {
  70.                 if (pCmd->buttons & IN_ATTACK)
  71.                     pCmd->buttons &= ~IN_ATTACK;
  72.                 else pCmd->buttons &= IN_ATTACK;
  73.             }
  74.         }
  75.     }
  76.  
  77.     if (esp_on.GetBool())
  78.     {
  79.         float radius = 4096.0f;
  80.         C_BaseEntity *ents[256];
  81.         int ent_count = UTIL_EntitiesInSphere(ents, 256,
  82.             UTIL_PlayerByIndex(1)->GetAbsOrigin(), radius, 0);
  83.         int i = 0;
  84.         for (i = 0; i < ent_count; i++)
  85.         {
  86.             if ((ents[i] != NULL)
  87.                 && ents[i]->IsAlive() && ents[i]->IsNPC()
  88.                 && (ents[i]->GetMoveType() != MOVETYPE_NONE)
  89.                 && (ents[i]->GetMoveType() != MOVETYPE_OBSERVER))
  90.             {
  91.                 CCollisionProperty *pCollide = ents[i]->CollisionProp();
  92.                 debugoverlay->AddBoxOverlay(ents[i]->GetAbsOrigin(),
  93.                     pCollide->OBBMins(), pCollide->OBBMaxs(),
  94.                     ents[i]->GetAbsAngles(), 255, 0, 0, 10, 0.1f);
  95.             }
  96.         }
  97.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement