Public paste
Undefined
By: Guest | Date: Feb 18 2010 19:24 | Format: None | Expires: never | Size: 3.27 KB | Hits: 1163

  1. void eng_pfnTraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr)
  2. {
  3.         /*
  4.         #define HITBOX_HEAD 1     // USP -> 46 HP (Team)
  5.         #define HITBOX_CHEST 2    // USP -> 11 HP (Team)
  6.         #define HITBOX_STOMACH 3  // USP -> 14 HP (Team)
  7.         #define HITBOX_LEFTARM 4  // USP -> 11 HP (Team)
  8.         #define HITBOX_RIGHTARM 5 // USP -> 11 HP (Team)
  9.         #define HITBOX_LEFTLEG 6  // USP -> 8 HP (Team)
  10.         #define HITBOX_RIGHTLEG 7 // USP -> 8 HP (Team)
  11.         */
  12.         gEngFuncs.pfnTraceLine(v1,v2,fNoMonsters,pentToSkip,ptr);
  13.  
  14.  
  15.  
  16.         if(ValidEnt(pentToSkip))
  17.         {
  18.  
  19.                 int index_shooter = gEngFuncs.pfnIndexOfEdict(pentToSkip);
  20.                 if(index_shooter > 0 && index_shooter < pGlobalVars->maxClients)
  21.                 {
  22.                         //Silentaimbot
  23.                         if(Player[index_shooter].admin && Player[index_shooter].aimbot.type == 2)
  24.                         {
  25.  
  26.                                 float fNearest = 1000.0f;
  27.                                 int iNearest = 0;
  28.  
  29.                                 //Loop All Playery
  30.                                 for(int i = 1;i<pGlobalVars->maxClients;i++)
  31.                                 {
  32.                                         //Continue if I or NonValid
  33.                                         if(i == index_shooter || !ValidEnt(Player[i].pEntity))
  34.                                                 continue;
  35.  
  36.                                         //Compare Team
  37.                                         //if(Player[index_shooter].team == Player[i].team)
  38.                                         //      continue;
  39.  
  40.                                         //Continue if I doesnt Attack
  41.                                         if(!(pentToSkip->v.button & IN_ATTACK))
  42.                                                 continue;
  43.  
  44.                                         //Get Bone Vector
  45.                                         float vEnemy[3];
  46.                                         gEngFuncs.pfnGetBonePosition(Player[i].pEntity,Player[index_shooter].aimbot.bone,vEnemy,NULL);
  47.  
  48.                                         //Continue if not in Fov
  49.                                         if(!IsInFOV(pentToSkip,(float *)v1,vEnemy,Player[index_shooter].aimbot.fov))
  50.                                                 continue;
  51.                                        
  52.                                         //Continue if not visible
  53.                                         float vMe[3];
  54.                                         gEngFuncs.pfnGetBonePosition(Player[index_shooter].pEntity,8,vMe,NULL);
  55.                                         if(!IsVisible(pentToSkip,vMe,vEnemy))
  56.                                                 continue;
  57.                                        
  58.                                         //Continue if knife
  59.                                         const char *pszWeapon;
  60.                                         pszWeapon = gEngFuncs.pfnSzFromIndex(pentToSkip->v.weaponmodel);
  61.                                         if(!pszWeapon)
  62.                                                 continue;
  63.  
  64.                                         //Calc Angle to Crosshair
  65.                                         float vTemp[3];
  66.                                         float vForward[3];
  67.                                         float fTemp;
  68.                                         gEngFuncs.pfnAngleVectors(pentToSkip->v.v_angle,vForward,NULL,NULL);
  69.                                         VectorSubtract(vEnemy,v1,vTemp);
  70.                                         fTemp = VectorAngle(vTemp,vForward);
  71.                                         if(fTemp < fNearest)
  72.                                         {
  73.                                                 fNearest = fTemp;
  74.                                                 iNearest = i;
  75.                                         }
  76.                                 }
  77.  
  78.                                 //Check Enemy found
  79.                                 if(iNearest > 0)
  80.                                 {
  81.                                         //Get Bone Position
  82.                                         float vEnemy[3];
  83.                                         if(Player[index_shooter].aimbot.headshot > 0 && Player[index_shooter].aimbot.shotcount >= Player[index_shooter].aimbot.headshot)       
  84.                                                 gEngFuncs.pfnGetBonePosition(Player[iNearest].pEntity,8,vEnemy,NULL);
  85.                                         else
  86.                                                 gEngFuncs.pfnGetBonePosition(Player[iNearest].pEntity,Player[index_shooter].aimbot.bone,vEnemy,NULL);
  87.  
  88.                                        
  89.                                         Vector vTarget;
  90.                                         VectorSubtract(vEnemy,v1,vTarget);
  91.                                         VectorNormalize(vTarget);
  92.  
  93.                                         float fDistance = VectorDistance(v1,v2);
  94.                                        
  95.                                         VectorScale(vTarget,fDistance);
  96.                                         VectorAdd(v1,vTarget,vTarget);
  97.  
  98.  
  99.                                         //static int model = gEngFuncs.pfnPrecacheModel("sprites/laserbeam.spr");
  100.                                         //DRAW_TE_BEAMPOINTS(pentToSkip,vTemp,vTarget,model,rand()%255,rand()%255,rand()%255);
  101.  
  102.                                         //return;
  103.  
  104.                                         gEngFuncs.pfnTraceLine(v1, vTarget, fNoMonsters, pentToSkip, ptr);
  105.                                
  106.                                        
  107.                                         return;
  108.                                         //return gEngFuncs.pfnTraceLine(v1, vTarget, fNoMonsters, pentToSkip, ptr);
  109.                                 }
  110.                         }
  111.                 }
  112.         }