Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool closestToCrossHair(DWORD* entity, float* distance, int* getbestbone, bool invertteam)
- {
- using namespace settings;
- using namespace offsets;
- using namespace keys;
- DWORD localPlayer = *(DWORD*)(m_dwLocalPlayer);
- if (localPlayer == 0) return false;
- int myteam = *(int*)(localPlayer + m_iTeamNum);
- DWORD clientState = *(DWORD*)(m_dwClientState);
- if (*(int*)(clientState + m_dwInGame) != INGAME) return false;
- float bestdist = 10000.f;
- DWORD target = 0;
- int bestbone = -1;
- for (int i = 0; i < 64; i++)
- {
- DWORD entity = *(DWORD*)(m_dwEntityList + (i - 1) * 0x10);
- if (entity == 0) continue;
- bool dormant = *(bool*)(entity + m_bDormant);
- if (dormant) continue;
- if (entity == localPlayer) continue;
- int health = *(int*)(entity + m_iHealth);
- if (health <= 0) continue;
- int team = *(int*)(entity + m_iTeamNum);
- if (team == (myteam ^ invertteam)) continue;
- vec3 myorigin = *(vec3*)(localPlayer + m_vecOrigin);
- vec3 mypos = myorigin.add(*(vec3*)(localPlayer + m_vecViewOffset));
- DWORD ebone = *(DWORD*)(entity + m_dwBoneMatrix);
- if (ebone == 0) continue;
- if (getbestbone != nullptr)
- {
- float bestbonedistperplayer = 180.f;
- float bestboneperplayer = -1;
- for (int ii = 0; ii < 4; ii++)
- {
- vec3 entpos;
- for (int a = 0; a < 3; a++) entpos.e[a] = *(float*)(ebone + 0x30 * getBoneByIndex(ii) + 0x10 * a + 0xC);
- entpos.e[2] += 1.f;
- vec3 offs = entpos.subtract(mypos);
- vec2 angles = offs.angles();
- vec2 myangles = *(vec2*)(clientState + m_dwViewAngles);
- vec2 recoil(0, 0);
- if (norecoilenabled) recoil = *(vec2*)(localPlayer + m_aimPunchAngle);
- vec2 angleoffs = myangles.subtract(angles.subtract(recoil.multiply(2.f)).normalizeAng()).normalizeAng();
- float bonedist = angleoffs.hypot();
- if (bonedist < bestbonedistperplayer)
- {
- bestboneperplayer = getBoneByIndex(ii);
- bestbonedistperplayer = bonedist;
- }
- }
- if (bestboneperplayer == -1) continue;
- if (bestbonedistperplayer < bestdist)
- {
- target = entity;
- bestdist = bestbonedistperplayer;
- bestbone = bestboneperplayer;
- }
- }
- else
- {
- vec3 entpos;
- for (int a = 0; a < 3; a++) entpos.e[a] = *(float*)(ebone + 0x30 * b_head + 0x10 * a + 0xC);
- entpos.e[2] += 1.f;
- vec3 offs = entpos.subtract(mypos);
- vec2 angles = offs.angles();
- vec2 myangles = *(vec2*)(clientState + m_dwViewAngles);
- vec2 recoil(0, 0);
- if (norecoilenabled) recoil = *(vec2*)(localPlayer + m_aimPunchAngle);
- vec2 angleoffs = myangles.subtract(angles.subtract(recoil.multiply(2.f)).normalizeAng()).normalizeAng();
- float dist = angleoffs.hypot();
- if (dist < bestdist)
- {
- target = entity;
- bestdist = dist;
- }
- }
- if (bestbone == -1) continue;
- }
- if (target == 0) return false;
- if (getbestbone != nullptr) *getbestbone = bestbone;
- *entity = target;
- *distance = bestdist;
- return true;
- }
- bool aimAtEntity(const DWORD& entity, const int& bone, const bool& norecoil, const float& amount)
- {
- using namespace settings;
- using namespace offsets;
- using namespace keys;
- DWORD clientState = *(DWORD*)(m_dwClientState);
- if (clientState == 0) return false;
- if (*(int*)(clientState + m_dwInGame) != INGAME) return false;
- DWORD localPlayer = *(DWORD*)(m_dwLocalPlayer);
- if (localPlayer == 0) return false;
- vec3 myorigin = *(vec3*)(localPlayer + m_vecOrigin);
- vec3 mypos = myorigin.add(*(vec3*)(localPlayer + m_vecViewOffset));
- DWORD ebone = *(DWORD*)(entity + m_dwBoneMatrix);
- if (ebone == 0) return false;
- vec3 entpos;
- for (int a = 0; a < 3; a++) entpos.e[a] = *(float*)(ebone + 0x30 * bone + 0x10 * a + 0xC);
- entpos.e[2] += 1.f;
- vec3 offs = entpos.subtract(mypos);
- vec2 recoil(0, 0);
- if (norecoil) recoil = *(vec2*)(localPlayer + m_aimPunchAngle);
- vec2 angles = (offs.angles()).subtract(recoil.multiply(2.f));
- vec2 startangle = *(vec2*)(clientState + m_dwViewAngles);
- vec2 angleoffs = (angles.subtract(startangle).normalizeAng()).multiply(amount).normalizeAng();
- vec2 finalangle = startangle.add(angleoffs);
- finalangle.normalizeAng();
- *(vec2*)(clientState + m_dwViewAngles) = finalangle;
- }
- DWORD WINAPI walls(PVOID pThreadParameter)
- {
- using namespace settings;
- using namespace offsets;
- using namespace keys;
- Timer t;
- while (true)
- {
- if (escape) break;
- float delta = (float)t.elapsed();
- t.reset();
- if (!wallsenabled)
- {
- continue;
- }
- DWORD localPlayer = *(DWORD*)(m_dwLocalPlayer);
- if (localPlayer == 0) continue;
- DWORD clientState = *(DWORD*)(m_dwClientState);
- if (clientState == 0) continue;
- if (*(int*)(clientState + m_dwInGame) != INGAME) continue;
- DWORD glowBase = *(DWORD*)(m_dwGlowObject);
- if (glowBase == 0) continue;
- int myteam = *(int*)(localPlayer + m_iTeamNum);
- for (int i = 1; i < maxplayers; i++)
- {
- DWORD entity = *(DWORD*)(m_dwEntityList + (i - 1) * 0x10);
- if (entity == 0) continue;
- if (entity == localPlayer) continue;
- int health = *(int*)(entity + m_iHealth);
- if (health <= 0) continue;
- int team = *(int*)(entity + m_iTeamNum);
- if (team == (myteam)) continue;
- DWORD glowindex = *(DWORD*)(entity + m_iGlowIndex);
- vec4 currentColor(1.f, 0.f, 1.f, 1.f);
- float flashDur = *(float*)(entity + m_flFlashDuration);
- 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);
- healthColor.e[3] = 1.f;
- float alpha = playerFlashDurs[i] / 5.f;
- currentColor = healthColor.interpolate(vec4(1.f, 1.f, 1.f, 1.f), alpha);
- currentColor.e[3] = 1.f;
- vec4 *color = &((glow_t*)glowBase)[glowindex].color;
- for (int i = 0; i < 4; i++) color->e[i] = currentColor.e[i];
- bool dormant = *(bool*)(entity + m_bDormant);
- if (dormant) color->e[3] = 0.f;
- ((glow_t*)glowBase)[glowindex].m_bRenderWhenOccluded = TRUE;
- ((glow_t*)glowBase)[glowindex].m_bFullBloom = FALSE;
- ((glow_t*)glowBase)[glowindex].m_bRenderWhenUnoccluded = FALSE;
- }
- Sleep(15);
- }
- return TRUE;
- }
- DWORD WINAPI aim(PVOID pThreadParameter)
- {
- using namespace settings;
- using namespace offsets;
- using namespace keys;
- long a = 0;
- while (true)
- {
- if (escape) break;
- DWORD clientState = *(DWORD*)(m_dwClientState);
- if (clientState == 0) { Sleep(1); continue; };
- if (*(int*)(clientState + m_dwInGame) != INGAME) { Sleep(1); continue; };
- if (!aimenabled) continue;
- DWORD target;
- float distance;
- int bone;
- bool onetap = getVK(onetapkey);
- bool aimkey2pressed = getVK(aimkey2);
- bool aimkeypressed = getVK(aimkey);
- if (!closestToCrossHair(&target, &distance, (ragemode || onetap) ? nullptr : &bone, teamtoggleenabled)) { Sleep(1); continue; };
- if (aimkeypressed || aimkey2pressed)
- {
- if (distance < (ragemode ? 20.f : aimrange)) aimAtEntity(target, (ragemode || onetap) ? b_head : bone, norecoilenabled && !onetap, (ragemode || onetap) ? 1.f : aimpercent);
- aimTargeted = true;
- }
- else aimTargeted = false;
- if (onetap && (aimkeypressed || aimkey2pressed)) Sleep(200);
- else Sleep(1);
- }
- return TRUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement