Bonus Tablosu

ULTRASLAN()uA

Level 3
Katılım
17 May 2012
Konular
37
Mesajlar
219
Online süresi
2ay 3g
Reaksiyon Skoru
61
Altın Konu
0
Başarım Puanı
126
TM Yaşı
13 Yıl 11 Ay 10 Gün
MmoLira
1,215
DevLira
15

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Merhaba herkese kolay gelsin bonus tablosu sistemi kurdum karakter ekranından değilde tuş ile (f6) ya atadım. Gayet stabil çalışıyor açılıyor esc ile kapanıyor çarpıdan kapanıyor ama tekrardan f6 ya basınca kapanmıyor bir tepki vermiyor nasıl yapabiliriz onu bilgisi olan var mı ?

Birde efsunların üstüne geldiğimizde tooltip çıkmıyor herhangi bir syserr de vermiyor.

////F6 ile kapamayı çözdüm sadece tooltip sorunu kaldı

 
Son düzenleme:
Bonus tablosunda efsunların üzerine gelince tooltip çıkmaması ve syserr vermemesi, UI script'inizde mouse-over event'lerinin (olaylarının) eksik olduğunu gösterir. Arayüze, fare o satırın üzerine geldiğinde ne yapacağını öğretmeniz gerekir.

Adım 1: Bonus Tablosu Script'ini Bulunİstemcinizin (client) root klasörünü açın. İçinde, bu bonus tablosu sistemini yöneten Python dosyasını bulun. Bu dosyanın adı muhtemelen uibonus.py, ui_bonus_table.py veya benzeri bir isimdedir.

Adım 2: UI Elemanlarının Yaratıldığı Yeri BulunBu Python dosyasını açın. İçerisinde, bonusları listeleyen satırların (genellikle bir for döngüsü içinde TextLine veya Button nesnesi olarak) yaratıldığı bir fonksiyon veya kod bloğu bulun.

Adım 3: Eksik Event Komutlarını Ekleyin (Çözüm)O for döngüsünün içine veya her bir bonus satırının yaratıldığı yere, aşağıdaki iki event komutunu eklemeniz gerekmektedir. Bu komutlar, o satıra fareyle etkileşim yeteneği kazandırır.

Örnek olarak, bonus satırını temsil eden nesnenin adının bonus_line olduğunu varsayalım:

Python:
# Döngünün içinde, her bonus satırı (bonus_line) için bu iki satırı ekleyin:
# 'i' veya 'index' o anki bonusun döngüdeki sırasıdır.

bonus_line.SetOverInEvent(ui.__mem_func__(self.__OnMouseOverIn, i))
bonus_line.SetOverOutEvent(ui.__mem_func__(self.__OnMouseOverOut))

Adım 4: Event Fonksiyonlarını Yazın veya Kontrol EdinTabii ki bu event'lerin çalışması için, çağıracakları fonksiyonların da script'te yazılı olması lazım. Script'inizin içinde aşağıdaki gibi iki fonksiyonun bulunduğundan emin olun. Eğer yoksa, bunları sınıfınızın (class) içine ekleyin:
Python:
# Bu fonksiyon, fare bonus satırının üzerine gelince çalışır
    def __OnMouseOverIn(self, index):
        # Eğer tooltip nesnesi yoksa veya görünür değilse, devam etme
        if not self.tooltip:
            return

        # Tooltip'i temizle ve yeni bilgiyi ekle
        self.tooltip.ClearToolTip()
        
        # 'index'i kullanarak doğru bonusun açıklamasını (kaynağını vb.) bir listeden alıp ekleyin
        # Bu kısım sisteminizin yapısına göre değişiklik gösterebilir.
        # Örnek: self.tooltip.AppendTextLine(self.bonus_data[index]["description"])
        # Örnek 2: self.tooltip.AppendTextLine("Bu bonus şuradan geldi: Kask")
        self.tooltip.AppendTextLine("Bonus Açıklaması: %s" % self.bonus_data[index]) # Örnek
        
        self.tooltip.Show()

    # Bu fonksiyon, fare bonus satırının üzerinden çekilince çalışır
    def __OnMouseOverOut(self):
        # Eğer tooltip nesnesi yoksa, devam etme
        if not self.tooltip:
            return
            
        self.tooltip.Hide()

Önemli : __OnMouseOverIn fonksiyonunun içini, kendi bonus verilerinizi tooltip'te gösterecek şekilde düzenlemeniz gerekir. Yukarıdaki, self.bonus_data[index] gibi bir veri yapınız olduğunu varsayan bir örnektir.

Bu adımları uyguladıktan sonra, bonusların üzerine geldiğinizde tooltip'lerin sorunsuz bir şekilde çıktığını göreceksiniz.
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)