Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.55 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. void CResolver::record(SDK::CBaseEntity* entity, float new_yaw)
  18. {
  19. if (entity->GetVelocity().Length2D() > 36) return;
  20.  
  21. auto c_baseweapon = reinterpret_cast<SDK::CBaseWeapon*>(INTERFACES::ClientEntityList->GetClientEntity(entity->GetActiveWeaponIndex()));
  22. if (!c_baseweapon) return;
  23.  
  24. auto &info = player_info[entity->GetIndex()];
  25. if (entity->GetActiveWeaponIndex() && info.last_ammo < c_baseweapon->GetLoadedAmmo()) {
  26. info.last_ammo = c_baseweapon->GetLoadedAmmo();
  27. return;
  28. }
  29.  
  30. info.unresolved_yaw.insert(info.unresolved_yaw.begin(), new_yaw);
  31. if (info.unresolved_yaw.size() > 20) info.unresolved_yaw.pop_back();
  32. if (info.unresolved_yaw.size() < 2) return;
  33.  
  34. auto average_unresolved_yaw = 0;
  35. for (auto val : info.unresolved_yaw)
  36. average_unresolved_yaw += val;
  37. average_unresolved_yaw /= info.unresolved_yaw.size();
  38.  
  39. int delta = average_unresolved_yaw - entity->GetLowerBodyYaw();
  40. auto big_math_delta = abs((((delta + 180) % 360 + 360) % 360 - 180));
  41.  
  42. info.lby_deltas.insert(info.lby_deltas.begin(), big_math_delta);
  43. if (info.lby_deltas.size() > 10) {
  44. info.lby_deltas.pop_back();
  45. }
  46. }
  47. void CResolver::resolve(SDK::CBaseEntity* entity)
  48. {
  49. auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  50. if (!entity) return;
  51. if (!local_player) return;
  52.  
  53. bool is_local_player = entity == local_player;
  54. bool is_teammate = local_player->GetTeam() == entity->GetTeam() && !is_local_player;
  55. if (is_local_player) return;
  56. if (is_teammate) return;
  57. if (entity->GetHealth() <= 0) return;
  58. if (local_player->GetHealth() <= 0) return;
  59.  
  60.  
  61. //switch (SETTINGS::settings.resolver_type)
  62. //{
  63. //case 0:
  64. //{
  65. // //off
  66. //}
  67. //break;
  68.  
  69.  
  70.  
  71. if ((SETTINGS::settings.overridemethod == 1 && GetAsyncKeyState(UTILS::INPUT::input_handler.keyBindings(SETTINGS::settings.overridekey))) || (SETTINGS::settings.overridemethod == 0 && SETTINGS::settings.overridething))
  72. {
  73. Vector viewangles; INTERFACES::Engine->GetViewAngles(viewangles);
  74. auto at_target_yaw = UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y;
  75.  
  76. auto delta = MATH::NormalizeYaw(viewangles.y - at_target_yaw);
  77. auto rightDelta = Vector(entity->GetEyeAngles().x, at_target_yaw + 90, entity->GetEyeAngles().z);
  78. auto leftDelta = Vector(entity->GetEyeAngles().x, at_target_yaw - 90, entity->GetEyeAngles().z);
  79.  
  80. if (delta > 0)
  81. entity->SetEyeAngles(rightDelta);
  82. else
  83. entity->SetEyeAngles(leftDelta);
  84. return;
  85. }
  86.  
  87. //case 1:
  88. //{
  89.  
  90. // auto &info = player_info[entity->GetIndex()];
  91. // float fl_lby = entity->GetLowerBodyYaw();
  92.  
  93. // info.lby = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw(), 0.f);
  94. // info.inverse = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() + 180.f, 0.f);
  95. // info.last_lby = Vector(entity->GetEyeAngles().x, info.last_moving_lby, 0.f);
  96. // info.inverse_left = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() + 115.f, 0.f);
  97. // info.inverse_right = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() - 115.f, 0.f);
  98.  
  99. // info.back = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y + 180.f, 0.f);
  100. // info.right = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y + 70.f, 0.f);
  101. // info.left = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y - 70.f, 0.f);
  102.  
  103. // info.backtrack = Vector(entity->GetEyeAngles().x, lby_to_back[entity->GetIndex()], 0.f);
  104.  
  105. // shots_missed[entity->GetIndex()] = shots_fired[entity->GetIndex()] - shots_hit[entity->GetIndex()];
  106.  
  107. // if (SETTINGS::settings.fakefix_bool) info.is_moving = entity->GetVelocity().Length2D() > 0.1 && entity->GetFlags() & FL_ONGROUND && !info.could_be_slowmo;
  108. // else info.is_moving = entity->GetVelocity().Length2D() > 0.1 && entity->GetFlags() & FL_ONGROUND;
  109.  
  110. // info.is_jumping = !entity->GetFlags() & FL_ONGROUND;
  111. // info.could_be_slowmo = entity->GetVelocity().Length2D() > 6 && entity->GetVelocity().Length2D() < 36 && !info.is_crouching;
  112. // info.is_crouching = entity->GetFlags() & FL_DUCKING;
  113. // update_time[entity->GetIndex()] = info.next_lby_update_time;
  114.  
  115. // static float old_simtime[65];
  116. // if (entity->GetSimTime() != old_simtime[entity->GetIndex()])
  117. // {
  118. // using_fake_angles[entity->GetIndex()] = entity->GetSimTime() - old_simtime[entity->GetIndex()] == INTERFACES::Globals->interval_per_tick;
  119. // old_simtime[entity->GetIndex()] = entity->GetSimTime();
  120. // }
  121.  
  122. // if (!using_fake_angles[entity->GetIndex()])
  123. // {
  124. // if (backtrack_tick[entity->GetIndex()])
  125. // {
  126. // resolve_type[entity->GetIndex()] = 7;
  127. // entity->SetEyeAngles(info.backtrack);
  128. // }
  129. // else if (info.stored_lby != entity->GetLowerBodyYaw())
  130. // {
  131. // entity->SetEyeAngles(info.lby);
  132. // info.stored_lby = entity->GetLowerBodyYaw();
  133. // resolve_type[entity->GetIndex()] = 3;
  134. // }
  135. // else if (info.is_moving)
  136. // {
  137. // entity->SetEyeAngles(info.lby);
  138. // info.last_moving_lby = entity->GetLowerBodyYaw();
  139. // info.stored_missed = shots_missed[entity->GetIndex()];
  140. // resolve_type[entity->GetIndex()] = 1;
  141. // }
  142. // else
  143. // {
  144. // if (shots_missed[entity->GetIndex()] > info.stored_missed)
  145. // {
  146. // resolve_type[entity->GetIndex()] = 4;
  147. // switch (shots_missed[entity->GetIndex()] % 4)
  148. // {
  149. // case 0: entity->SetEyeAngles(info.inverse); break;
  150. // case 1: entity->SetEyeAngles(info.left); break;
  151. // case 2: entity->SetEyeAngles(info.back); break;
  152. // case 3: entity->SetEyeAngles(info.right); break;
  153. // }
  154. // }
  155. // else
  156. // {
  157. // entity->SetEyeAngles(info.last_lby);
  158. // resolve_type[entity->GetIndex()] = 5;
  159. // }
  160. // }
  161. // }
  162.  
  163. //}
  164. //break;
  165.  
  166. //on - experimental
  167. auto &info = player_info[entity->GetIndex()];
  168.  
  169. //--- Variable Defenitions/Checks ---//
  170. float fl_lby = entity->GetLowerBodyYaw();
  171.  
  172. info.lby = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw(), 0.f);
  173. info.inverse = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() + 180.f, 0.f);
  174. info.last_lby = Vector(entity->GetEyeAngles().x, info.last_moving_lby, 0.f);
  175. info.inverse_left = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() + 115.f, 0.f);
  176. info.inverse_right = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() - 115.f, 0.f);
  177.  
  178. info.back = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y + 180.f, 0.f);
  179. info.right = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y + 226, 0.f);
  180. info.left = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y - 116, 0.f);
  181.  
  182. info.backtrack = Vector(entity->GetEyeAngles().x, lby_to_back[entity->GetIndex()], 0.f);
  183.  
  184. shots_missed[entity->GetIndex()] = shots_fired[entity->GetIndex()] - shots_hit[entity->GetIndex()];
  185. info.is_moving = entity->GetVelocity().Length2D() > 0.1 && entity->GetFlags() & FL_ONGROUND;
  186. info.is_jumping = !entity->GetFlags() & FL_ONGROUND;
  187. info.could_be_slowmo = entity->GetVelocity().Length2D() > 6 && entity->GetVelocity().Length2D() < 36 && !info.is_crouching;
  188. info.is_crouching = entity->GetFlags() & FL_DUCKING;
  189. update_time[entity->GetIndex()] = info.next_lby_update_time;
  190.  
  191. static float old_simtime[65];
  192. if (entity->GetSimTime() != old_simtime[entity->GetIndex()]) // using_fake_angles for FAKE visual.
  193. {
  194. using_fake_angles[entity->GetIndex()] = entity->GetSimTime() - old_simtime[entity->GetIndex()] == INTERFACES::Globals->interval_per_tick; //entity->GetSimTime() - old_simtime[entity->GetIndex()] >= TICKS_TO_TIME(2)
  195. old_simtime[entity->GetIndex()] = entity->GetSimTime();
  196. }
  197. if (shots_missed[entity->GetIndex()] > info.stored_missed)
  198. {
  199. resolve_type[entity->GetIndex()] = 4;
  200. switch (shots_missed[entity->GetIndex()] % 4)
  201. {
  202. case 0: entity->SetEyeAngles(info.inverse); break;
  203. case 1: entity->SetEyeAngles(info.left); break;
  204.  
  205. case 3: entity->SetEyeAngles(info.right); break;
  206. }
  207. }
  208. if (backtrack_tick[entity->GetIndex()])
  209. {
  210. resolve_type[entity->GetIndex()] = 7;
  211. entity->SetEyeAngles(info.backtrack);
  212. }
  213. else if (info.stored_lby != entity->GetLowerBodyYaw())
  214. {
  215. entity->SetEyeAngles(info.lby);
  216. info.stored_lby = entity->GetLowerBodyYaw();
  217. resolve_type[entity->GetIndex()] = 3;
  218. }
  219. else if (!info.is_moving && entity->GetSimTime() > info.next_lby_update_time) //lby prediction
  220. {
  221. entity->SetEyeAngles(info.last_lby);
  222. info.next_lby_update_time = entity->GetSimTime() + 1.1;
  223. info.stored_lby = entity->GetLowerBodyYaw();
  224. resolve_type[entity->GetIndex()] = 3;
  225. }
  226. else if (!entity->GetFlags() & FL_ONGROUND)
  227. {
  228.  
  229. }
  230. else if (info.is_moving) //while moving
  231. {
  232. entity->SetEyeAngles(info.lby);
  233. info.last_moving_lby = entity->GetLowerBodyYaw();
  234. resolve_type[entity->GetIndex()] = 1;
  235. }
  236.  
  237. else
  238. {
  239. entity->SetEyeAngles(info.last_lby);
  240. resolve_type[entity->GetIndex()] = 5;
  241. }
  242. }
  243.  
  244.  
  245.  
  246. CResolver* resolver = new CResolver();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement