Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Aimbot() {
- while (!GetAsyncKeyState(panickey)) {
- // If aimbot is enabled and aimkey is pressed
- if ((aimbotenabled) && (GetAsyncKeyState(aimkey))) {
- // Resets best angle and best target
- double bestangle = std::numeric_limits<double>::infinity();
- int besttarget = NULL;
- aimbotting = true;
- // For every entity
- for (int i = 0; i < 32; i++) {
- // Read entity data
- players[i].dwBase = mem.Read<DWORD>(modClient.dwBase + offEntityList + i * 0x10);
- ReadData(&players[i]);
- GetBonePosition(&players[i], targetbone);
- // Read own data
- me.dwBase = mem.Read<DWORD>(modClient.dwBase + offLocalPlayer);
- ReadData(&me);
- // If player is alive, is not on our team and is spotted by us (if smoothscale is not 1) then continue
- if ((players[i].health > 0) && (me.team != players[i].team) && (SpottedByMe(&players[i]) | (smoothscale == 1))) {
- players[i].aimangle = CalcAngle(me.position, players[i].bone);
- float angledifferencex = me.currentangle.x - players[i].aimangle.x;
- float angledifferencey = me.currentangle.y - players[i].aimangle.y;
- if (angledifferencey > 180) { angledifferencey -= 360; }
- if (angledifferencey < -180) { angledifferencey += 360; }
- // totally worth 4 months of going back to school to learn that triangles have sides
- double angledifference = sqrt((angledifferencex * angledifferencex) + (angledifferencey * angledifferencey));
- // fix for locking on to random areas that aren't a target in rage mode due to me using 999999 fov in rage mode because i'm too lazy to find out the right calc for it
- if ((angledifference < bestangle) && (angledifference < fovscale)) {
- bestangle = angledifference;
- besttarget = i;
- }
- }
- }
- //no killing dead people
- if ((besttarget != NULL) && (me.health > 0)) {
- //no recoil scam
- me.punch.x *= rcsscalex;
- me.punch.y *= rcsscaley;
- //a5 said i need to use a vector in here
- Vector modifier = me.punch;
- players[besttarget].aimangle.x -= modifier.x;
- players[besttarget].aimangle.y -= modifier.y;
- players[besttarget].aimangle = NormalizeAngle(players[besttarget].aimangle); //no rotating the screen to get better rcs anymore :(
- SetAngleSmooth(players[besttarget].aimangle, smoothscale);
- // Update besttarget's data
- players[besttarget].dwBase = mem.Read<DWORD>(modClient.dwBase + offEntityList + besttarget * 0x10);
- ReadData(&players[besttarget]);
- // If besttarget dies from aimbot or goes out of vision (if smoothscale not 1) wait untill aimkey is resent to find another target if sticky is enabled
- while ((((players[besttarget].health > 0) != true) | ((smoothscale > 1) && (!SpottedByMe(&players[besttarget])) | ((smoothscale == 1) && (players[besttarget].health > 0) != true))) && (GetAsyncKeyState(aimkey)) && (stickyenabled == 1)) {
- Sleep(10);
- }
- }
- //vac protection
- aimbotting = false;
- std::this_thread::sleep_for(std::chrono::milliseconds(1));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement