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

Участник
Статус
Оффлайн
Регистрация
19 Апр 2020
Сообщения
1,172
Реакции[?]
314
Поинты[?]
152K
C++:
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
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
ЧВК EB_LAN
Забаненный
Статус
Оффлайн
Регистрация
12 Янв 2019
Сообщения
838
Реакции[?]
298
Поинты[?]
17K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пошёл нахуй с юг с такими темами, оно даже близко не стоит с нлом.
 
правейший
Участник
Статус
Оффлайн
Регистрация
4 Янв 2021
Сообщения
645
Реакции[?]
206
Поинты[?]
2K
найс репост, можешь больше на юг не заходить
 
Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,970
Реакции[?]
958
Поинты[?]
19K
cringe, кто такой этот ваш имгуи, у нас же есть сюрфейс, и отсутствие мозга, ведь мы можешь только копипастить
 
kill me
Забаненный
Статус
Оффлайн
Регистрация
18 Дек 2018
Сообщения
365
Реакции[?]
70
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
cringe, кто такой этот ваш имгуи, у нас же есть сюрфейс, и отсутствие мозга, ведь мы можешь только копипастить
кринж, делать иконки для спектатора, с мажором и его говнокодом. maj0r люблю тебя) ?
 
Web developer / designer
Пользователь
Статус
Оффлайн
Регистрация
15 Ноя 2020
Сообщения
411
Реакции[?]
124
Поинты[?]
2K
cringe, кто такой этот ваш имгуи, у нас же есть сюрфейс, и отсутствие мозга, ведь мы можешь только копипастить
почему не юзать сюрфейс, если ему в кайф, просто уже дело в реализации
 
Олдфаг
Статус
Оффлайн
Регистрация
5 Июл 2017
Сообщения
2,108
Реакции[?]
1,189
Поинты[?]
0
почему не юзать сюрфейс, если ему в кайф, просто уже дело в реализации
А не лучше ли FreeType + D3D9 рендер использовать, просто отключаешь Anti-Aliasing в флагах шрифта и получаешь "квадратный" шрифт для любителей ЕСП скита. Куда качественнее, оптимизированнее, и иконки будут нормальными

1628576684767.png
Нужно открыть картинку полностью, она не мыльная
 
Emton
Пользователь
Статус
Оффлайн
Регистрация
20 Мар 2021
Сообщения
115
Реакции[?]
40
Поинты[?]
0
0 анимаций, цвета не похожи, блюра нет, иконки парашные, шрифт совсем не тот. на форуме никсвара получше лежат.
 
priora compressor
Участник
Статус
Оффлайн
Регистрация
18 Май 2019
Сообщения
675
Реакции[?]
243
Поинты[?]
16K
в чем проблема была хотя-бы использовать анти алиас на шрифтах, ну или просто закруглить рект?
 
Участник
Статус
Оффлайн
Регистрация
2 Фев 2020
Сообщения
818
Реакции[?]
378
Поинты[?]
0
А не лучше ли FreeType + D3D9 рендер использовать, просто отключаешь Anti-Aliasing в флагах шрифта и получаешь "квадратный" шрифт для любителей ЕСП скита. Куда качественнее, оптимизированнее, и иконки будут нормальными

Посмотреть вложение 165465
Нужно открыть картинку полностью, она не мыльная
А что за утилита на скрине?
и о каком disable anti-aliasing идет речь, в фритайпе и деф имгуи нет же такого
 
Начинающий
Статус
Оффлайн
Регистрация
28 Окт 2020
Сообщения
14
Реакции[?]
3
Поинты[?]
0
C++:
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
 
Олдфаг
Статус
Оффлайн
Регистрация
5 Июл 2017
Сообщения
2,108
Реакции[?]
1,189
Поинты[?]
0
А что за утилита на скрине?
и о каком disable anti-aliasing идет речь, в фритайпе и деф имгуи нет же такого
1628654874153.png
В FreeType есть

Это просто тестовый ImGui стенд мой, я там тестирую всякие системы новые, шрифты, анимации и т.д.
 
Пользователь
Статус
Оффлайн
Регистрация
9 Июл 2020
Сообщения
115
Реакции[?]
67
Поинты[?]
0
C++:
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
 
Сверху Снизу