Advertisement
Guest User

Untitled

a guest
Jul 15th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.81 KB | None | 0 0
  1. #include "../includes.h"
  2. #include "../UTILS/interfaces.h"
  3. #include "../SDK/IEngine.h"
  4. #include "../SDK/CUserCmd.h"
  5. #include "../SDK/CBaseEntity.h"
  6. #include "../SDK/CClientEntityList.h"
  7. #include "../UTILS/render.h"
  8. #include "../SDK/CTrace.h"
  9. #include "../SDK/CBaseWeapon.h"
  10. #include "../SDK/CGlobalVars.h"
  11. #include "../SDK/ConVar.h"
  12. #include "../SDK/AnimLayer.h"
  13. #include "../UTILS/qangle.h"
  14. #include "../FEATURES/Aimbot.h"
  15. #include "../FEATURES/Resolver.h"
  16.  
  17. Vector old_calcangle(Vector dst, Vector src)
  18. {
  19. Vector angles;
  20.  
  21. double delta[3] = { (src.x - dst.x), (src.y - dst.y), (src.z - dst.z) };
  22. double hyp = sqrt(delta[0] * delta[0] + delta[1] * delta[1]);
  23. angles.x = (float)(atan(delta[2] / hyp) * 180.0 / 3.14159265);
  24. angles.y = (float)(atanf(delta[1] / delta[0]) * 57.295779513082f);
  25. angles.z = 0.0f;
  26.  
  27. if (delta[0] >= 0.0)
  28. {
  29. angles.y += 180.0f;
  30. }
  31. return angles;
  32. }
  33.  
  34. float old_normalize(float Yaw)
  35. {
  36. if (Yaw > 180)
  37. {
  38. Yaw -= (round(Yaw / 360) * 360.f);
  39. }
  40. else if (Yaw < -180)
  41. {
  42. Yaw += (round(Yaw / 360) * -360.f);
  43. }
  44. return Yaw;
  45. }
  46.  
  47. void CResolver::record(SDK::CBaseEntity* entity, float new_yaw)
  48. {
  49. if (entity->GetVelocity().Length2D() > 36) return;
  50.  
  51. auto c_baseweapon = reinterpret_cast<SDK::CBaseWeapon*>(INTERFACES::ClientEntityList->GetClientEntity(entity->GetActiveWeaponIndex()));
  52. if (!c_baseweapon) return;
  53.  
  54. auto &info = player_info[entity->GetIndex()];
  55. if (entity->GetActiveWeaponIndex() && info.last_ammo < c_baseweapon->GetLoadedAmmo()) {
  56. info.last_ammo = c_baseweapon->GetLoadedAmmo();
  57. return;
  58. }
  59.  
  60. info.unresolved_yaw.insert(info.unresolved_yaw.begin(), new_yaw);
  61. if (info.unresolved_yaw.size() > 20) info.unresolved_yaw.pop_back();
  62. if (info.unresolved_yaw.size() < 2) return;
  63.  
  64. auto average_unresolved_yaw = 0;
  65. for (auto val : info.unresolved_yaw)
  66. average_unresolved_yaw += val;
  67. average_unresolved_yaw /= info.unresolved_yaw.size();
  68.  
  69. int delta = average_unresolved_yaw - entity->GetLowerBodyYaw();
  70. auto big_math_delta = abs((((delta + 180) % 360 + 360) % 360 - 180));
  71.  
  72. info.lby_deltas.insert(info.lby_deltas.begin(), big_math_delta);
  73. if (info.lby_deltas.size() > 10) {
  74. info.lby_deltas.pop_back();
  75. }
  76. }
  77.  
  78. void CResolver::UpdateResolveRecord(SDK::CBaseEntity* entity)
  79. {
  80. /// a copy of the previous record for comparisons and shit
  81. const auto previous_record = player_resolve_records[entity->GetIndex()];
  82. auto& record = player_resolve_records[entity->GetIndex()];
  83.  
  84. record.resolved_angles = record.networked_angles;
  85. record.velocity = entity->GetVelocity();
  86. record.origin = entity->GetVecOrigin();
  87. record.lower_body_yaw = entity->GetLowerBodyYaw();
  88. record.is_dormant = entity->GetIsDormant();
  89.  
  90. record.resolve_type = 0;
  91.  
  92. record.is_balance_adjust_triggered = false, record.is_balance_adjust_playing = false;
  93. for (int i = 0; i < 15; i++) /// go through each animation layer
  94. {
  95. record.anim_layers[i] = entity->GetAnimOverlay(i);
  96.  
  97. /// balanceadjust act
  98. if (entity->GetSequenceActivity(record.anim_layers[i].m_nSequence) == SDK::CSGO_ACTS::ACT_CSGO_IDLE_TURN_BALANCEADJUST)
  99. {
  100. record.is_balance_adjust_playing = true;
  101.  
  102. /// balance adjust is being triggered
  103. if (record.anim_layers[i].m_flWeight == 1 || record.anim_layers[i].m_flCycle > previous_record.anim_layers[i].m_flCycle)
  104. record.last_balance_adjust_trigger_time = UTILS::GetCurtime();
  105. if (fabs(UTILS::GetCurtime() - record.last_balance_adjust_trigger_time) < 0.5f)
  106. record.is_balance_adjust_triggered = true;
  107. }
  108. }
  109.  
  110. }
  111.  
  112.  
  113. bool CResolver::AntiFreestanding(SDK::CBaseEntity* entity, float& yaw)
  114. {
  115. const auto freestanding_record = player_resolve_records[entity->GetIndex()].anti_freestanding_record;
  116.  
  117. auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  118. if (!local_player)
  119. return false;
  120.  
  121. if (freestanding_record.left_damage >= 20 && freestanding_record.right_damage >= 20)
  122. return false;
  123.  
  124. const float at_target_yaw = UTILS::CalcAngle(local_player->GetVecOrigin(), entity->GetVecOrigin()).y;
  125. if (freestanding_record.left_damage <= 0 && freestanding_record.right_damage <= 0)
  126. {
  127. if (freestanding_record.right_fraction < freestanding_record.left_fraction)
  128. yaw = at_target_yaw + 125.f;
  129. else
  130. yaw = at_target_yaw - 73.f;
  131. }
  132. else
  133. {
  134. if (freestanding_record.left_damage > freestanding_record.right_damage)
  135. yaw = at_target_yaw + 130.f;
  136. else
  137. yaw = at_target_yaw - 49.f;
  138. }
  139.  
  140. return true;
  141. }
  142.  
  143.  
  144.  
  145. void CResolver::resolve(SDK::CBaseEntity* entity)
  146. {
  147. auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  148. if (!entity) return;
  149. if (!local_player) return;
  150.  
  151. bool is_local_player = entity == local_player;
  152. bool is_teammate = local_player->GetTeam() == entity->GetTeam() && !is_local_player;
  153. if (is_local_player) return;
  154. if (is_teammate) return;
  155. if (entity->GetHealth() <= 0) return;
  156. if (local_player->GetHealth() <= 0) return;
  157.  
  158. if ((SETTINGS::settings.overridemethod == 1 && GetAsyncKeyState(UTILS::INPUT::input_handler.keyBindings(SETTINGS::settings.overridekey))) || (SETTINGS::settings.overridemethod == 0 && SETTINGS::settings.overridething))
  159. {
  160. Vector viewangles; INTERFACES::Engine->GetViewAngles(viewangles);
  161. auto at_target_yaw = UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y;
  162.  
  163. auto delta = MATH::NormalizeYaw(viewangles.y - at_target_yaw);
  164. auto rightDelta = Vector(entity->GetEyeAngles().x, at_target_yaw + 90, entity->GetEyeAngles().z);
  165. auto leftDelta = Vector(entity->GetEyeAngles().x, at_target_yaw - 90, entity->GetEyeAngles().z);
  166.  
  167. if (delta > 0)
  168. entity->SetEyeAngles(rightDelta);
  169. else
  170. entity->SetEyeAngles(leftDelta);
  171. return;
  172. }
  173.  
  174. auto &info = player_info[entity->GetIndex()];
  175. float fl_lby = entity->GetLowerBodyYaw();
  176.  
  177. info.lby = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw(), 0.f);
  178. info.inverse = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() + 180.f, 0.f);
  179. info.last_lby = Vector(entity->GetEyeAngles().x, info.last_moving_lby, 0.f);
  180. info.inverse_left = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() + 115.f, 0.f);
  181. info.inverse_right = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() - 115.f, 0.f);
  182.  
  183. info.back = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y + 180.f, 0.f);
  184. info.right = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y + 70.f, 0.f);
  185. info.left = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y - 70.f, 0.f);
  186.  
  187. info.backtrack = Vector(entity->GetEyeAngles().x, lby_to_back[entity->GetIndex()], 0.f);
  188.  
  189. shots_missed[entity->GetIndex()] = shots_fired[entity->GetIndex()] - shots_hit[entity->GetIndex()];
  190.  
  191.  
  192.  
  193. if (SETTINGS::settings.fakefix_bool) info.is_moving = entity->GetVelocity().Length2D() > 0.1 && entity->GetFlags() & FL_ONGROUND && !info.could_be_slowmo;
  194. else info.is_moving = entity->GetVelocity().Length2D() > 0.1 && entity->GetFlags() & FL_ONGROUND;
  195.  
  196. info.is_jumping = !entity->GetFlags() & FL_ONGROUND;
  197. info.could_be_slowmo = entity->GetVelocity().Length2D() > 6 && entity->GetVelocity().Length2D() < 36 && !info.is_crouching;
  198. info.is_crouching = entity->GetFlags() & FL_DUCKING;
  199. update_time[entity->GetIndex()] = info.next_lby_update_time;
  200.  
  201. static float old_simtime[65];
  202. if (entity->GetSimTime() != old_simtime[entity->GetIndex()])
  203. {
  204. using_fake_angles[entity->GetIndex()] = entity->GetSimTime() - old_simtime[entity->GetIndex()] == INTERFACES::Globals->interval_per_tick;
  205. old_simtime[entity->GetIndex()] = entity->GetSimTime();
  206. }
  207.  
  208. if (!using_fake_angles[entity->GetIndex()])
  209. {
  210. if (backtrack_tick[entity->GetIndex()])
  211. {
  212. resolve_type[entity->GetIndex()] = 7;
  213. /* entity->SetEyeAngles(info.backtrack);*/
  214. }
  215.  
  216.  
  217.  
  218. else if (info.stored_lby != entity->GetLowerBodyYaw())
  219. {
  220. entity->SetEyeAngles(info.lby);
  221. info.stored_lby = entity->GetLowerBodyYaw();
  222. resolve_type[entity->GetIndex()] = 3;
  223. }
  224. else if (info.is_moving)
  225. {
  226. entity->SetEyeAngles(info.lby);
  227. info.last_moving_lby = entity->GetLowerBodyYaw();
  228. info.stored_missed = shots_missed[entity->GetIndex()];
  229. resolve_type[entity->GetIndex()] = 1;
  230. }
  231. else
  232. {
  233. if (shots_missed[entity->GetIndex()] > info.stored_missed)
  234. {
  235. resolve_type[entity->GetIndex()] = 4;
  236. switch (shots_missed[entity->GetIndex()] % 4)
  237. {
  238. case 0: entity->SetEyeAngles(info.inverse); break;
  239. case 1: entity->SetEyeAngles(info.left); break;
  240. case 2: entity->SetEyeAngles(info.back); break;
  241. case 3: entity->SetEyeAngles(info.right); break;
  242. }
  243. }
  244. else
  245. {
  246. entity->SetEyeAngles(info.last_lby);
  247. resolve_type[entity->GetIndex()] = 5;
  248. }
  249. }
  250. }
  251. }
  252.  
  253. CResolver* resolver = new CResolver();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement