GUI Butonları İle Quest Çalıştırma

Whistle

Ruhsuz Filozof
Site yetkilisi
Kurucu
Kurumsal Üye
Geliştirici
Yardımsever Üye
Mesaj
11.565
Çözümler
551
Beğeni
12.233
Puan
5.915
Ticaret Puanı
2
Merhaba arkadaşlar,
Normalde 5. ünitede bu konuyu anlatacaktım ama şöyle bi yardım konusu açıldığından dolayı bekletmemek için yazılı bi rehber paylaşma kararı aldım.
Yardım - Python Butonu Queste bağlamak?

Başlamadan önce dikkat;
Bu konuda yazılanları anlamak için Metin2 Geliştirici Eğitimi 5. üniteyi ve 4. üniteyi izlemeniz gerekmektedir.
Eğitimlerin konusu: Metin2 Geliştirici Eğitimi Video Serisi

Tuş oluşturmayı filan anlatmayacağım için nasıl oluşturulacağını öğrenmek istiyorsanız bunu izleyin;


Giriş kısmında tüm dediklerimi uyguladıysanız artık bu konuya devam edebilirsiniz. Buton ile questleri tetiklemek için ilk önce tetikleyeceğiniz questten qid değerini almamız gerekiyor.
Örnek;
Lua (Quest):
quest yaziyazdir begin
    state start begin
        when login begin
            cmdchat("yaziyazdir "..q.getcurrentquestindex())
        end

        when button or info begin
            syschat("Bu benim ilk Lua to Python uygulamam. MMO Tutkunları")
        end
    end
end

Bunu yazdıktan sonra root/constInfo.py dosyasına bir sabit oluşturun;
Python:
MMOTUTKUNLARI_YAZI_YAZDIR = 0

Daha sonra cmdchat komutu ile gelen verileri alabilmek için root/game.py altında düzenleme yapmamız gerekiyor.
Aratın;
Python:
def __ServerCommand_Build(self):

Kod içinde diziler olacak. Müsahit bir yere yeni bir tane oluşturun. Örnek;
Python:
            "yaziyazdir"        : self.__MMOTutkunlariYaziYazdir,

Daha sonra game.py en alt kısımlara bir yere fonksiyonumuzu tanımlıyoruz.
Python:
    def __MMOTutkunlariYaziYazdir(self, qid):
        constInfo.MMOTUTKUNLARI_YAZI_YAZDIR = int(qid)


Bu şekilde oyuna her giriş yaptığınızda tuş ile tetiklemek istediğiniz questin id değerini alabileceksiniz. Farklı yöntemler ile de idler alınır ama geleneksel kullanım bu şekilde. Bundan gerisi artık yapacağınız sisteme göre butonlara event aktarmak.
Anlayabilmeniz için devam edelim...
Python:
self.yaziYazdirBtn = self.GetChild("MMOTutkunlariYaziYazdirBtn")
Python:
self.yaziYazdirBtn.SetEvent(ui.__mem_func__(self.MMOTutkunlariYaziYazdir))

Python:
    def MMOTutkunlariYaziYazdir(self):
        qid = constInfo.MMOTUTKUNLARI_YAZI_YAZDIR
        event.QuestButtonClick(qid)

Artık butona tıkladığınızda quest çalışacak. Bu rehber konusu için basit bi uygulama anlattım. Tuşa tıkladığınız zaman chatte yazı yazacak.
 
konudaki işlemleri anlıyamadığım için farklı bir kaynaktan bakarak yaptım.
buton işlevsiz oluyor. Yorum yaparak üstteki konuyu yapmaya çalıştım buton yine işlevsiz oldu.

Benzeri olan konuları araştırdım net birşey bulamadım.

Örnek alabiliceğim bir ufak yazılmış python var mı kendime göre uyarlayabileceğim. Fazla ayrıntısı olmayan.

istiyen olursa gerekli py dosyalarını atarım kendiside dener bir hata syserr almıyorum buton işlevsiz oluyor.
 
Konudaki videoyu izleyerek butonların nasıl eklendiğini öğrenebilirsiniz
 
Videoyu aktif ettim. Sayfayı yenileyiniz. :)
 
keşke daha çok python örnekleri yada udemy videoları gelse harika olur.oyunun python ve C kısmı çok önemli bu ikisi üzerinde daha çok durulmalı
 
Geri
Üst