Исходник Imgui spectators and keybinds

контора пидорасов
Забаненный
Статус
Оффлайн
Регистрация
1 Июл 2021
Сообщения
191
Реакции[?]
42
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1636916877521.png
Я ДИЗАЙНИРР!!!!
C++:
void misc::keybinds()
{

    if (!g_cfg.menu.keybinds)
        return;
    int specs = 0;
    int modes = 0;
    std::string spect = "";
    std::string mode = "";

    if (key_binds::get().get_key_bind_state(16)) {
        spect += "inverter";
        spect += "\n";
        specs++;

        switch (g_cfg.antiaim.flip_desync.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(18)) {
        spect += "auto peek";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.automatic_peek.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(20)) {
        spect += "fakeduck";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.fakeduck_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(21)) {
        spect += "slowwalk";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.slowwalk_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (misc::get().double_tap_key) {
        spect += "doubletap";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.double_tap_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(17)) {
        spect += "thirdperson";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.thirdperson_toggle.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(4 + hooks::rage_weapon)) {
        spect += "damage override";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.weapon[hooks::rage_weapon].damage_override_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(3)) {
        spect += "safepoint";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.safe_point_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(0)) {
        spect += "autofire";
        spect += "\n";
        specs++;

        switch (g_cfg.legitbot.autofire_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }

    if (key_binds::get().get_key_bind_state(1)) {
        spect += "legit aim";
        spect += "\n";
        specs++;

        switch (g_cfg.legitbot.key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(19)) {
        spect += "edge jump";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.edge_jump.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(13) || key_binds::get().get_key_bind_state(14) || key_binds::get().get_key_bind_state(15)) {
        spect += "manual yaw";
        spect += "\n";
        specs++;


        mode += "[toggle]";

        mode += "\n";
        modes++;
    }
    if (misc::get().hide_shots_key) {
        spect += "hide shots";
        spect += "\n";
        specs++;

        switch (g_cfg.antiaim.hide_shots_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(22)) {
        spect += "body aim";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.body_aim_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }

    ImVec2 Pos;
    ImVec2 size_menu;

    static bool window_set = false;
    float speed = 10;
    static bool finish = false;
    static bool other_bind_pressed = false;
    static int sub_tabs = false;
    if (key_binds::get().get_key_bind_state(4 + hooks::rage_weapon) || key_binds::get().get_key_bind_state(16) || key_binds::get().get_key_bind_state(18) || key_binds::get().get_key_bind_state(20)
        || key_binds::get().get_key_bind_state(21) || key_binds::get().get_key_bind_state(17) || key_binds::get().get_key_bind_state(22) || key_binds::get().get_key_bind_state(13) || key_binds::get().get_key_bind_state(14) || key_binds::get().get_key_bind_state(15)
        || misc::get().double_tap_key || misc::get().hide_shots_key || key_binds::get().get_key_bind_state(0) || key_binds::get().get_key_bind_state(3) || key_binds::get().get_key_bind_state(23))
        other_bind_pressed = true;
    else
        other_bind_pressed = false;


    if (g_cfg.menu.windowsize_x_saved != g_cfg.menu.oldwindowsize_x_saved)
    {
        if (g_cfg.menu.windowsize_x_saved > g_cfg.menu.oldwindowsize_x_saved)
        {
            g_cfg.menu.windowsize_x_saved -= g_cfg.menu.speed;
        }
        if (g_cfg.menu.windowsize_x_saved < g_cfg.menu.oldwindowsize_x_saved)
        {
            g_cfg.menu.windowsize_x_saved += g_cfg.menu.speed;
        }
    }
    if (g_cfg.menu.windowsize_y_saved != g_cfg.menu.oldwindowsize_y_saved)
    {
        if (g_cfg.menu.windowsize_y_saved > g_cfg.menu.oldwindowsize_y_saved)
        {
            g_cfg.menu.windowsize_y_saved -= g_cfg.menu.speed;
        }
        if (g_cfg.menu.windowsize_y_saved < g_cfg.menu.oldwindowsize_y_saved)
        {
            g_cfg.menu.windowsize_y_saved += g_cfg.menu.speed;
        }
    }
    if (g_cfg.menu.windowsize_x_saved == g_cfg.menu.oldwindowsize_x_saved && g_cfg.menu.windowsize_y_saved == g_cfg.menu.oldwindowsize_y_saved)
    {
        finish = true;
    }
    else
    {
        finish = false;
    }

    if (!g_cfg.antiaim.flip_desync.key || !g_cfg.misc.automatic_peek.key || !g_cfg.misc.fakeduck_key.key || !g_cfg.misc.slowwalk_key.key || !g_cfg.ragebot.double_tap_key.key || !g_cfg.misc.fakeduck_key.key || !g_cfg.misc.thirdperson_toggle.key || !hooks::menu_open)
    {

        g_cfg.menu.windowsize_x_saved = 0;

        g_cfg.menu.windowsize_y_saved = 0;

    }

    static float alpha_menu = 1.0f;

    ImGuiStyle* Style = &ImGui::GetStyle();
    Style->FramePadding = ImVec2(1, 1);
    Style->WindowRounding = 0;
    Style->FrameRounding = 0;
    if ((g_cfg.menu.keybinds)) {
        if ((other_bind_pressed && alpha_menu > 0.1f) || hooks::menu_open) {
            ImGui::PushStyleVar(ImGuiStyleVar_Alpha, alpha_menu);
            if (ImGui::Begin("Keybinds", NULL, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
            {
                auto b_alpha = alpha_menu;
                size_menu = ImGui::GetWindowSize();
                Pos = ImGui::GetWindowPos();
                auto Render = ImGui::GetWindowDrawList();
            //    PostProcessing::performFullscreenBlur(Render, 1.f);
                Render->AddRectFilled({ Pos.x + 0, Pos.y + 0 }, { Pos.x + 220, Pos.y + 23 }, ImColor(15, 15, 6, (int)(b_alpha * 155)));
          
  
                ImGui::PushFont(c_menu::get().gotham);
                Render->AddText({ Pos.x + 0 + 2, Pos.y + 8 }, ImColor(255, 255, 255, (int)(alpha_menu * 255)), "keybinds");

                if (other_bind_pressed)
                    Render->AddRectFilled({ Pos.x + 0, Pos.y + 23 }, { Pos.x + 200, Pos.y + ImGui::GetWindowSize().y - 10 }, ImColor(255, 255, 255, (int)(b_alpha * 50)), 6);

          
                if (specs > 0) spect += "\n";
                if (modes > 0) mode += "\n";
                ImVec2 size = ImGui::CalcTextSize(spect.c_str());
                ImVec2 size2 = ImGui::CalcTextSize(mode.c_str());
                ImGui::SetWindowSize(ImVec2(200, 23 + size.y));
                ImGui::SetCursorPosY(24);
                ImGui::Columns(2, "fart1", false);


                ImGui::SetColumnWidth(0, 190 - (size2.x + 8));
                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), spect.c_str());
                ImGui::NextColumn();

                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), mode.c_str());
                ImGui::Columns(1);
                ImGui::Separator();

                ImGui::PopFont();
            }
            ImGui::End();
            ImGui::PopStyleVar();
            //    }
        }
    }
}


void misc::spectators_list()
{
    if (!g_cfg.misc.spectators_list)
        return;


    std::vector <std::string> spectators;


    int specs = 0;
    int modes = 0;
    std::string spect = "";
    std::string mode = "";
    ImVec2 Pos;
    ImVec2 size_menu;

    static bool window_set = false;
    static float windowsize_x = 0;
    static float windowsize_y = 0;
    static float oldwindowsize_x = 300;
    static float oldwindowsize_y = 300;
    static float speed = 10;
    static bool finish = false;
    static int sub_tabs = false;
    static float alpha_menu = 1.f;


    if (windowsize_x != oldwindowsize_x)
    {
        if (windowsize_x > oldwindowsize_x)
        {
            windowsize_x -= speed;
        }
        if (windowsize_x < oldwindowsize_x)
        {
            windowsize_x += speed;
        }
    }
    if (windowsize_y != oldwindowsize_y)
    {
        if (windowsize_y > oldwindowsize_y)
        {
            windowsize_y -= speed;
        }
        if (windowsize_y < oldwindowsize_y)
        {
            windowsize_y += speed;
        }
    }
    if (windowsize_x == oldwindowsize_x && windowsize_y == oldwindowsize_y)
    {
        finish = true;
    }
    else
    {
        finish = false;
    }
    for (int i = 1; i < m_globals()->m_maxclients; i++)
    {
        auto e = static_cast<player_t*>(m_entitylist()->GetClientEntity(i));

        if (!e)
            continue;

        if (e->is_alive())
            continue;

        if (e->IsDormant())
            continue;

        if (e->m_hObserverTarget().Get() != g_ctx.local())
            continue;

        player_info_t player_info;
        m_engine()->GetPlayerInfo(i, &player_info);
        spect += player_info.szName;
        spect += "\n";
        specs++;
    }
    ImGuiStyle* Style = &ImGui::GetStyle();
    Style->FramePadding = ImVec2(1, 1);

    if ((g_cfg.misc.spectators_list)) {
        if ((spect.size() > 0 && alpha_menu > 0.1f) || hooks::menu_open) {
            ImGui::PushStyleVar(ImGuiStyleVar_Alpha, alpha_menu);
            if (ImGui::Begin("Spectator list", NULL, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
            {
                auto b_alpha = alpha_menu;
                size_menu = ImGui::GetWindowSize();
                Pos = ImGui::GetWindowPos();
                auto Render = ImGui::GetWindowDrawList();
                Render->AddRectFilled({ Pos.x + 0, Pos.y + 0 }, { Pos.x + 220, Pos.y + 23 }, ImColor(15, 15, 6, (int)(b_alpha * 155)));
                ImGui::PushFont(c_menu::get().gotham);
                Render->AddText({ Pos.x + 0 + 2, Pos.y + 8 }, ImColor(255, 255, 255, (int)(alpha_menu * 255)), "spectators");
                if (spect.size() > 0)
                    Render->AddRectFilled({ Pos.x + 0, Pos.y + 23 }, { Pos.x + 200, Pos.y + ImGui::GetWindowSize().y - 9 }, ImColor(255, 255, 255, (int)(b_alpha * 50)), 6);
                if (specs > 0) spect += "\n";
                if (modes > 0) mode += "\n";
                ImVec2 size = ImGui::CalcTextSize(spect.c_str());
                ImVec2 size2 = ImGui::CalcTextSize(mode.c_str());
                ImGui::SetWindowSize(ImVec2(200, 23 + size.y));
                ImGui::SetCursorPosY(25);
                ImGui::Columns(2, "fart1", false);


                ImGui::SetColumnWidth(0, 190 - (size2.x + 8));
                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), spect.c_str());
                ImGui::NextColumn();

                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), mode.c_str());
                ImGui::Columns(1);
                ImGui::Separator();
                ImGui::PopFont();
            }
            ImGui::End();
            ImGui::PopStyleVar();
            //    }
        }
    }
}
 
Последнее редактирование:
kill me
Забаненный
Статус
Оффлайн
Регистрация
18 Дек 2018
Сообщения
365
Реакции[?]
70
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
убери закругление))) будет лучше
 
Начинающий
Статус
Оффлайн
Регистрация
26 Сен 2019
Сообщения
35
Реакции[?]
15
Поинты[?]
1K
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,796
Реакции[?]
586
Поинты[?]
2K
if (key_binds::get().get_key_bind_state(16)) { spect += "inverter"; spect += "\n"; specs++; switch (g_cfg.antiaim.flip_desync.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (key_binds::get().get_key_bind_state(18)) { spect += "auto peek"; spect += "\n"; specs++; switch (g_cfg.misc.automatic_peek.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (key_binds::get().get_key_bind_state(20)) { spect += "fakeduck"; spect += "\n"; specs++; switch (g_cfg.misc.fakeduck_key.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (key_binds::get().get_key_bind_state(21)) { spect += "slowwalk"; spect += "\n"; specs++; switch (g_cfg.misc.slowwalk_key.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (misc::get().double_tap_key) { spect += "doubletap"; spect += "\n"; specs++; switch (g_cfg.ragebot.double_tap_key.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (key_binds::get().get_key_bind_state(17)) { spect += "thirdperson"; spect += "\n"; specs++; switch (g_cfg.misc.thirdperson_toggle.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (key_binds::get().get_key_bind_state(4 + hooks::rage_weapon)) { spect += "damage override"; spect += "\n"; specs++; switch (g_cfg.ragebot.weapon[hooks::rage_weapon].damage_override_key.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (key_binds::get().get_key_bind_state(3)) { spect += "safepoint"; spect += "\n"; specs++; switch (g_cfg.ragebot.safe_point_key.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (key_binds::get().get_key_bind_state(0)) { spect += "autofire"; spect += "\n"; specs++; switch (g_cfg.legitbot.autofire_key.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (key_binds::get().get_key_bind_state(1)) { spect += "legit aim"; spect += "\n"; specs++; switch (g_cfg.legitbot.key.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; } if (key_binds::get().get_key_bind_state(19)) { spect += "edge jump"; spect += "\n"; specs++; switch (g_cfg.misc.edge_jump.mode) { case 0: { mode += "[holding] "; }break; case 1: { mode += "[toggled] "; }break; } mode += "\n"; modes++; }
Не особо шарю, но думаю это говно код ебейший ведь можно сделать цикл или типо того))
 
Эксперт
Статус
Оффлайн
Регистрация
13 Сен 2020
Сообщения
1,415
Реакции[?]
713
Поинты[?]
10K
Посмотреть вложение 180419
C++:
void misc::keybinds()
{

    if (!g_cfg.menu.keybinds)
        return;
    int specs = 0;
    int modes = 0;
    std::string spect = "";
    std::string mode = "";

    if (key_binds::get().get_key_bind_state(16)) {
        spect += "inverter";
        spect += "\n";
        specs++;

        switch (g_cfg.antiaim.flip_desync.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(18)) {
        spect += "auto peek";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.automatic_peek.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(20)) {
        spect += "fakeduck";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.fakeduck_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(21)) {
        spect += "slowwalk";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.slowwalk_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (misc::get().double_tap_key) {
        spect += "doubletap";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.double_tap_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(17)) {
        spect += "thirdperson";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.thirdperson_toggle.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(4 + hooks::rage_weapon)) {
        spect += "damage override";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.weapon[hooks::rage_weapon].damage_override_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(3)) {
        spect += "safepoint";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.safe_point_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(0)) {
        spect += "autofire";
        spect += "\n";
        specs++;

        switch (g_cfg.legitbot.autofire_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }

    if (key_binds::get().get_key_bind_state(1)) {
        spect += "legit aim";
        spect += "\n";
        specs++;

        switch (g_cfg.legitbot.key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(19)) {
        spect += "edge jump";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.edge_jump.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(13) || key_binds::get().get_key_bind_state(14) || key_binds::get().get_key_bind_state(15)) {
        spect += "manual yaw";
        spect += "\n";
        specs++;


        mode += "[toggle]";

        mode += "\n";
        modes++;
    }
    if (misc::get().hide_shots_key) {
        spect += "hide shots";
        spect += "\n";
        specs++;

        switch (g_cfg.antiaim.hide_shots_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(22)) {
        spect += "body aim";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.body_aim_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }

    ImVec2 Pos;
    ImVec2 size_menu;

    static bool window_set = false;
    float speed = 10;
    static bool finish = false;
    static bool other_bind_pressed = false;
    static int sub_tabs = false;
    if (key_binds::get().get_key_bind_state(4 + hooks::rage_weapon) || key_binds::get().get_key_bind_state(16) || key_binds::get().get_key_bind_state(18) || key_binds::get().get_key_bind_state(20)
        || key_binds::get().get_key_bind_state(21) || key_binds::get().get_key_bind_state(17) || key_binds::get().get_key_bind_state(22) || key_binds::get().get_key_bind_state(13) || key_binds::get().get_key_bind_state(14) || key_binds::get().get_key_bind_state(15)
        || misc::get().double_tap_key || misc::get().hide_shots_key || key_binds::get().get_key_bind_state(0) || key_binds::get().get_key_bind_state(3) || key_binds::get().get_key_bind_state(23))
        other_bind_pressed = true;
    else
        other_bind_pressed = false;


    if (g_cfg.menu.windowsize_x_saved != g_cfg.menu.oldwindowsize_x_saved)
    {
        if (g_cfg.menu.windowsize_x_saved > g_cfg.menu.oldwindowsize_x_saved)
        {
            g_cfg.menu.windowsize_x_saved -= g_cfg.menu.speed;
        }
        if (g_cfg.menu.windowsize_x_saved < g_cfg.menu.oldwindowsize_x_saved)
        {
            g_cfg.menu.windowsize_x_saved += g_cfg.menu.speed;
        }
    }
    if (g_cfg.menu.windowsize_y_saved != g_cfg.menu.oldwindowsize_y_saved)
    {
        if (g_cfg.menu.windowsize_y_saved > g_cfg.menu.oldwindowsize_y_saved)
        {
            g_cfg.menu.windowsize_y_saved -= g_cfg.menu.speed;
        }
        if (g_cfg.menu.windowsize_y_saved < g_cfg.menu.oldwindowsize_y_saved)
        {
            g_cfg.menu.windowsize_y_saved += g_cfg.menu.speed;
        }
    }
    if (g_cfg.menu.windowsize_x_saved == g_cfg.menu.oldwindowsize_x_saved && g_cfg.menu.windowsize_y_saved == g_cfg.menu.oldwindowsize_y_saved)
    {
        finish = true;
    }
    else
    {
        finish = false;
    }

    if (!g_cfg.antiaim.flip_desync.key || !g_cfg.misc.automatic_peek.key || !g_cfg.misc.fakeduck_key.key || !g_cfg.misc.slowwalk_key.key || !g_cfg.ragebot.double_tap_key.key || !g_cfg.misc.fakeduck_key.key || !g_cfg.misc.thirdperson_toggle.key || !hooks::menu_open)
    {

        g_cfg.menu.windowsize_x_saved = 0;

        g_cfg.menu.windowsize_y_saved = 0;

    }

    static float alpha_menu = 1.0f;

    ImGuiStyle* Style = &ImGui::GetStyle();
    Style->FramePadding = ImVec2(1, 1);
    Style->WindowRounding = 0;
    Style->FrameRounding = 0;
    if ((g_cfg.menu.keybinds)) {
        if ((other_bind_pressed && alpha_menu > 0.1f) || hooks::menu_open) {
            ImGui::PushStyleVar(ImGuiStyleVar_Alpha, alpha_menu);
            if (ImGui::Begin("Keybinds", NULL, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
            {
                auto b_alpha = alpha_menu;
                size_menu = ImGui::GetWindowSize();
                Pos = ImGui::GetWindowPos();
                auto Render = ImGui::GetWindowDrawList();
            //    PostProcessing::performFullscreenBlur(Render, 1.f);
                Render->AddRectFilled({ Pos.x + 0, Pos.y + 0 }, { Pos.x + 220, Pos.y + 23 }, ImColor(15, 15, 6, (int)(b_alpha * 155)));
          
  
                ImGui::PushFont(c_menu::get().gotham);
                Render->AddText({ Pos.x + 0 + 2, Pos.y + 8 }, ImColor(255, 255, 255, (int)(alpha_menu * 255)), "keybinds");

                if (other_bind_pressed)
                    Render->AddRectFilled({ Pos.x + 0, Pos.y + 23 }, { Pos.x + 200, Pos.y + ImGui::GetWindowSize().y - 10 }, ImColor(255, 255, 255, (int)(b_alpha * 50)), 6);

          
                if (specs > 0) spect += "\n";
                if (modes > 0) mode += "\n";
                ImVec2 size = ImGui::CalcTextSize(spect.c_str());
                ImVec2 size2 = ImGui::CalcTextSize(mode.c_str());
                ImGui::SetWindowSize(ImVec2(200, 23 + size.y));
                ImGui::SetCursorPosY(24);
                ImGui::Columns(2, "fart1", false);


                ImGui::SetColumnWidth(0, 190 - (size2.x + 8));
                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), spect.c_str());
                ImGui::NextColumn();

                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), mode.c_str());
                ImGui::Columns(1);
                ImGui::Separator();

                ImGui::PopFont();
            }
            ImGui::End();
            ImGui::PopStyleVar();
            //    }
        }
    }
}


void misc::spectators_list()
{
    if (!g_cfg.misc.spectators_list)
        return;


    std::vector <std::string> spectators;


    int specs = 0;
    int modes = 0;
    std::string spect = "";
    std::string mode = "";
    ImVec2 Pos;
    ImVec2 size_menu;

    static bool window_set = false;
    static float windowsize_x = 0;
    static float windowsize_y = 0;
    static float oldwindowsize_x = 300;
    static float oldwindowsize_y = 300;
    static float speed = 10;
    static bool finish = false;
    static int sub_tabs = false;
    static float alpha_menu = 1.f;


    if (windowsize_x != oldwindowsize_x)
    {
        if (windowsize_x > oldwindowsize_x)
        {
            windowsize_x -= speed;
        }
        if (windowsize_x < oldwindowsize_x)
        {
            windowsize_x += speed;
        }
    }
    if (windowsize_y != oldwindowsize_y)
    {
        if (windowsize_y > oldwindowsize_y)
        {
            windowsize_y -= speed;
        }
        if (windowsize_y < oldwindowsize_y)
        {
            windowsize_y += speed;
        }
    }
    if (windowsize_x == oldwindowsize_x && windowsize_y == oldwindowsize_y)
    {
        finish = true;
    }
    else
    {
        finish = false;
    }
    for (int i = 1; i < m_globals()->m_maxclients; i++)
    {
        auto e = static_cast<player_t*>(m_entitylist()->GetClientEntity(i));

        if (!e)
            continue;

        if (e->is_alive())
            continue;

        if (e->IsDormant())
            continue;

        if (e->m_hObserverTarget().Get() != g_ctx.local())
            continue;

        player_info_t player_info;
        m_engine()->GetPlayerInfo(i, &player_info);
        spect += player_info.szName;
        spect += "\n";
        specs++;
    }
    ImGuiStyle* Style = &ImGui::GetStyle();
    Style->FramePadding = ImVec2(1, 1);

    if ((g_cfg.misc.spectators_list)) {
        if ((spect.size() > 0 && alpha_menu > 0.1f) || hooks::menu_open) {
            ImGui::PushStyleVar(ImGuiStyleVar_Alpha, alpha_menu);
            if (ImGui::Begin("Spectator list", NULL, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
            {
                auto b_alpha = alpha_menu;
                size_menu = ImGui::GetWindowSize();
                Pos = ImGui::GetWindowPos();
                auto Render = ImGui::GetWindowDrawList();
                Render->AddRectFilled({ Pos.x + 0, Pos.y + 0 }, { Pos.x + 220, Pos.y + 23 }, ImColor(15, 15, 6, (int)(b_alpha * 155)));
                ImGui::PushFont(c_menu::get().gotham);
                Render->AddText({ Pos.x + 0 + 2, Pos.y + 8 }, ImColor(255, 255, 255, (int)(alpha_menu * 255)), "spectators");
                if (spect.size() > 0)
                    Render->AddRectFilled({ Pos.x + 0, Pos.y + 23 }, { Pos.x + 200, Pos.y + ImGui::GetWindowSize().y - 9 }, ImColor(255, 255, 255, (int)(b_alpha * 50)), 6);
                if (specs > 0) spect += "\n";
                if (modes > 0) mode += "\n";
                ImVec2 size = ImGui::CalcTextSize(spect.c_str());
                ImVec2 size2 = ImGui::CalcTextSize(mode.c_str());
                ImGui::SetWindowSize(ImVec2(200, 23 + size.y));
                ImGui::SetCursorPosY(25);
                ImGui::Columns(2, "fart1", false);


                ImGui::SetColumnWidth(0, 190 - (size2.x + 8));
                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), spect.c_str());
                ImGui::NextColumn();

                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), mode.c_str());
                ImGui::Columns(1);
                ImGui::Separator();
                ImGui::PopFont();
            }
            ImGui::End();
            ImGui::PopStyleVar();
            //    }
        }
    }
}
репостишь код инсани, который он выкладывал год назад?
 

Вложения

шатап книга
Забаненный
Статус
Оффлайн
Регистрация
7 Мар 2020
Сообщения
485
Реакции[?]
119
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
2 Апр 2021
Сообщения
73
Реакции[?]
6
Поинты[?]
0
Посмотреть вложение 180419
Я ДИЗАЙНИРР!!!!
C++:
void misc::keybinds()
{

    if (!g_cfg.menu.keybinds)
        return;
    int specs = 0;
    int modes = 0;
    std::string spect = "";
    std::string mode = "";

    if (key_binds::get().get_key_bind_state(16)) {
        spect += "inverter";
        spect += "\n";
        specs++;

        switch (g_cfg.antiaim.flip_desync.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(18)) {
        spect += "auto peek";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.automatic_peek.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(20)) {
        spect += "fakeduck";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.fakeduck_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(21)) {
        spect += "slowwalk";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.slowwalk_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (misc::get().double_tap_key) {
        spect += "doubletap";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.double_tap_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(17)) {
        spect += "thirdperson";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.thirdperson_toggle.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(4 + hooks::rage_weapon)) {
        spect += "damage override";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.weapon[hooks::rage_weapon].damage_override_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(3)) {
        spect += "safepoint";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.safe_point_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(0)) {
        spect += "autofire";
        spect += "\n";
        specs++;

        switch (g_cfg.legitbot.autofire_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }

    if (key_binds::get().get_key_bind_state(1)) {
        spect += "legit aim";
        spect += "\n";
        specs++;

        switch (g_cfg.legitbot.key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(19)) {
        spect += "edge jump";
        spect += "\n";
        specs++;

        switch (g_cfg.misc.edge_jump.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(13) || key_binds::get().get_key_bind_state(14) || key_binds::get().get_key_bind_state(15)) {
        spect += "manual yaw";
        spect += "\n";
        specs++;


        mode += "[toggle]";

        mode += "\n";
        modes++;
    }
    if (misc::get().hide_shots_key) {
        spect += "hide shots";
        spect += "\n";
        specs++;

        switch (g_cfg.antiaim.hide_shots_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }
    if (key_binds::get().get_key_bind_state(22)) {
        spect += "body aim";
        spect += "\n";
        specs++;

        switch (g_cfg.ragebot.body_aim_key.mode) {
        case 0: {
            mode += "[holding]  ";
        }break;
        case 1: {
            mode += "[toggled]  ";
        }break;
        }
        mode += "\n";
        modes++;
    }

    ImVec2 Pos;
    ImVec2 size_menu;

    static bool window_set = false;
    float speed = 10;
    static bool finish = false;
    static bool other_bind_pressed = false;
    static int sub_tabs = false;
    if (key_binds::get().get_key_bind_state(4 + hooks::rage_weapon) || key_binds::get().get_key_bind_state(16) || key_binds::get().get_key_bind_state(18) || key_binds::get().get_key_bind_state(20)
        || key_binds::get().get_key_bind_state(21) || key_binds::get().get_key_bind_state(17) || key_binds::get().get_key_bind_state(22) || key_binds::get().get_key_bind_state(13) || key_binds::get().get_key_bind_state(14) || key_binds::get().get_key_bind_state(15)
        || misc::get().double_tap_key || misc::get().hide_shots_key || key_binds::get().get_key_bind_state(0) || key_binds::get().get_key_bind_state(3) || key_binds::get().get_key_bind_state(23))
        other_bind_pressed = true;
    else
        other_bind_pressed = false;


    if (g_cfg.menu.windowsize_x_saved != g_cfg.menu.oldwindowsize_x_saved)
    {
        if (g_cfg.menu.windowsize_x_saved > g_cfg.menu.oldwindowsize_x_saved)
        {
            g_cfg.menu.windowsize_x_saved -= g_cfg.menu.speed;
        }
        if (g_cfg.menu.windowsize_x_saved < g_cfg.menu.oldwindowsize_x_saved)
        {
            g_cfg.menu.windowsize_x_saved += g_cfg.menu.speed;
        }
    }
    if (g_cfg.menu.windowsize_y_saved != g_cfg.menu.oldwindowsize_y_saved)
    {
        if (g_cfg.menu.windowsize_y_saved > g_cfg.menu.oldwindowsize_y_saved)
        {
            g_cfg.menu.windowsize_y_saved -= g_cfg.menu.speed;
        }
        if (g_cfg.menu.windowsize_y_saved < g_cfg.menu.oldwindowsize_y_saved)
        {
            g_cfg.menu.windowsize_y_saved += g_cfg.menu.speed;
        }
    }
    if (g_cfg.menu.windowsize_x_saved == g_cfg.menu.oldwindowsize_x_saved && g_cfg.menu.windowsize_y_saved == g_cfg.menu.oldwindowsize_y_saved)
    {
        finish = true;
    }
    else
    {
        finish = false;
    }

    if (!g_cfg.antiaim.flip_desync.key || !g_cfg.misc.automatic_peek.key || !g_cfg.misc.fakeduck_key.key || !g_cfg.misc.slowwalk_key.key || !g_cfg.ragebot.double_tap_key.key || !g_cfg.misc.fakeduck_key.key || !g_cfg.misc.thirdperson_toggle.key || !hooks::menu_open)
    {

        g_cfg.menu.windowsize_x_saved = 0;

        g_cfg.menu.windowsize_y_saved = 0;

    }

    static float alpha_menu = 1.0f;

    ImGuiStyle* Style = &ImGui::GetStyle();
    Style->FramePadding = ImVec2(1, 1);
    Style->WindowRounding = 0;
    Style->FrameRounding = 0;
    if ((g_cfg.menu.keybinds)) {
        if ((other_bind_pressed && alpha_menu > 0.1f) || hooks::menu_open) {
            ImGui::PushStyleVar(ImGuiStyleVar_Alpha, alpha_menu);
            if (ImGui::Begin("Keybinds", NULL, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
            {
                auto b_alpha = alpha_menu;
                size_menu = ImGui::GetWindowSize();
                Pos = ImGui::GetWindowPos();
                auto Render = ImGui::GetWindowDrawList();
            //    PostProcessing::performFullscreenBlur(Render, 1.f);
                Render->AddRectFilled({ Pos.x + 0, Pos.y + 0 }, { Pos.x + 220, Pos.y + 23 }, ImColor(15, 15, 6, (int)(b_alpha * 155)));
         
 
                ImGui::PushFont(c_menu::get().gotham);
                Render->AddText({ Pos.x + 0 + 2, Pos.y + 8 }, ImColor(255, 255, 255, (int)(alpha_menu * 255)), "keybinds");

                if (other_bind_pressed)
                    Render->AddRectFilled({ Pos.x + 0, Pos.y + 23 }, { Pos.x + 200, Pos.y + ImGui::GetWindowSize().y - 10 }, ImColor(255, 255, 255, (int)(b_alpha * 50)), 6);

         
                if (specs > 0) spect += "\n";
                if (modes > 0) mode += "\n";
                ImVec2 size = ImGui::CalcTextSize(spect.c_str());
                ImVec2 size2 = ImGui::CalcTextSize(mode.c_str());
                ImGui::SetWindowSize(ImVec2(200, 23 + size.y));
                ImGui::SetCursorPosY(24);
                ImGui::Columns(2, "fart1", false);


                ImGui::SetColumnWidth(0, 190 - (size2.x + 8));
                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), spect.c_str());
                ImGui::NextColumn();

                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), mode.c_str());
                ImGui::Columns(1);
                ImGui::Separator();

                ImGui::PopFont();
            }
            ImGui::End();
            ImGui::PopStyleVar();
            //    }
        }
    }
}


void misc::spectators_list()
{
    if (!g_cfg.misc.spectators_list)
        return;


    std::vector <std::string> spectators;


    int specs = 0;
    int modes = 0;
    std::string spect = "";
    std::string mode = "";
    ImVec2 Pos;
    ImVec2 size_menu;

    static bool window_set = false;
    static float windowsize_x = 0;
    static float windowsize_y = 0;
    static float oldwindowsize_x = 300;
    static float oldwindowsize_y = 300;
    static float speed = 10;
    static bool finish = false;
    static int sub_tabs = false;
    static float alpha_menu = 1.f;


    if (windowsize_x != oldwindowsize_x)
    {
        if (windowsize_x > oldwindowsize_x)
        {
            windowsize_x -= speed;
        }
        if (windowsize_x < oldwindowsize_x)
        {
            windowsize_x += speed;
        }
    }
    if (windowsize_y != oldwindowsize_y)
    {
        if (windowsize_y > oldwindowsize_y)
        {
            windowsize_y -= speed;
        }
        if (windowsize_y < oldwindowsize_y)
        {
            windowsize_y += speed;
        }
    }
    if (windowsize_x == oldwindowsize_x && windowsize_y == oldwindowsize_y)
    {
        finish = true;
    }
    else
    {
        finish = false;
    }
    for (int i = 1; i < m_globals()->m_maxclients; i++)
    {
        auto e = static_cast<player_t*>(m_entitylist()->GetClientEntity(i));

        if (!e)
            continue;

        if (e->is_alive())
            continue;

        if (e->IsDormant())
            continue;

        if (e->m_hObserverTarget().Get() != g_ctx.local())
            continue;

        player_info_t player_info;
        m_engine()->GetPlayerInfo(i, &player_info);
        spect += player_info.szName;
        spect += "\n";
        specs++;
    }
    ImGuiStyle* Style = &ImGui::GetStyle();
    Style->FramePadding = ImVec2(1, 1);

    if ((g_cfg.misc.spectators_list)) {
        if ((spect.size() > 0 && alpha_menu > 0.1f) || hooks::menu_open) {
            ImGui::PushStyleVar(ImGuiStyleVar_Alpha, alpha_menu);
            if (ImGui::Begin("Spectator list", NULL, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
            {
                auto b_alpha = alpha_menu;
                size_menu = ImGui::GetWindowSize();
                Pos = ImGui::GetWindowPos();
                auto Render = ImGui::GetWindowDrawList();
                Render->AddRectFilled({ Pos.x + 0, Pos.y + 0 }, { Pos.x + 220, Pos.y + 23 }, ImColor(15, 15, 6, (int)(b_alpha * 155)));
                ImGui::PushFont(c_menu::get().gotham);
                Render->AddText({ Pos.x + 0 + 2, Pos.y + 8 }, ImColor(255, 255, 255, (int)(alpha_menu * 255)), "spectators");
                if (spect.size() > 0)
                    Render->AddRectFilled({ Pos.x + 0, Pos.y + 23 }, { Pos.x + 200, Pos.y + ImGui::GetWindowSize().y - 9 }, ImColor(255, 255, 255, (int)(b_alpha * 50)), 6);
                if (specs > 0) spect += "\n";
                if (modes > 0) mode += "\n";
                ImVec2 size = ImGui::CalcTextSize(spect.c_str());
                ImVec2 size2 = ImGui::CalcTextSize(mode.c_str());
                ImGui::SetWindowSize(ImVec2(200, 23 + size.y));
                ImGui::SetCursorPosY(25);
                ImGui::Columns(2, "fart1", false);


                ImGui::SetColumnWidth(0, 190 - (size2.x + 8));
                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), spect.c_str());
                ImGui::NextColumn();

                ImGui::TextColored(ImVec4(1.f, 1.f, 1.f, alpha_menu), mode.c_str());
                ImGui::Columns(1);
                ImGui::Separator();
                ImGui::PopFont();
            }
            ImGui::End();
            ImGui :: PopStyleVar ();
            //    }
        }
    }
}
definitions for windowsize_x_saved & windowsize_y_saved
 
Похожие темы
Сверху Снизу