Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. float GetRealDistanceFOV(float distance, QAngle angle, CUserCmd* cmd)
  2. {
  3. Vector aimingAt;
  4. Math::AngleVectors(cmd->viewangles, aimingAt);
  5. aimingAt *= distance;
  6.  
  7. Vector aimAt;
  8. Math::AngleVectors(angle, aimAt);
  9. aimAt *= distance;
  10.  
  11. return aimingAt.DistTo(aimAt);
  12. }
  13.  
  14. Vector VelocityExtrapolate(C_BasePlayer* player, Vector aimPos)
  15. {
  16. return aimPos + (player->GetVelocity() * globalVars->interval_per_tick);
  17. }
  18.  
  19. C_BasePlayer* GetClosestPlayer(CUserCmd* cmd, bool visible, Bone& bestBone, float& bestDamage, AimTargetType aimTargetType = AimTargetType::FOV)
  20. {
  21. if (Settings::Aimbot::AutoAim::realDistance)
  22. aimTargetType = AimTargetType::REAL_DISTANCE;
  23.  
  24. bestBone = static_cast<Bone>(Settings::Aimbot::bone);
  25.  
  26. C_BasePlayer* localplayer = (C_BasePlayer*) entityList->GetClientEntity(engine->GetLocalPlayer());
  27. C_BasePlayer* closestEntity = NULL;
  28.  
  29. // TODO Change the big value with a distance/fov slider
  30. float bestFov = Settings::Aimbot::AutoAim::fov;
  31. float bestRealDistance = Settings::Aimbot::AutoAim::fov * 5.f;
  32. float bestDistance = 999999999.0f;
  33. int bestHp = 100;
  34.  
  35. if (!localplayer)
  36. return NULL;
  37.  
  38. for (int i = 1; i < engine->GetMaxClients(); ++i)
  39. {
  40. C_BasePlayer* player = (C_BasePlayer*) entityList->GetClientEntity(i);
  41.  
  42. if (!player
  43. || player == localplayer
  44. || player->GetDormant()
  45. || !player->GetAlive()
  46. || player->GetImmune())
  47. continue;
  48.  
  49. if (!Settings::Aimbot::friendly && player->GetTeam() == localplayer->GetTeam())
  50. continue;
  51.  
  52. IEngineClient::player_info_t entityInformation;
  53. engine->GetPlayerInfo(i, &entityInformation);
  54.  
  55. if (std::find(Aimbot::friends.begin(), Aimbot::friends.end(), entityInformation.xuid) != Aimbot::friends.end())
  56. continue;
  57.  
  58. Vector eVecTarget = player->GetBonePosition((int) Settings::Aimbot::bone);
  59. Vector pVecTarget = localplayer->GetEyePosition();
  60.  
  61. QAngle viewAngles;
  62. engine->GetViewAngles(viewAngles);
  63.  
  64. float distance = pVecTarget.DistTo(eVecTarget);
  65. float fov = Math::GetFov(viewAngles, Math::CalcAngle(pVecTarget, eVecTarget));
  66. float real_distance = GetRealDistanceFOV(distance, Math::CalcAngle(pVecTarget, eVecTarget), cmd);
  67. int hp = player->GetHealth();
  68.  
  69. if (aimTargetType == AimTargetType::DISTANCE && distance > bestDistance)
  70. continue;
  71.  
  72. if (aimTargetType == AimTargetType::FOV && fov > bestFov)
  73. continue;
  74.  
  75. if (aimTargetType == AimTargetType::REAL_DISTANCE && real_distance > bestRealDistance)
  76. continue;
  77.  
  78. if (aimTargetType == AimTargetType::HP && hp > bestHp)
  79. continue;
  80.  
  81. if (visible && !Settings::Aimbot::AutoWall::enabled && !Entity::IsVisible(player, Settings::Aimbot::bone))
  82. continue;
  83.  
  84. bestBone = static_cast<Bone>(Entity::GetBoneByName(player, targets[(int) Settings::Aimbot::bone]));
  85.  
  86. if (Settings::Aimbot::AutoWall::enabled)
  87. {
  88. float damage = 0.0f;
  89. Bone bone;
  90. GetBestBone(player, damage, bone);
  91.  
  92. if (damage >= bestDamage && damage >= Settings::Aimbot::AutoWall::value)
  93. {
  94. bestDamage = damage;
  95. bestBone = bone;
  96. closestEntity = player;
  97. }
  98. }
  99. else
  100. {
  101. closestEntity = player;
  102. bestFov = fov;
  103. bestRealDistance = real_distance;
  104. bestDistance = distance;
  105. bestHp = hp;
  106. }
  107. }
  108.  
  109. return closestEntity;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement