Mob Target Info (Drop Info) ScrollBar Fix + MouseWheel (Mouse Tekerleği ile Kaydırma)

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Herkese Selam,

Konu ile ilgili hiç bir yabancı forumda ya da Türk forumunda paylaşılan fixlerin işe yaramadığını, halen insanların problem yaşadığını gördüm.
Bende de sorun olduğunu fark edince, dedim bunu bir düzeltelim. Bu böyle olmaz.

Öncelikle problemin çoğunlukla MartySama alt yapılarda mevcut olduğu söyleniyor.

İlgili sorun nasıl yaşanıyor?

İçeriği dolu, scroolbar gözüken bir metin ya da slot drobuna bakın ve ardından içeriğinde bir şey olmayan ya da scroolbar gerekecek kadar eşya olmayan bir slota bakın.
Karşılaşacağınız ekran bu ;

159143_b60fa21428aa4a7acaa64eb4a5e2e38b.png

Şimdi güzel güzel ilerleyelim, hem bu durumu düzeltelim hem de ScrollBar için MouseWheelEvent (Mouse tekerleği ile kaydırma) aktif edelim.


Tüm işlemler root/uitarget.py dosyası içerisinde yapılmaktadır!
Aratın ;

Kod:
def __init__(self):                 ui.ThinBoard.__init__(self)                 self.HideCorners(self.LT)                 self.HideCorners(self.RT)                 self.HideLine(self.T)                 self.race = 0                 self.hasItems = False                 self.itemTooltip = uiToolTip.ItemToolTip()                 self.itemTooltip.HideToolTip()                 self.stoneImg = None                 self.stoneVnum = None                 self.lastStoneVnum = 0                 self.nextStoneIconChange = 0

Altın Ekleyin ;

Kod:
self.children = [*]                 self.scrollBar = None

Aratın ;

Kod:
def __LoadInformation(self, race):                 self.yPos = 7

Altına Ekleyin ;

Kod:
for child in self.children:                     if isinstance(child, ui.ListBoxExNew):                         if child.scrollBar:                             child.scrollBar.Hide()                     child.Hide()                     child.Destroy()

def __LoadInformation_Drops(self, race): içerisinde aratın ; (hemen def AppendTextLine(self, text): üstünde olacak)

Kod:
else:                     self.AppendTextLine(localeInfo.TARGET_INFO_NO_ITEM_TEXT)


Altın Ekleyin (MouseWheel) ;

Kod:
def OnRunMouseWheel(self, nLen):                 if self.scrollBar:                     if nLen > 0:                         self.scrollBar.OnUp()                     else:                         self.scrollBar.OnDown()

Aratın ;

Kod:
def __Initialize(self):         self.nameString = ""         self.nameLength = 0         self.vid = 0

Altına Ekleyin ;

Kod:
if app.ENABLE_SEND_TARGET_INFO:             self.vnum = 0

Eğer yoksa şunu da ekleyebilirsiniz (opsiyonel) yukarıdaki eklediğimiz şeyin altında bu olacak (self.isShowButton = False) bunun altına şunu ekleyin ;
Kod:
#Fix         self.showingButtonList = [*]         #


Konu çözüldüğüne göre ben yatıyorum herkese iyi geceler.

Buradan biricik sevdiğim ya,
Hayatımı değiştiren e,
İlk yönetim kavgam (Manav) 'a,
ve yalakalık yapmak için etiketlediğim e selam olsun. (Belki süper mod ya da yöneticiye terfi ettirir, belki de forumun hissesinin %51'ini vermek ister diye)

(Herkes yapıyor diye özendim, taşlamayın)


Mob Target Info (Drop Info) ScrollBar Fix + MouseWheel (Mouse Tekerleği ile Kaydırma)

Metin2 özel sunucularında kullanıcı deneyimini artırmak için birçok küçük ama önemli sistem geliştirmesi yapılabilir. Bu sistemlerden birisi de 'Mob Target Info' yani Canavar Hedef Bilgi panelidir.

Bu panel, oyuncunun bir canavara tıklaması durumunda o canavar hakkında detaylı bilgi verir. Bu bilgi genellikle canavarın ismi, seviyesi, canı, zırhı ve düşürdüğü ögeler gibi verileri içerir. Ancak standart sistemde bu panel sabit kalır ve fazla sayıda düşürülebilir eşya olduğunda panel taşabilir veya okunması zorlaşabilir.

Scrollbar Fix Nedir?

Scrollbar Fix, yani Kaydırma Çubuğu Düzeltmesi, bu panelin yüksekliğini aşan içerikler için dikey bir kaydırma çubuğu eklemeyi sağlar. Bu sayede tüm düşürme bilgileri ekrana sığdırılmak zorunda kalmaz. Oyuncu fare tekerleği ile kolayca yukarı ve aşağı kaydırabilir.

MouseWheel (Fare Tekerleği) Desteği

Bu sistem aynı zamanda fare tekerleği desteğiyle entegre çalışır. Panel açıkken fare imleci üzerindeyken tekerlek hareketi algılanır ve içerik dikey olarak kaydırılır. Bu, kullanıcı dostu bir arayüz sunar ve hızlı bilgi erişimi sağlar.

Kurulum ve Uygulama Yöntemi

Bu sistemin uygulanabilmesi için uiscript dosyalarında değişiklik yapılması gerekir. Özellikle target_info.py veya benzeri bir dosya üzerinde çalışılır. Burada bir scrollbar nesnesi tanımlanır ve fare tekerleği olayları dinlenir. Bu işlem sırasında Python GUI sistemleri kullanılır.

Ayrıca py root ve game core yapıları üzerinden fare olayları yakalanarak, kullanıcı panel üzerindeyken tekerleğe bastığında içerik otomatik olarak kaydırılır.

Dikkat Edilmesi Gerekenler

• Bu sistem sadece client src tarafında çalışır ve sunucu tarafında bir değişiklik gerektirmez.
Martysama ve diğer C++ tabanlı sistemlerle uyumlu çalışması için dikkatli entegrasyon gerekir.
UIscript dosyasında yapılan değişikliklerin doğru sıralamaya ve yapılandırmaya sahip olması gerekir ki sistem çakışmaları önlenir.

Neden Bu Sistem Kullanılmalı?

Oyuncuların moblar hakkında daha fazla bilgiye kolayca ulaşabilmesi, PVP ve PVE oyun stratejilerini geliştirebilir. Özellikle Metin2 özel sunucularında bu tür kullanıcı arayüzü iyileştirmeleri, oyuncu memnuniyetini artırır ve sunucunuzun rakiplerinden fark yaratmasını sağlar.

Bu sistem hem Metin2 Lobby kullanıcıları hem de diğer Metin2 Development platformları için değerli bir araçtır. C++ system, Py GUI, source edit gibi alanlarda çalışan geliştiriciler için örnek alınabilecek bir sistemdir.


Mob Target Info (Drop Info) ScrollBar Fix + MouseWheel (Scroll with Mouse Wheel)

In Metin2 private servers, many small but important system improvements can be made to enhance user experience. One of these systems is the 'Mob Target Info' panel, which displays detailed information about a monster when clicked by the player.

This panel typically shows data such as the monster's name, level, health, armor, and items dropped. However, in the standard system, this panel remains static and may overflow or become difficult to read if there are too many droppable items.

What Is ScrollBar Fix?

ScrollBar Fix adds a vertical scroll bar to the panel for content exceeding its height. This way, all drop information does not have to be crammed into the visible area. Players can easily scroll up and down using the mouse wheel.

MouseWheel Support

This system also works integrated with mouse wheel support. When the panel is open and the mouse cursor is over it, wheel movement is detected and the content scrolls vertically. This provides a user-friendly interface and allows for quick access to information.

Installation and Application Method

To apply this system, modifications must be made in uiscript files. Specifically, work is done on files like target_info.py. Here, a scrollbar object is defined and mouse wheel events are listened to. During this process, Python GUI systems are used.

Additionally, through py root and game core structures, mouse events are captured so that when the user scrolls while hovering over the panel, the content automatically scrolls.

Important Considerations

• This system runs only on the client src side and requires no server-side changes.
• It needs careful integration to be compatible with Martysama and other C++ based systems.
• Modifications in UIscript files must follow correct ordering and configuration to avoid conflicts.

Why Should You Use This System?

Allowing players to easily access more information about mobs can improve their PVP and PVE strategies. Particularly in Metin2 private servers, such UI improvements increase player satisfaction and help differentiate your server from competitors.

This system is valuable for both Metin2 Lobby users and other Metin2 Development platforms. It serves as a reference system for developers working in areas like C++ system, Py GUI, source edit, etc.​
 

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

Benzer konular

Geri
Üst Alt