MG Yaşı
2 Ay 1 Gün
Katılım
2 Şub 2026
Konular
224
Mesajlar
363
Tepkime puanı
54
Puan
53
Konum
İstanbul
1771623931497.png

Fareyi pencerenin üzerine getirdiğinizde, pencereye ait bilgileri gösterir. Mevcut pencereyi yeşil, üst pencereyi mavi çerçeve ile gösterir.

* EterPythonLib\PythonGraphic.cpp

Arat:
Kod:
long CPythonGraphic::GenerateColor(float r, float g, float b, float a)

Üstüne ekle:
Kod:
void CPythonGraphic::RenderTextLine(float x, float y, const char* c_szText, DWORD dwColor)
{
    assert(ms_lpd3dDevice != NULL);

    // Create a text instance with the provided text
    CGraphicTextInstance textInstance;

    // Set properties
    textInstance.SetColor(dwColor);

    // Get the default font from FontManager
    extern CResource* gs_pkDefaultFont;
    CGraphicText* pFont = static_cast<CGraphicText*>(gs_pkDefaultFont);
    if (!pFont)
        return;

    textInstance.SetTextPointer(pFont);
    textInstance.SetValue(c_szText);
    textInstance.SetPosition(x, y);

    // Update the text layout
    textInstance.Update();

    // Render the text at the specified position
    textInstance.Render();
}

* EterPythonLib\PythonGraphic.h

Arat:
Kod:
        long GenerateColor(float r, float g, float b, float a);

Üstüne ekle:
Kod:
        void RenderTextLine(float x, float y, const char* c_szText, DWORD dwColor);

* EterPythonLib/PythonWindow.cpp

Ekle:
Kod:
#include <fmt/format.h>

Arat:
Kod:
        if (g_bOutlineBoxEnable)
        {
            CPythonGraphic::Instance().SetDiffuseColor(1.0f, 1.0f, 1.0f);
            CPythonGraphic::Instance().RenderBox2d(m_rect.left, m_rect.top, m_rect.right, m_rect.bottom);
        }

Değiştir:
Kod:
        if (g_bOutlineBoxEnable)
        {
            if (CWindowManager::instance().GetPointWindow() == this)
            {
                // Render parent rect with blue outline
                const auto parentRect = m_pParent ? m_pParent->m_rect : RECT{ 0, 0, 0, 0 };
                CPythonGraphic::Instance().SetDiffuseColor(0.0f, 0.0f, 1.0f);
                CPythonGraphic::Instance().RenderBox2d(parentRect.left, parentRect.top, parentRect.right, parentRect.bottom);

                // Render this rect with green outline
                CPythonGraphic::Instance().SetDiffuseColor(0.0f, 1.0f, 0.0f);
                CPythonGraphic::Instance().RenderBox2d(m_rect.left, m_rect.top, m_rect.right, m_rect.bottom);

                // Render info text with window name and flags
                const auto buffer = fmt::format("{} ({})", m_strName, Type());
                CPythonGraphic::Instance().RenderTextLine(m_rect.left + 5, m_rect.top - 30, buffer.c_str(), 0xFFFFFF00);

                const auto flags = m_dwFlag;
                std::string flagInfo;
                if (flags & FLAG_MOVABLE)
                    flagInfo += "FLAG_MOVABLE ";
                if (flags & FLAG_SNAP)
                    flagInfo += "FLAG_SNAP ";
                if (flags & FLAG_DRAGABLE)
                    flagInfo += "FLAG_DRAGABLE ";
                if (flags & FLAG_ATTACH)
                    flagInfo += "FLAG_ATTACH ";
                if (flags & FLAG_RESTRICT_X)
                    flagInfo += "FLAG_RESTRICT_X ";
                if (flags & FLAG_RESTRICT_Y)
                    flagInfo += "FLAG_RESTRICT_Y ";
                if (flags & FLAG_FLOAT)
                    flagInfo += "FLAG_FLOAT ";
                if (flags & FLAG_NOT_PICK)
                    flagInfo += "FLAG_NOT_PICK ";
                if (flags & FLAG_IGNORE_SIZE)
                    flagInfo += "FLAG_IGNORE_SIZE ";
                if (flags & FLAG_RTL)
                    flagInfo += "FLAG_RTL ";

                const auto parentName = m_pParent ? m_pParent->GetName() : "None";

                const auto stRectInfo = fmt::format("Pos: ({0}, {1}), Size: {2}x{3}, Flags: {4}, Parent: {5}",
                    m_rect.left, m_rect.top, m_rect.right - m_rect.left, m_rect.bottom - m_rect.top,
                    flagInfo, parentName
                );
                CPythonGraphic::Instance().RenderTextLine(m_rect.left + 5, m_rect.top - 15, stRectInfo.c_str(), 0xFFFFFFFF);
            }
        }

* UserInterface\GameType.cpp

Arat:
Kod:
static CResource* gs_pkDefaultFont = NULL;

Değiştir:
Kod:
CResource* gs_pkDefaultFont = NULL;

Aktif Etme:
  • EterPythonLib\PythonWindow.cpp dosyasındaki BOOL g_bOutlineBoxEnable değerini TRUE yapın.
  • Ya da Python üzerinden:
Python:
wndMgr.SetOutlineFlag(True)
 
Geri
Üst