Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Исходник NL spectator list for LW ( don't judge me pls)

  • Автор темы Автор темы sky1e
  • Дата начала Дата начала
Участник
Участник
Статус
Оффлайн
Регистрация
19 Апр 2020
Сообщения
1,240
Реакции
320
C++:
Expand Collapse Copy
void misc::spectators_list()
{
    if (!g_cfg.misc.spectators_list)
        return;

    //if (!g_ctx.local()->is_alive())
        //return;



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

    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);

        spectators.push_back(player_info.szName);
    }
    static int spec_x;
    static int spec_y;

    static int _drag_x = 300;
    static int _drag_y = 300;

    static bool _dragging = false;
    bool _click = false;

    if (GetAsyncKeyState(VK_LBUTTON))
        _click = true;

    Vector2D _mouse_pos = m_surface()->GetMousePosition();

    if (_dragging && !_click)
        _dragging = false;

    if (_dragging && _click)
    {
        g_cfg.misc.spectatorlist_pos_x = _mouse_pos.x - _drag_x;
        g_cfg.misc.spectatorlist_pos_y = _mouse_pos.y - _drag_y;
        spec_x = g_cfg.misc.spectatorlist_pos_x;
        spec_y = g_cfg.misc.spectatorlist_pos_y;
    }


    int spec_width = 100;
    int spec_width3 = 150;
    int spec_width2 = 30;
    int spec_height = 22.5;

    if ((m_surface()->MouseInRegion(g_cfg.misc.spectatorlist_pos_x, g_cfg.misc.spectatorlist_pos_y, spec_width, spec_height)))
    {
        _dragging = true;
        _drag_x = _mouse_pos.x - g_cfg.misc.spectatorlist_pos_x;
        _drag_y = _mouse_pos.y - g_cfg.misc.spectatorlist_pos_y;
    }

    int h = 0;
    int h2 = 0;
    for (auto& keybind : spectators)
    {
        h2 += 12;

    }

    int a;
    int h4;
    if (h2 < 1)
    {
        a = 0;
        h4 = 0;
    }
    else
    {
        a = 245;
        h4 = 15;
    }

    render::get().rect_filled(g_cfg.misc.spectatorlist_pos_x, g_cfg.misc.spectatorlist_pos_y, spec_width3, spec_height, Color(25, 25, 45, 230));


    auto text_size = render::get().text_width(fonts[NAME], "  Spectators");
    auto text_size2 = render::get().text_width(fonts[BINDS], "b");

    render::get().text(fonts[NAME], g_cfg.misc.spectatorlist_pos_x + (spec_width) / 2, g_cfg.misc.spectatorlist_pos_y + 12, Color(255, 255, 255), HFONT_CENTERED_Y, "  Spectators");
    render::get().text(fonts[BINDS], g_cfg.misc.spectatorlist_pos_x + (spec_width2) / 2, g_cfg.misc.spectatorlist_pos_y + 12, Color(20, 100, 200), HFONT_CENTERED_Y, "b");
    render::get().rect_filled(g_cfg.misc.spectatorlist_pos_x, g_cfg.misc.spectatorlist_pos_y + 20, 150, 2, Color(25, 25, 25, 100));

    for (auto i = 0; i < spectators.size(); i++)
    {
        int width, heigth;
        m_engine()->GetScreenSize(width, heigth);

        auto x = render::get().text_width(fonts[NAME], spectators.at(i).c_str()) + 6; //-V106
        auto y = i * 16;

        render::get().text(fonts[NAME], g_cfg.misc.spectatorlist_pos_x + 10, g_cfg.misc.spectatorlist_pos_y + 24 +h, Color::White, HFONT_CENTERED_NONE, spectators.at(i).c_str()); //-V106
        render::get().text(fonts[NAME], g_cfg.misc.spectatorlist_pos_x + 85, g_cfg.misc.spectatorlist_pos_y + 24 +h, Color::White, HFONT_CENTERED_NONE, "Specting"); //-V106
        h += 12;
    }
}
BINDS,

fonts[BINDS] = create_font(crypt_str("untitled-font-1"), 18, FW_LIGHT, FONTFLAG_DROPSHADOW);

1628451179476.png

Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пошёл нахуй с юг с такими темами, оно даже близко не стоит с нлом.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
cringe, кто такой этот ваш имгуи, у нас же есть сюрфейс, и отсутствие мозга, ведь мы можешь только копипастить
кринж, делать иконки для спектатора, с мажором и его говнокодом. @maj0r- люблю тебя) ?
 
cringe, кто такой этот ваш имгуи, у нас же есть сюрфейс, и отсутствие мозга, ведь мы можешь только копипастить
почему не юзать сюрфейс, если ему в кайф, просто уже дело в реализации
 
почему не юзать сюрфейс, если ему в кайф, просто уже дело в реализации
А не лучше ли FreeType + D3D9 рендер использовать, просто отключаешь Anti-Aliasing в флагах шрифта и получаешь "квадратный" шрифт для любителей ЕСП скита. Куда качественнее, оптимизированнее, и иконки будут нормальными

1628576684767.png

Нужно открыть картинку полностью, она не мыльная
 
0 анимаций, цвета не похожи, блюра нет, иконки парашные, шрифт совсем не тот. на форуме никсвара получше лежат.
 
А не лучше ли FreeType + D3D9 рендер использовать, просто отключаешь Anti-Aliasing в флагах шрифта и получаешь "квадратный" шрифт для любителей ЕСП скита. Куда качественнее, оптимизированнее, и иконки будут нормальными

Посмотреть вложение 165465
Нужно открыть картинку полностью, она не мыльная
А что за утилита на скрине?
и о каком disable anti-aliasing идет речь, в фритайпе и деф имгуи нет же такого
 
C++:
Expand Collapse Copy
void misc::spectators_list()
{
    if (!g_cfg.misc.spectators_list)
        return;

    //if (!g_ctx.local()->is_alive())
        //return;



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

    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);

        spectators.push_back(player_info.szName);
    }
    static int spec_x;
    static int spec_y;

    static int _drag_x = 300;
    static int _drag_y = 300;

    static bool _dragging = false;
    bool _click = false;

    if (GetAsyncKeyState(VK_LBUTTON))
        _click = true;

    Vector2D _mouse_pos = m_surface()->GetMousePosition();

    if (_dragging && !_click)
        _dragging = false;

    if (_dragging && _click)
    {
        g_cfg.misc.spectatorlist_pos_x = _mouse_pos.x - _drag_x;
        g_cfg.misc.spectatorlist_pos_y = _mouse_pos.y - _drag_y;
        spec_x = g_cfg.misc.spectatorlist_pos_x;
        spec_y = g_cfg.misc.spectatorlist_pos_y;
    }


    int spec_width = 100;
    int spec_width3 = 150;
    int spec_width2 = 30;
    int spec_height = 22.5;

    if ((m_surface()->MouseInRegion(g_cfg.misc.spectatorlist_pos_x, g_cfg.misc.spectatorlist_pos_y, spec_width, spec_height)))
    {
        _dragging = true;
        _drag_x = _mouse_pos.x - g_cfg.misc.spectatorlist_pos_x;
        _drag_y = _mouse_pos.y - g_cfg.misc.spectatorlist_pos_y;
    }

    int h = 0;
    int h2 = 0;
    for (auto& keybind : spectators)
    {
        h2 += 12;

    }

    int a;
    int h4;
    if (h2 < 1)
    {
        a = 0;
        h4 = 0;
    }
    else
    {
        a = 245;
        h4 = 15;
    }

    render::get().rect_filled(g_cfg.misc.spectatorlist_pos_x, g_cfg.misc.spectatorlist_pos_y, spec_width3, spec_height, Color(25, 25, 45, 230));


    auto text_size = render::get().text_width(fonts[NAME], "  Spectators");
    auto text_size2 = render::get().text_width(fonts[BINDS], "b");

    render::get().text(fonts[NAME], g_cfg.misc.spectatorlist_pos_x + (spec_width) / 2, g_cfg.misc.spectatorlist_pos_y + 12, Color(255, 255, 255), HFONT_CENTERED_Y, "  Spectators");
    render::get().text(fonts[BINDS], g_cfg.misc.spectatorlist_pos_x + (spec_width2) / 2, g_cfg.misc.spectatorlist_pos_y + 12, Color(20, 100, 200), HFONT_CENTERED_Y, "b");
    render::get().rect_filled(g_cfg.misc.spectatorlist_pos_x, g_cfg.misc.spectatorlist_pos_y + 20, 150, 2, Color(25, 25, 25, 100));

    for (auto i = 0; i < spectators.size(); i++)
    {
        int width, heigth;
        m_engine()->GetScreenSize(width, heigth);

        auto x = render::get().text_width(fonts[NAME], spectators.at(i).c_str()) + 6; //-V106
        auto y = i * 16;

        render::get().text(fonts[NAME], g_cfg.misc.spectatorlist_pos_x + 10, g_cfg.misc.spectatorlist_pos_y + 24 +h, Color::White, HFONT_CENTERED_NONE, spectators.at(i).c_str()); //-V106
        render::get().text(fonts[NAME], g_cfg.misc.spectatorlist_pos_x + 85, g_cfg.misc.spectatorlist_pos_y + 24 +h, Color::White, HFONT_CENTERED_NONE, "Specting"); //-V106
        h += 12;
    }
}
BINDS,

fonts[BINDS] = create_font(crypt_str("untitled-font-1"), 18, FW_LIGHT, FONTFLAG_DROPSHADOW);

Посмотреть вложение 165243
Пожалуйста, авторизуйтесь для просмотра ссылки.
nice repost
 
А что за утилита на скрине?
и о каком disable anti-aliasing идет речь, в фритайпе и деф имгуи нет же такого
1628654874153.png

В FreeType есть

Это просто тестовый ImGui стенд мой, я там тестирую всякие системы новые, шрифты, анимации и т.д.
 
C++:
Expand Collapse Copy
void misc::spectators_list()
{
    if (!g_cfg.misc.spectators_list)
        return;

    //if (!g_ctx.local()->is_alive())
        //return;



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

    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);

        spectators.push_back(player_info.szName);
    }
    static int spec_x;
    static int spec_y;

    static int _drag_x = 300;
    static int _drag_y = 300;

    static bool _dragging = false;
    bool _click = false;

    if (GetAsyncKeyState(VK_LBUTTON))
        _click = true;

    Vector2D _mouse_pos = m_surface()->GetMousePosition();

    if (_dragging && !_click)
        _dragging = false;

    if (_dragging && _click)
    {
        g_cfg.misc.spectatorlist_pos_x = _mouse_pos.x - _drag_x;
        g_cfg.misc.spectatorlist_pos_y = _mouse_pos.y - _drag_y;
        spec_x = g_cfg.misc.spectatorlist_pos_x;
        spec_y = g_cfg.misc.spectatorlist_pos_y;
    }


    int spec_width = 100;
    int spec_width3 = 150;
    int spec_width2 = 30;
    int spec_height = 22.5;

    if ((m_surface()->MouseInRegion(g_cfg.misc.spectatorlist_pos_x, g_cfg.misc.spectatorlist_pos_y, spec_width, spec_height)))
    {
        _dragging = true;
        _drag_x = _mouse_pos.x - g_cfg.misc.spectatorlist_pos_x;
        _drag_y = _mouse_pos.y - g_cfg.misc.spectatorlist_pos_y;
    }

    int h = 0;
    int h2 = 0;
    for (auto& keybind : spectators)
    {
        h2 += 12;

    }

    int a;
    int h4;
    if (h2 < 1)
    {
        a = 0;
        h4 = 0;
    }
    else
    {
        a = 245;
        h4 = 15;
    }

    render::get().rect_filled(g_cfg.misc.spectatorlist_pos_x, g_cfg.misc.spectatorlist_pos_y, spec_width3, spec_height, Color(25, 25, 45, 230));


    auto text_size = render::get().text_width(fonts[NAME], "  Spectators");
    auto text_size2 = render::get().text_width(fonts[BINDS], "b");

    render::get().text(fonts[NAME], g_cfg.misc.spectatorlist_pos_x + (spec_width) / 2, g_cfg.misc.spectatorlist_pos_y + 12, Color(255, 255, 255), HFONT_CENTERED_Y, "  Spectators");
    render::get().text(fonts[BINDS], g_cfg.misc.spectatorlist_pos_x + (spec_width2) / 2, g_cfg.misc.spectatorlist_pos_y + 12, Color(20, 100, 200), HFONT_CENTERED_Y, "b");
    render::get().rect_filled(g_cfg.misc.spectatorlist_pos_x, g_cfg.misc.spectatorlist_pos_y + 20, 150, 2, Color(25, 25, 25, 100));

    for (auto i = 0; i < spectators.size(); i++)
    {
        int width, heigth;
        m_engine()->GetScreenSize(width, heigth);

        auto x = render::get().text_width(fonts[NAME], spectators.at(i).c_str()) + 6; //-V106
        auto y = i * 16;

        render::get().text(fonts[NAME], g_cfg.misc.spectatorlist_pos_x + 10, g_cfg.misc.spectatorlist_pos_y + 24 +h, Color::White, HFONT_CENTERED_NONE, spectators.at(i).c_str()); //-V106
        render::get().text(fonts[NAME], g_cfg.misc.spectatorlist_pos_x + 85, g_cfg.misc.spectatorlist_pos_y + 24 +h, Color::White, HFONT_CENTERED_NONE, "Specting"); //-V106
        h += 12;
    }
}
BINDS,

fonts[BINDS] = create_font(crypt_str("untitled-font-1"), 18, FW_LIGHT, FONTFLAG_DROPSHADOW);

Посмотреть вложение 165243
Пожалуйста, авторизуйтесь для просмотра ссылки.
drawing rectangles isn't hard
 
Назад
Сверху Снизу