Исходник lw watermark

Статус
В этой теме нельзя размещать новые ответы.
  • 125
  • 32
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
by lvnsfrndschr
C++:
void GuiWatermark()
{
    if (!g_cfg.misc.watermark)
        return;

    static auto guiopen = true;

    time_t lt;
    struct tm *t_m;
    lt = time(NULL);
    t_m = localtime(&lt);

    int time_h = t_m->tm_hour;
    int time_m = t_m->tm_min;
    int time_s = t_m->tm_sec;

    std::string time;

    if (time_h < 10)
        time += "0";

    time += std::to_string(time_h) + ":";

    if (time_m < 10)
        time += "0";

    time += std::to_string(time_m) + ":";

    if (time_s < 10)
        time += "0";

    time += std::to_string(time_s);

    static auto framerate = 0.0f;
    framerate = framerate * 0.9f + g_csgo.m_globals()->m_absoluteframetime * 0.1f;

    auto fps = std::to_string((int)(math::clamp(1.0f / framerate, 0.0f, 999.0f)));
    std::string delay = "0";
    std::string tickrate = "0";

    if (g_csgo.m_engine()->IsInGame())
    {
        auto nci = g_csgo.m_engine()->GetNetChannelInfo();
        auto latency = nci && !g_csgo.m_engine()->IsPlayingDemo() ? nci->GetAvgLatency(FLOW_OUTGOING) : 0.0f;

        static auto cl_updaterate = g_csgo.m_cvar()->FindVar("cl_updaterate");
        latency -= 0.5f / cl_updaterate->GetFloat();

        delay = std::to_string((int)(max(0.0f, latency) * 1000.0f));
        tickrate = std::to_string((int)(1.0f / g_csgo.m_globals()->m_interval_per_tick));
    }

    ImGuiStyle& style = ImGui::GetStyle();
    style.ItemSpacing = ImVec2(0.f, 0.f);
    style.WindowPadding = ImVec2(0.f, 0.f);
    style.FramePadding = ImVec2(0.f, 0.f);

    ImGui::PushFont(MainText);

    ImGui::Begin("Legendware watermark", &guiopen, ImVec2(320, 40), 0.f, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoTitleBar);
    {
        ImVec2 p = ImGui::GetCursorScreenPos();
        ImGui::PushStyleColor(ImGuiCol_ChildWindowBg, ImColor(30, 30, 30, 255));
        ImGui::PushStyleColor(ImGuiCol_Text, ImVec4((float)g_cfg.menu.menu_theme.r() / 255.0f, (float)g_cfg.menu.menu_theme.g() / 255.0f, (float)g_cfg.menu.menu_theme.b() / 255.0f, 255.f));

        ImGui::BeginChild("##firstmark", ImVec2(100, 40), false, ImGuiWindowFlags_NoScrollbar);
        {
            ImGui::PushFont(Verdana16);
            ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 20.f - (ImGui::CalcTextSize(time.c_str()).y / 2) - 13.f);
            ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 50.f - (ImGui::CalcTextSize(time.c_str()).x / 2) - 7.f);
            ImGui::Text(time.c_str());
            ImGui::PopFont();

            ImGui::PushFont(VisitorSmall);
            ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 6.f);
            ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 50.f - (ImGui::CalcTextSize("CURRENT TIME").x / 2) - 7.f);
            ImGui::PushStyleColor(ImGuiCol_Text, ImColor(245, 245, 245));
            ImGui::Text("CURRENT TIME");
            ImGui::PopStyleColor();
            ImGui::PopFont();
        }
        ImGui::EndChild();

        ImGui::SameLine();
        ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 3.f);

        ImGui::BeginChild("##secondmark", ImVec2(120, 40), false, ImGuiWindowFlags_NoScrollbar);
        {
            ImGui::SetCursorPosX(ImGui::GetCursorPosX() - 12.f);
            ImGui::BeginGroup();
            {
                ImGui::BeginGroup();
                {
                    ImGui::PushFont(Verdana16);
                    ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 20.f - (ImGui::CalcTextSize(fps.c_str()).y / 2) - 13.f);
                    ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 20.f - (ImGui::CalcTextSize(fps.c_str()).x / 2) + 2.f);
                    ImGui::Text(fps.c_str());
                    ImGui::PopFont();

                    ImGui::PushFont(VisitorSmall);
                    ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 6.f);
                    ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 20.f - (ImGui::CalcTextSize("FPS").x / 2) + 3.f);
                    ImGui::PushStyleColor(ImGuiCol_Text, ImColor(245, 245, 245));
                    ImGui::Text("FPS");
                    ImGui::PopStyleColor();
                    ImGui::PopFont();
                }
                ImGui::EndGroup();

                ImGui::SameLine();

                ImGui::BeginGroup();
                {
                    ImGui::PushFont(Verdana16);
                    ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 20.f - (ImGui::CalcTextSize(delay.c_str()).y / 2) - 13.f);
                    ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 20.f - (ImGui::CalcTextSize(delay.c_str()).x / 2) + 1.f);
                    ImGui::Text(delay.c_str());
                    ImGui::PopFont();

                    ImGui::PushFont(VisitorSmall);
                    ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 6.f);
                    ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 20.f - (ImGui::CalcTextSize("PING").x / 2) + 3.f);
                    ImGui::PushStyleColor(ImGuiCol_Text, ImColor(245, 245, 245));
                    ImGui::Text("PING");
                    ImGui::PopStyleColor();
                    ImGui::PopFont();
                }
                ImGui::EndGroup();

                ImGui::SameLine();

                ImGui::BeginGroup();
                {
                    ImGui::PushFont(Verdana16);
                    ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 20.f - (ImGui::CalcTextSize(tickrate.c_str()).y / 2) - 13.f);
                    ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 20.f - (ImGui::CalcTextSize(tickrate.c_str()).x / 2) - 1.f);
                    ImGui::Text(tickrate.c_str());
                    ImGui::PopFont();

                    ImGui::PushFont(VisitorSmall);
                    ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 6.f);
                    ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 20.f - (ImGui::CalcTextSize("RATE").x / 2) + 1.f);
                    ImGui::PushStyleColor(ImGuiCol_Text, ImColor(245, 245, 245));
                    ImGui::Text("RATE");
                    ImGui::PopStyleColor();
                    ImGui::PopFont();
                }
                ImGui::EndGroup();
            }
            ImGui::EndGroup();
        }
        ImGui::EndChild();

        ImGui::SameLine();
        ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 3.f);

        ImGui::BeginChild("##thirdmark", ImVec2(54, 40), false, ImGuiWindowFlags_NoScrollbar);
        {
            ImGui::PushFont(Porter);
            ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 20.f - (ImGui::CalcTextSize("LW").y / 2) - 11.f);
            ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 20.f - (ImGui::CalcTextSize("LW").x / 2));
            ImGui::PushStyleColor(ImGuiCol_Text, ImColor(245, 245, 245));
            ImGui::Text("LW");
            ImGui::PopStyleColor();
            ImGui::PopFont();


            ImGui::PushFont(PorterAlpha);
            ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 9.f);
            ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 20.f - (ImGui::CalcTextSize("ALPHA").x / 2));
            ImGui::Text("ALPHA");
            ImGui::PopFont();
        }
        ImGui::EndChild();

        ImGui::PopStyleColor(2);
    }
    ImGui::End();

    ImGui::PopFont();
}

1615032203960.png
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу