Advertisement
Guest User

Untitled

a guest
Dec 6th, 2014
1,524
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. #include "pch.h"
  2. #include "cube.h"
  3. #include "bot/bot.h"
  4.  
  5. VOID aimbot(VOID)
  6. {
  7. if(player1->state == CS_ALIVE)
  8. {
  9. playerent* Target_Player = NULL;
  10. FLOAT Enemy_Distance;
  11. FLOAT Nearest_Enemy_Distance = 99999.9f;
  12. SHORT Enemy_Distance_Rating;
  13. SHORT Best_Enemy_Distance_Rating = -100;
  14.  
  15. loopv(players)
  16. {
  17. if(players[i] == player1 || !players[i] || isteam(players[i]->team, player1->team) || (players[i]->state != CS_ALIVE))
  18. continue;
  19.  
  20. vec Target_Player_Vector;
  21. vec Forward_Vector;
  22. vec Right_Vector;
  23. vec Up_Vector;
  24.  
  25. AnglesToVectors(vec(player1->pitch, player1->yaw, player1->roll), Forward_Vector, Right_Vector, Up_Vector);
  26.  
  27. Target_Player_Vector = players[i]->o;
  28. Target_Player_Vector.sub(player1->o);
  29. Target_Player_Vector.z = 0.0f;
  30. Target_Player_Vector = Normalize(Target_Player_Vector);
  31.  
  32. Forward_Vector.z = 0;
  33. FLOAT Dot_Product = Target_Player_Vector.dot(Forward_Vector);
  34.  
  35. traceresult_s Tracer_Result;
  36. TraceLine(player1->o, players[i]->o, NULL, FALSE, &Tracer_Result, FALSE);
  37.  
  38. if(!Tracer_Result.collided == TRUE /* && Dot_Product >= 0.5f */ )
  39. {
  40. Enemy_Distance = players[i]->o.dist(player1->o);
  41. Enemy_Distance_Rating = 1;
  42.  
  43. if(Enemy_Distance < Nearest_Enemy_Distance)
  44. {
  45. Enemy_Distance_Rating += 2;
  46. Nearest_Enemy_Distance = Enemy_Distance;
  47. }
  48.  
  49. if(Enemy_Distance_Rating > Best_Enemy_Distance_Rating)
  50. {
  51. Target_Player = players[i];
  52. Best_Enemy_Distance_Rating = Enemy_Distance_Rating;
  53. }
  54. }
  55. }
  56.  
  57. if(Target_Player != NULL)
  58. {
  59. player1->pitch = atan2(Target_Player->o.z - player1->o.z, Target_Player->o.dist(player1->o)) * 180 / PI;
  60. player1->yaw = -(FLOAT)atan2(Target_Player->o.x - player1->o.x, Target_Player->o.y - player1->o.y) / PI * 180 + 180;
  61.  
  62. vec Forward_Vector;
  63. vec Right_Vector;
  64. vec Up_Vector;
  65. vec Destination_Vector;
  66.  
  67. AnglesToVectors(vec(player1->pitch, player1->yaw, player1->roll), Forward_Vector, Right_Vector, Up_Vector);
  68.  
  69. Destination_Vector = Target_Player->o;
  70. Forward_Vector.mul(1000);
  71. Destination_Vector.add(Forward_Vector);
  72.  
  73. traceresult_s Tracer_Result;
  74. TraceLine(player1->o, Destination_Vector, player1, FALSE, &Tracer_Result);
  75.  
  76. player1->attacking = TRUE;
  77. shoot(player1, Tracer_Result.end);
  78. player1->attacking = FALSE;
  79. }
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement