Вопрос Keybins + spec list

Забаненный
Статус
Оффлайн
Регистрация
19 Авг 2020
Сообщения
119
Реакции[?]
2
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
уверен что не норм.если хочешь кидай сурс и мб чекну или кто то другой или танцы с бумбом у тебя будет
C++:
auto size = fonted::m_tahoma14->CalcTextSizeA(16.f, FLT_MAX, NULL, spectators.c_str());

    ImGui::SetNextWindowSize(ImVec2(300, size.y + 40.f));
    if (ImGui::Begin("Spectator List", NULL, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse))
    {
        ImGui::Text(spectators.c_str());
        ImGui::End();
    }
 
kira yoshikage
Пользователь
Статус
Оффлайн
Регистрация
21 Янв 2020
Сообщения
887
Реакции[?]
115
Поинты[?]
2K
C++:
auto size = fonted::m_tahoma14->CalcTextSizeA(16.f, FLT_MAX, NULL, spectators.c_str());

    ImGui::SetNextWindowSize(ImVec2(300, size.y + 40.f));
    if (ImGui::Begin("Spectator List", NULL, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse))
    {
        ImGui::Text(spectators.c_str());
        ImGui::End();
    }
заебись код чел
1.ты хоть его вызвал (блять забыл как называется)
 
Забаненный
Статус
Оффлайн
Регистрация
19 Авг 2020
Сообщения
119
Реакции[?]
2
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
заебись код чел
1.ты хоть его вызвал (блять забыл как называется)
C++:
void misc::spectators_list()
{
    if (!g_cfg.visuals.speclist)
        return;

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

    std::string spectators;

    for (int i = 0; i < m_engine()->GetMaxClients(); 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 += std::string(player_info.szName);
    }

    auto size = fonted::m_tahoma14->CalcTextSizeA(16.f, FLT_MAX, NULL, spectators.c_str());

    ImGui::SetNextWindowSize(ImVec2(300, size.y + 40.f));
    if (ImGui::Begin("Spectator List", NULL, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse))
    {
        ImGui::Text(spectators.c_str());
        ImGui::End();
    }
      

}
 
Забаненный
Статус
Оффлайн
Регистрация
25 Фев 2021
Сообщения
13
Реакции[?]
15
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1) Если курсор в рамках листа && лкс не зажата -> сохраняем dragPosition для x и y, ставим isDragging на false.
2) Если лкм была нажата в рамках листа -> ставим isDragging на true
3) Если isDragging == true && лкм зажата -> Если cursorPosition != drugPostion -> x -= dragPosition - cursorPosition; dragPosition = cursorPosition;


C++:
bool isCursorInListByX( cursorPosition, xPosition, windowWidth )
{
    if (cursorPosition.x > xPosition && cursorPosition.x < xPosition + windowWidth) {
        return true;
    }
    return false;
}

bool isCursorInListByY( cursorPosition, yPosition, windowHeight )
{
    if (cursorPosition.y > yPosition && cursorPosition.y < yPosition + windowHeight) {
        return true;
    }
    return false;
}

bool isCursorInList( xPosition, yPosition, windowWidth, windowHeight )
{
    if (isCursorInListByX( getCursorPosition(), xPosition, windowWidth )
    && isCursorInListByY( getCursorPosition(), yPosition, windowHeight )) {
        return true;
    }
    return false;
}

void moveList()
{
    static bool isDragging = false;
    static int dragXPosition = 0;
    static int dragYPosition = 0;
    static int xPosition = 200;
    static int yPosition = 200;
    const int windowWidth = 200;
    const int windowHeight = 350;
    Vector2D cursorPosition = getCursorPosition();
    if (!GetAsyncKeyState(1)) {
        isDragging = false;
        if (isCursorInListByX( cursorPosition, xPosition, windowWidth )) {
            dragXPosition = cursorPosition.x;
        }
        if (isCursorInListByY( cursorPosition, yPosition, windowHeight )) {
            dragYPosition = cursorPosition.y;
        }
    }
 
    if (GetAsyncKeyState(1) && isCursorInList( xPosition, yPosition, windowWidth, windowHeight )) {
        isDragging = true;
    }
 
    if (GetAsyncKeyState(1) && isDragging) {
        if (cursorPosition.x != dragXPosition) {
            xPosition -= ( dragXPosition - cursorPosition.x );
            dragXPosition = cursorPosition.x;
        }
        if (cursorPosition.y != dragYPosition) {
            yPosition -= ( dragYPosition - cursorPosition.y );
            dragYPosition = cursorPosition.y;
        }
    }
 
}
 
Сверху Снизу