Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.09 KB | None | 0 0
  1. bool closestToCrossHair(DWORD* entity, float* distance, int* getbestbone, bool invertteam)
  2. {
  3. using namespace settings;
  4. using namespace offsets;
  5. using namespace keys;
  6.  
  7. DWORD localPlayer = *(DWORD*)(m_dwLocalPlayer);
  8. if (localPlayer == 0) return false;
  9.  
  10. int myteam = *(int*)(localPlayer + m_iTeamNum);
  11. DWORD clientState = *(DWORD*)(m_dwClientState);
  12. if (*(int*)(clientState + m_dwInGame) != INGAME) return false;
  13.  
  14. float bestdist = 10000.f;
  15. DWORD target = 0;
  16. int bestbone = -1;
  17.  
  18. for (int i = 0; i < 64; i++)
  19. {
  20. DWORD entity = *(DWORD*)(m_dwEntityList + (i - 1) * 0x10);
  21. if (entity == 0) continue;
  22.  
  23. bool dormant = *(bool*)(entity + m_bDormant);
  24. if (dormant) continue;
  25. if (entity == localPlayer) continue;
  26. int health = *(int*)(entity + m_iHealth);
  27. if (health <= 0) continue;
  28. int team = *(int*)(entity + m_iTeamNum);
  29. if (team == (myteam ^ invertteam)) continue;
  30.  
  31. vec3 myorigin = *(vec3*)(localPlayer + m_vecOrigin);
  32. vec3 mypos = myorigin.add(*(vec3*)(localPlayer + m_vecViewOffset));
  33.  
  34. DWORD ebone = *(DWORD*)(entity + m_dwBoneMatrix);
  35. if (ebone == 0) continue;
  36.  
  37. if (getbestbone != nullptr)
  38. {
  39. float bestbonedistperplayer = 180.f;
  40. float bestboneperplayer = -1;
  41.  
  42. for (int ii = 0; ii < 4; ii++)
  43. {
  44. vec3 entpos;
  45. for (int a = 0; a < 3; a++) entpos.e[a] = *(float*)(ebone + 0x30 * getBoneByIndex(ii) + 0x10 * a + 0xC);
  46. entpos.e[2] += 1.f;
  47.  
  48. vec3 offs = entpos.subtract(mypos);
  49. vec2 angles = offs.angles();
  50.  
  51. vec2 myangles = *(vec2*)(clientState + m_dwViewAngles);
  52. vec2 recoil(0, 0);
  53. if (norecoilenabled) recoil = *(vec2*)(localPlayer + m_aimPunchAngle);
  54. vec2 angleoffs = myangles.subtract(angles.subtract(recoil.multiply(2.f)).normalizeAng()).normalizeAng();
  55.  
  56. float bonedist = angleoffs.hypot();
  57.  
  58. if (bonedist < bestbonedistperplayer)
  59. {
  60. bestboneperplayer = getBoneByIndex(ii);
  61. bestbonedistperplayer = bonedist;
  62. }
  63. }
  64.  
  65. if (bestboneperplayer == -1) continue;
  66.  
  67. if (bestbonedistperplayer < bestdist)
  68. {
  69. target = entity;
  70. bestdist = bestbonedistperplayer;
  71. bestbone = bestboneperplayer;
  72. }
  73. }
  74. else
  75. {
  76. vec3 entpos;
  77. for (int a = 0; a < 3; a++) entpos.e[a] = *(float*)(ebone + 0x30 * b_head + 0x10 * a + 0xC);
  78. entpos.e[2] += 1.f;
  79.  
  80. vec3 offs = entpos.subtract(mypos);
  81. vec2 angles = offs.angles();
  82.  
  83. vec2 myangles = *(vec2*)(clientState + m_dwViewAngles);
  84. vec2 recoil(0, 0);
  85. if (norecoilenabled) recoil = *(vec2*)(localPlayer + m_aimPunchAngle);
  86. vec2 angleoffs = myangles.subtract(angles.subtract(recoil.multiply(2.f)).normalizeAng()).normalizeAng();
  87.  
  88. float dist = angleoffs.hypot();
  89.  
  90. if (dist < bestdist)
  91. {
  92. target = entity;
  93. bestdist = dist;
  94. }
  95. }
  96.  
  97. if (bestbone == -1) continue;
  98. }
  99. if (target == 0) return false;
  100.  
  101. if (getbestbone != nullptr) *getbestbone = bestbone;
  102. *entity = target;
  103. *distance = bestdist;
  104.  
  105. return true;
  106. }
  107.  
  108. bool aimAtEntity(const DWORD& entity, const int& bone, const bool& norecoil, const float& amount)
  109. {
  110. using namespace settings;
  111. using namespace offsets;
  112. using namespace keys;
  113.  
  114. DWORD clientState = *(DWORD*)(m_dwClientState);
  115. if (clientState == 0) return false;
  116. if (*(int*)(clientState + m_dwInGame) != INGAME) return false;
  117.  
  118. DWORD localPlayer = *(DWORD*)(m_dwLocalPlayer);
  119. if (localPlayer == 0) return false;
  120.  
  121. vec3 myorigin = *(vec3*)(localPlayer + m_vecOrigin);
  122. vec3 mypos = myorigin.add(*(vec3*)(localPlayer + m_vecViewOffset));
  123.  
  124. DWORD ebone = *(DWORD*)(entity + m_dwBoneMatrix);
  125. if (ebone == 0) return false;
  126.  
  127. vec3 entpos;
  128. for (int a = 0; a < 3; a++) entpos.e[a] = *(float*)(ebone + 0x30 * bone + 0x10 * a + 0xC);
  129. entpos.e[2] += 1.f;
  130.  
  131. vec3 offs = entpos.subtract(mypos);
  132. vec2 recoil(0, 0);
  133. if (norecoil) recoil = *(vec2*)(localPlayer + m_aimPunchAngle);
  134. vec2 angles = (offs.angles()).subtract(recoil.multiply(2.f));
  135.  
  136. vec2 startangle = *(vec2*)(clientState + m_dwViewAngles);
  137.  
  138. vec2 angleoffs = (angles.subtract(startangle).normalizeAng()).multiply(amount).normalizeAng();
  139. vec2 finalangle = startangle.add(angleoffs);
  140.  
  141. finalangle.normalizeAng();
  142. *(vec2*)(clientState + m_dwViewAngles) = finalangle;
  143. }
  144.  
  145. DWORD WINAPI walls(PVOID pThreadParameter)
  146. {
  147. using namespace settings;
  148. using namespace offsets;
  149. using namespace keys;
  150.  
  151. Timer t;
  152.  
  153. while (true)
  154. {
  155. if (escape) break;
  156.  
  157. float delta = (float)t.elapsed();
  158. t.reset();
  159.  
  160. if (!wallsenabled)
  161. {
  162. continue;
  163. }
  164.  
  165. DWORD localPlayer = *(DWORD*)(m_dwLocalPlayer);
  166. if (localPlayer == 0) continue;
  167.  
  168. DWORD clientState = *(DWORD*)(m_dwClientState);
  169. if (clientState == 0) continue;
  170. if (*(int*)(clientState + m_dwInGame) != INGAME) continue;
  171.  
  172. DWORD glowBase = *(DWORD*)(m_dwGlowObject);
  173. if (glowBase == 0) continue;
  174.  
  175. int myteam = *(int*)(localPlayer + m_iTeamNum);
  176.  
  177. for (int i = 1; i < maxplayers; i++)
  178. {
  179. DWORD entity = *(DWORD*)(m_dwEntityList + (i - 1) * 0x10);
  180. if (entity == 0) continue;
  181.  
  182. if (entity == localPlayer) continue;
  183. int health = *(int*)(entity + m_iHealth);
  184. if (health <= 0) continue;
  185. int team = *(int*)(entity + m_iTeamNum);
  186. if (team == (myteam)) continue;
  187.  
  188. DWORD glowindex = *(DWORD*)(entity + m_iGlowIndex);
  189.  
  190. vec4 currentColor(1.f, 0.f, 1.f, 1.f);
  191.  
  192. float flashDur = *(float*)(entity + m_flFlashDuration);
  193.  
  194. vec4 healthColor = vec4(1.f, 0.f, 0.f, 1.f).interpolate(vec4(0.f, 1.f, 0.f, 1.f), ((float)health - 20.f) / 80.f);
  195. healthColor.e[3] = 1.f;
  196.  
  197. float alpha = playerFlashDurs[i] / 5.f;
  198.  
  199. currentColor = healthColor.interpolate(vec4(1.f, 1.f, 1.f, 1.f), alpha);
  200. currentColor.e[3] = 1.f;
  201.  
  202. vec4 *color = &((glow_t*)glowBase)[glowindex].color;
  203. for (int i = 0; i < 4; i++) color->e[i] = currentColor.e[i];
  204.  
  205. bool dormant = *(bool*)(entity + m_bDormant);
  206. if (dormant) color->e[3] = 0.f;
  207.  
  208. ((glow_t*)glowBase)[glowindex].m_bRenderWhenOccluded = TRUE;
  209. ((glow_t*)glowBase)[glowindex].m_bFullBloom = FALSE;
  210. ((glow_t*)glowBase)[glowindex].m_bRenderWhenUnoccluded = FALSE;
  211. }
  212. Sleep(15);
  213. }
  214. return TRUE;
  215. }
  216.  
  217.  
  218. DWORD WINAPI aim(PVOID pThreadParameter)
  219. {
  220. using namespace settings;
  221. using namespace offsets;
  222. using namespace keys;
  223.  
  224. long a = 0;
  225. while (true)
  226. {
  227. if (escape) break;
  228.  
  229. DWORD clientState = *(DWORD*)(m_dwClientState);
  230. if (clientState == 0) { Sleep(1); continue; };
  231. if (*(int*)(clientState + m_dwInGame) != INGAME) { Sleep(1); continue; };
  232.  
  233. if (!aimenabled) continue;
  234.  
  235. DWORD target;
  236. float distance;
  237. int bone;
  238.  
  239. bool onetap = getVK(onetapkey);
  240. bool aimkey2pressed = getVK(aimkey2);
  241. bool aimkeypressed = getVK(aimkey);
  242.  
  243. if (!closestToCrossHair(&target, &distance, (ragemode || onetap) ? nullptr : &bone, teamtoggleenabled)) { Sleep(1); continue; };
  244. if (aimkeypressed || aimkey2pressed)
  245. {
  246. if (distance < (ragemode ? 20.f : aimrange)) aimAtEntity(target, (ragemode || onetap) ? b_head : bone, norecoilenabled && !onetap, (ragemode || onetap) ? 1.f : aimpercent);
  247. aimTargeted = true;
  248. }
  249. else aimTargeted = false;
  250.  
  251. if (onetap && (aimkeypressed || aimkey2pressed)) Sleep(200);
  252. else Sleep(1);
  253. }
  254. return TRUE;
  255. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement