Exemple #1
0
void draw()
{
    if (!enabled || CE_BAD(LOCAL_E) || !LOCAL_E->m_bAlivePlayer())
        return;
    // Loop all players
    for (int i = 1; i < (*buildings ? MAX_ENTITIES : g_IEngine->GetMaxClients()); i++)
    {
        // Get and check player
        auto ent = ENTITY(i);
        if (CE_BAD(ent) || !ent->m_bAlivePlayer())
            continue;
        if (*buildings)
            if (ent->m_Type() != ENTITY_PLAYER && ent->m_Type() != ENTITY_BUILDING)
                continue;
        if (ent == LOCAL_E)
            continue;
        auto color = getColor(ent);
        if (!color)
            continue;

        Vector out;
        if (!draw::WorldToScreen(ent->m_vecOrigin(), out))
        {
            // We need to flip on both x and y axis in case m_vecOrigin its not actually on screen
            out.x = draw::width - out.x;
            out.y = draw::height - out.y;

            auto extended = toBorder(draw::width / 2, draw::height / 2, out.x, out.y, 0, 0, draw::width, draw::height);
            out.x         = extended.x;
            out.y         = extended.y;
        }
        draw::Line(draw::width / 2, draw::height / 2, out.x - draw::width / 2, out.y - draw::height / 2, *color, 2);
    }
}
void AimLegit::GetBestTarget()
{
	float maxDistance = 8192.f;
	float nearest;
	int index = -1;

	float fov = g_Options.legit_fov;

	int firedShots = g_LocalPlayer->m_iShotsFired();

	for (int i = 1; i < g_GlobalVars->maxClients; i++)
	{
		auto player = C_BasePlayer::GetPlayerByIndex(i);

		if (!CheckTarget(player))
			continue;

		QAngle viewangles = usercmd->viewangles;

		Vector targetpos;

		if (firedShots > g_Options.legit_aftershots)
			targetpos = player->GetBonePos(realAimSpot[g_Options.legit_afteraim]);
		else if (firedShots < g_Options.legit_aftershots)
			targetpos = player->GetBonePos(realAimSpot[g_Options.legit_preaim]);

		nearest = Math::GetFov(viewangles, Math::CalcAngle(g_LocalPlayer->GetEyePos(), targetpos));

		if (nearest > fov)
			continue;

		float distance = Math::GetDistance(g_LocalPlayer->m_vecOrigin(), player->m_vecOrigin());

		if (fabsf(fov - nearest) < 5)
		{
			if (distance < maxDistance)
			{
				fov = nearest;
				maxDistance = distance;
				index = i;
			}
		}
		else if (nearest < fov)
		{
			fov = nearest;
			maxDistance = distance;
			index = i;
		}
	}
	SetTarget(index);
}
void lagcompensation::fsn(ClientFrameStage_t stage) {
	for (int i = 1; i <= g_csgo.m_globals()->m_maxclients; i++) {
		auto e = static_cast<player_t *>(g_csgo.m_entitylist()->GetClientEntity(i));
		auto & player = players[i];

		player.m_e = e;

		if (!continue_loop(i, e, stage))
			continue;

		switch (stage) {
		case FRAME_NET_UPDATE_POSTDATAUPDATE_START:
			e->set_abs_origin(e->m_vecOrigin());

			player.m_resolver->m_e = e;
			player.m_resolver->run();

			break;
		case FRAME_NET_UPDATE_POSTDATAUPDATE_END:
			e->update_clientside_animation();

			player.log();

			break;
		case FRAME_NET_UPDATE_END:
			apply_interpolation_flags(e, disable_interpolation);

			break;
		case FRAME_RENDER_START:
			*(int*)((uintptr_t)e + 0xA30) = g_csgo.m_globals()->m_framecount;
			*(int*)((uintptr_t)e + 0xA28) = 0;
			if (g_cfg.ragebot.enable)

				break;
		}
	}
}