Sohbet Ekranı Yazılara Siyah Kontur Ekleme

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 48

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Öncesi;
rqbmiwk.png


Sonrası;
4bq063n.png


Kod:
# arat; void CPythonChat::UpdateViewMode(DWORD dwID) # içinde bul; else         {             ++itor;         } # altına ekle;         if (rColor.a == 1)         {             pChatLine->Instance.SetOutline(true);         }         else         {             pChatLine->Instance.SetOutline(false);         } //////////////////////////////////////////////////////////////////// # arat; void CPythonChat::UpdateEditMode(DWORD dwID) # kendinize göre uyarlayın veya değiştirin; void CPythonChat::UpdateEditMode(DWORD dwID) {     TChatSet* pChatSet = GetChatSetPtr(dwID);     if (!pChatSet)         return;     const int c_iAlphaLine = max(0, GetVisibleLineCount(dwID) - GetEditableLineCount(dwID) + 2);     int iLineIndex = 0;     float fAlpha = 0.0f;     float fAlphaStep = 0.0f;     if (c_iAlphaLine > 0)         fAlphaStep = 1.0f / float(c_iAlphaLine);     TChatLineList* pLineList = &(pChatSet->m_ShowingChatLineList);     int iHeight = -(int(pLineList->size() + 1) * pChatSet->m_iStep);     for (TChatLineList::iterator itor = pLineList->begin(); itor != pLineList->end(); ++itor)     {         TChatLine* pChatLine = (*itor);         D3DXCOLOR& rColor = pChatLine->GetColorRef(dwID);         if (iLineIndex < c_iAlphaLine)         {             rColor.a += (fAlpha - rColor.a) / 10.0f;             fAlpha = fMIN(fAlpha + fAlphaStep, 1.0f);                         pChatLine->Instance.SetOutline(false); // Siyah Kontur Ayarı         }         else         {             rColor.a = fMIN(rColor.a + 0.05f, 1.0f); // Siyah Kontur Ayarı             pChatLine->Instance.SetOutline(true);             if (rColor.a != 1)                 pChatLine->Instance.SetOutline(false); // Siyah Kontur Ayarı         }         iHeight += pChatSet->m_iStep;         pChatLine->Instance.SetPosition(pChatSet->m_ix, pChatSet->m_iy + iHeight);         pChatLine->Instance.SetColor(rColor);         pChatLine->Instance.Update();         if (pChatLine->ImageInstance)             pChatLine->ImageInstance->SetPosition(pChatSet->m_ix, pChatSet->m_iy + iHeight + 2);   ++iLineIndex;     } }



İyi forumlar.
Sohbet Ekranı Yazılara Siyah Kontur Ekleme
Metin2 özel sunucu geliştirmelerinde kullanıcı deneyimini artırmak adına birçok görsel detay üzerinde çalışılır. Bunlardan birisi de sohbet ekranındaki yazıların daha net ve okunaklı görünmesidir. Özellikle düşük çözünürlüklü arka planlar ya da yoğun renkli temalar kullanıldığında yazıların arka planla karışması gibi sorunlar yaşanabilir. Bu durumda yazıya siyah kontur (outline) eklemek büyük fark yaratır.

Neden Siyah Kontur Kullanılır?
Siyah kontur, yazının arka planda kalan renklerden ayrılması için kullanılır. Bu özellikle açık renkli yazılar için geçerlidir. Örneğin beyaz veya açık gri renkte bir yazı, açık renkli bir arka planda neredeyse görünmez olabilir. Bu yazıya siyah kontur eklenerek hem okunabilirlik hem de estetik açıdan daha iyi bir görüntü sağlanabilir. Bu işlem, Metin2 client tarafında yapılan küçük ama etkili bir değişikliktir.

Geliştirme Ortamı ve Araçlar
Metin2 özel sunucularında bu tür değişiklikler genellikle UIScript (uiscript.py), UI Files (client side) ve bazı C++ dosyaları üzerinden yapılır. Uygulama genellikle Python tabanlı GUI sistemlerinde yer alır. Bu tür düzenlemeler, py root, client src ve uiscript gibi alanlarda yapılmaktadır. Metin2 geliştirme ortamında bu işlemleri yapabilmek için Python bilgisi ve Martysama gibi kaynaklardan destek alınması önerilir.

Sohbet Ekranı Yazılara Siyah Kontur Ekleme Adımları
1. UIScript Dosyasını Bulun: Sohbet ekranı genellikle 'ChatWindow.py' veya benzeri bir dosya ile tanımlanır. Bu dosyada yazının nasıl çizildiği belirlenir.

2. TextLine Widget Ayarları: Sohbet yazısı genellikle TextLine widget ile gösterilir. Burada yazı tipi, rengi ve kontur ayarları yapılabilir. Kontur eklemek için 'SetOutline' veya 'SetFeather' fonksiyonları kullanılabilir.

3. Python Script Değişikliği: Aşağıdaki gibi bir kod parçası eklenebilir:
Kod:
textLine.SetOutline()
Bu satır, yazının etrafına ince bir siyah kontur ekler.

4. Derleme ve Test: Yapılan değişiklikten sonra client yeniden derlenir ve test edilir. Eğer kontur görünmüyorsa, TextLine sınıfında outline desteklenmiyor olabilir. Bu durumda, C++ client source üzerinde TextLine sınıfı genişletilerek kontur desteği eklenebilir.

Kontur Rengi Değiştirme
Varsayılan olarak kontur siyahtır ancak bazı geliştiriciler farklı renkler tercih edebilir. Bu durumda C++ seviyesinde özelleştirilmiş bir fonksiyon yazmak gerekir. Bu işlem için client src üzerinde çalışmak ve compile işlemi gerçekleştirmek gerekir.

Sonuç
Sohbet ekranında yazılara siyah kontur eklemek, kullanıcı dostu bir arayüz oluşturmak için küçük ama etkili bir adımdır. Bu değişiklik, Metin2 özel sunucularında profesyonel bir görünüm sağlar ve kullanıcıların sohbetteki yazıları daha rahat okumasını sağlar. Geliştiriciler bu işlemi UIScript üzerinden hızlıca uygulayabilir. Daha gelişmiş kontroller için client source üzerinde C++ bilgisi gerekebilir.

Daha fazla Metin2 geliştirme kaynağı için Metin2Lobby ziyaret edebilirsiniz.


Adding Black Outline to Chat Screen Texts
In Metin2 private server developments, many visual details are worked on to enhance user experience. One of these is making texts on the chat screen clearer and more readable. Especially with low-resolution backgrounds or vibrant color themes, texts may blend into the background. Adding a black outline to the text can make a huge difference in such cases.

Why Use a Black Outline?
A black outline helps the text stand out from the background. This is particularly useful for light-colored texts. For example, white or light gray text might become nearly invisible against a bright background. By adding a black outline to the text, readability and visual appeal are both improved. This is a small but effective change made on the Metin2 client side.

Development Environment and Tools
Such modifications in Metin2 private servers are typically done through UIScript (uiscript.py), UI files (client-side), and some C++ files. The application often involves Python-based GUI systems. These kinds of edits take place within py root, client src, and uiscript. To perform these changes in the Metin2 development environment, knowledge of Python and resources like Martysama are recommended.

Steps to Add Black Outline to Chat Texts
1. Locate the UIScript File: The chat window is usually defined in a file named 'ChatWindow.py' or similar. This file determines how the text is drawn.

2. TextLine Widget Settings: Chat text is usually displayed via a TextLine widget. Font, color, and outline settings can be adjusted here. Functions like 'SetOutline' or 'SetFeather' can be used to add outlines.

3. Python Script Changes: A code snippet like the following can be added:
Kod:
textLine.SetOutline()
This line adds a thin black outline around the text.

4. Compile and Test: After making the changes, the client is recompiled and tested. If the outline does not appear, the TextLine class may not support outlining. In this case, extending the TextLine class in the C++ client source code to add outline support may be necessary.

Changing Outline Color
By default, the outline is black, but some developers prefer different colors. In that case, a custom function must be written at the C++ level. This requires working on the client source and performing a compile operation.

Conclusion
Adding a black outline to chat screen texts is a small but impactful step toward creating a user-friendly interface. This change provides a professional look in Metin2 private servers and makes it easier for users to read chat messages. Developers can quickly implement this change via UIScript. For advanced controls, C++ knowledge and access to client source may be required.

Visit Metin2Lobby for more Metin2 development resources.​
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt