Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. void CResolver::Resolve_Predict(CBaseEntity* pEntity) {
  2. auto record = Backtracking->arr_infos.at(pEntity->GetIndex());
  3.  
  4. std::vector<CPredictable> m_predictable;
  5.  
  6. float last_lby = 0.0f;
  7.  
  8. studiohdr_t* hdr = Interfaces->ModelInfo->GetStudioModel(pEntity->GetModel());
  9.  
  10. for (auto &r : record.TickRecords) // аутизм, запоминани анимация
  11. {
  12. if (hdr && hdr->pSeqdesc(r.m_nSequence)->activity == ACT_CSGO_IDLE_TURN_BALANCEADJUST) // ACT_CSGO_IDLE_TURN_BALANCEADJUST
  13. {
  14. std::string animation = hdr->pSeqdesc(r.m_nSequence)->pszActivityName();
  15. //std::cout << "Resolvable animation for index '" << pEntity->GetIndex() << "' found @ '" << animation << "'\n";
  16. m_predictable.push_back(CPredictable(r.m_angEyeAngles.y, r.m_flSimulationTime));
  17. }
  18.  
  19. if (GetDelta(r.m_flLowerBodyYawTarget, last_lby) < 35)
  20. continue;
  21.  
  22. if (GetDelta(r.m_flLowerBodyYawTarget, r.m_angEyeAngles.y) < 35)
  23. continue;
  24.  
  25. last_lby = r.m_flLowerBodyYawTarget;
  26. }
  27.  
  28. bool is_breaking_lby = false;
  29.  
  30. for (auto c : m_predictable)
  31. {
  32. if (IsDifferent(c.m_flSimulationTime, pEntity->GetSimulationTime(), 0.170f) /* думаю 170 мс норм */)
  33. continue;
  34.  
  35. if (GetDelta(c.m_flLowerBodyYawTarget, pEntity->GetEyeAngles().y) < 90)
  36. continue;
  37.  
  38. is_breaking_lby = true;
  39. last_lby = c.m_flLowerBodyYawTarget;
  40. }
  41.  
  42. if (is_breaking_lby)
  43. {
  44. float offset = 90.0f;
  45.  
  46. if (GetDelta(last_lby, pEntity->GetEyeAngles().y) < 270.0f && GetDelta(last_lby, pEntity->GetEyeAngles().y) > 90.0f)
  47. {
  48. offset = 180.0f;
  49. }
  50.  
  51. switch (G::ShotsFired[pEntity->GetIndex()] % 4) // retarded way
  52. {
  53. case 0: pEntity->m_angEyeAngles().y += offset; break;
  54. case 1: pEntity->m_angEyeAngles().y += offset + 35.0f; break;
  55. case 2: pEntity->m_angEyeAngles().y -= offset + 35.0f; break;
  56. case 3: pEntity->m_angEyeAngles().y -= offset; break;
  57. }
  58. }
  59. else if (IsDifferent(last_lby, pEntity->GetEyeAngles().y)) // second retarded way
  60. {
  61. switch (G::ShotsFired[pEntity->GetIndex()] % 3)
  62. {
  63. case 0: pEntity->m_angEyeAngles().y = last_lby; break;
  64. case 1: pEntity->m_angEyeAngles().y = last_lby + 35.0f; break;
  65. case 2: pEntity->m_angEyeAngles().y = last_lby - 35.0f; break;
  66. }
  67. }
  68.  
  69. pEntity->m_angEyeAngles().NormalizeYaw();
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement