[Fix] uitooltip.py AttrMaxWidth düzenlemesi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhabalar, küçük detaylara takıntılı biri olarak rahatsız olduğum bir problemin çözümü.

Before;
0105_031437.jpg


After;
0105_031931.jpg
Kod:
Arat: def __AdjustAttrMaxWidth(self, attrSlot): Bloğu komple değiştir:     def __AdjustAttrMaxWidth(self, attrSlot):         if 0 == attrSlot:             return self.toolTipWidth         maxWidth = self.toolTipWidth         for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):             type = attrSlot[i][0]             value = attrSlot[i][1]             # if self.ATTRIBUTE_NEED_WIDTH.has_key(type):                 # if value > 0:                     # maxWidth = max(self.ATTRIBUTE_NEED_WIDTH[type], maxWidth)                     # Bvural41 Fix 05-01-25 # New Cod             attrText = self.AppendTextLine(self.GetAffectString(type, value))             (tW, _) = attrText.GetTextSize()             self.childrenList.remove(attrText)             self.toolTipHeight -= self.TEXT_LINE_HEIGHT             maxWidth = max(tW + 12, maxWidth) # New Cod End         return maxWidth

Not: GetAffectString hatası alan olursa __GetAffectString olarak değiştirsin.
uitooltip.py AttrMaxWidth Hatası ve Düzenlemesi

Metin2 özel sunucularında geliştirme yaparken karşılaşılan birçok GUI ve arayüz hatası vardır. Bunlardan biri de uitooltip.py dosyasında yer alan AttrMaxWidth parametresidir. Bu parametre, araç ipuçlarında (tooltip) gösterilen metinlerin maksimum genişliğini belirler. Ancak bazı durumlarda bu değer eksik veya hatalı tanımlanmış olabilir ki bu da arayüzde taşmalar, eksik metin görüntülemeleri gibi sorunlara yol açar.

Sorun Nedir?

Genellikle uitooltip.py dosyasında bulunan AttrMaxWidth değeri, özellikle büyük fontlar veya uzun metinler kullanıldığında yeterli olmayabilir. Bu durumda, oyuncu üzerine gelindiğinde veya bir eşya incelendiğinde, açıklamaların tamamı görüntülenmez. Bu da kullanıcı deneyimini ciddi anlamda olumsuz etkiler.

Hatanın Belirtileri

  • Araç ipuçlarında metin taşması
  • Eşya açıklamalarının eksik görünmesi
  • Oyuncu isimlerinde kısaltmalar

Nedenleri

Bu hata genellikle aşağıdaki nedenlerden dolayı oluşur:
- AttrMaxWidth değeri sabit ve küçük tutulmuştur.
- UI boyutları farklı çözünürlüklerde değiştiği için bu değer dinamik olarak ayarlanmamıştır.
- Sunucu tarafında özel fontlar veya metin stilleri kullanılmıştır ancak buna uygun genişlik ayarı yapılmamıştır.

Çözüm: uitooltip.py Dosyasında AttrMaxWidth Düzenlemesi

Aşağıdaki adımları takip ederek bu hatayı çözebilirsiniz:

1. uitooltip.py dosyasını açın.
2. AttrMaxWidth ifadesini bulun.
3. Varsayılan değeri genellikle 200 civarındadır. Bunu 300 veya daha yüksek bir değere yükseltin.

Örnek:
Kod:
[B]self.toolTip.SetMaxWidth(200)[/B]

Yukarıdaki satırı şu şekilde güncelleyin:
Kod:
[B]self.toolTip.SetMaxWidth(300)[/B]


Ekstra İpuçları

Eğer sunucunuzda farklı çözünürlüklerde oynayan oyuncular varsa, bu değeri dinamik olarak ayarlamak daha iyi olabilir. Örneğin, ekran çözünürlüğüne göre max genişliği hesaplayan bir fonksiyon yazabilirsiniz:

Kod:
def GetDynamicMaxWidth():[BR][/BR]    screenWidth = app.GetScreenWidth()[BR][/BR]    return screenWidth * 0.3


Metin2 Lobby olarak bu gibi hataların çözümüne yönelik kaynaklar sunmaya devam ediyoruz. Daha fazla C++, Python ve GUI tabanlı sistem geliştirmek isterseniz sitemizi takip etmeye devam edin.


Fixing uitooltip.py AttrMaxWidth Issue

While developing Metin2 private servers, several GUI and interface errors can occur. One of these issues is related to the AttrMaxWidth parameter in the uitooltip.py file. This parameter determines the maximum width of texts shown in tooltips. However, in certain cases, this value might be insufficient or incorrectly defined, leading to overflow or incomplete text display in the interface.

What Is The Problem?

Often, the AttrMaxWidth value found in the uitooltip.py file is not sufficient when large fonts or long texts are used. In such cases, when hovering over a player or inspecting an item, the full description may not be displayed, which negatively impacts the user experience.

Symptoms of the Error

  • Text overflow in tooltips
  • Incomplete item descriptions
  • Shortened player names

Causes

This error typically occurs due to the following reasons:
- The AttrMaxWidth value is set too low or fixed.
- UI dimensions change with different resolutions but this value is not adjusted dynamically.
- Custom fonts or text styles may be in use on the server, but appropriate width settings were not applied accordingly.

Solution: Editing AttrMaxWidth in uitooltip.py

You can fix this issue by following these steps:

1. Open the uitooltip.py file.
2. Locate the AttrMaxWidth expression.
3. The default value is usually around 200. Increase this to 300 or higher.

Example:
Kod:
[B]self.toolTip.SetMaxWidth(200)[/B]

Update the above line to:
Kod:
[B]self.toolTip.SetMaxWidth(300)[/B]


Additional Tips

If your server has players playing at various screen resolutions, it might be better to adjust this value dynamically. For instance, you can write a function that calculates the max width based on the screen resolution:

Kod:
def GetDynamicMaxWidth():[BR][/BR]    screenWidth = app.GetScreenWidth()[BR][/BR]    return screenWidth * 0.3


Metin2 Lobby continues to provide resources for fixing such errors. If you want more C++, Python, and GUI-based system development tips, keep following our site.
 

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

Benzer konular

Geri
Üst Alt