Çözüldü Oyun içi Shop Penceresi Geçişleri Hk.

  • Konuyu açan Konuyu açan viquality
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 9
  • Gösterim Gösterim 643
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

viquality

Üye
Üye
Mesaj
38
Beğeni
20
Puan
306
Ticaret Puanı
0
Merhabalar Üstadlar, aklıma takılan bir konu bunu gerek python gerek c++ tarafında ufak bir düzeltmeyle yapabileceğimi düşündüm fakat bir türlü yapamadım.

Tecrübesi olan arkadaşlar yardımcı olabilir ise ; yapmaya çalıştığım şey oyun içersinde pazarları gezerken, farklı bir pazara tıklamak ve içeriğine göz atmak için bir önceki pazarın penceresini kapatmanız gerekiyor bildiğiniz gibi.
Bunu otomatik olarak yapmak istiyorum, yani hangi pazara tıklarsanız tıklayın o pazarın penceresi açılacak ve ondan önceki pencereyi kapatmak zorunda kalmayacaksınız.
Tabi demek istediğim birden fazla pencere değil tabi. Bir önceki pencerenin kapanması ve yerini yeni pencerenin alması. Teşekkürler..
 
Aslında yapması basit bi işlem. Bu işlemi gerçekleştirince güvenlik sorunu olabilir mi bilmiyorum ama normalde her ticaret penceresi açtıktan sonra 10snlik bekleme süresi oluyor. Bu da oyunda item kopyalamanın önüne geçiyor. Yine de yapmak istiyorsanız sırasıyla şu adımları uygulayınız.
Not: Kodlar test edilmemiştir. Sorununuza yanıt olması bakımından oyun kodlarını inceledikten sonra böyle bi mantık uydurdum.

root/uiPrivateShopBuilder.py dosyasında class PrivateShopAdvertisementBoard(ui.ThinBoard): sınıfı içerisinde arat;
Python:
Genişlet Daralt Kopyala
    def __init__(self):
        ui.ThinBoard.__init__(self, "UI_BOTTOM")
        self.vid = None
        self.__MakeTextLine()

Altına ekle;
Python:
Genişlet Daralt Kopyala
        self.interface = None


Arat;
Python:
Genişlet Daralt Kopyala
    def Open(self, vid, text):
Üstüne ekle;
Kod:
Genişlet Daralt Kopyala
    def BindInterface(self, interface):
        self.interface = interface

Arat;
Python:
Genişlet Daralt Kopyala
        net.SendOnClickPacket(self.vid)

Üstüne ekle;
Python:
Genişlet Daralt Kopyala
       self.interface.CloseShopDialog()

root/interfaceModule.py dosyasında arat;
Python:
Genişlet Daralt Kopyala
    def AppearPrivateShop(self, vid, text):
        board = uiPrivateShopBuilder.PrivateShopAdvertisementBoard()
        board.Open(vid, text)
        self.privateShopAdvertisementBoardDict[vid] = board

Değiştir
Python:
Genişlet Daralt Kopyala
    def AppearPrivateShop(self, vid, text):
        board = uiPrivateShopBuilder.PrivateShopAdvertisementBoard()
        board.BindInterface(self)
        board.Open(vid, text)
        self.privateShopAdvertisementBoardDict[vid] = board
 
@Whistle
Şöyle bir şey yapılabilir mi? Benim de aklıma şu mantık geldi.

Pazar açma kodunun içine açma işleminden hemen önce kapatma değişkenin çağırsak? Yani açmak için tıkladığımızda aynı zamanda halihazırda açık olan pazar penceresinin X kısmına da otomatik olarak bastırmış olacağız. Sonrasında pazar açma kodu çalışacak. Eğer bu mümkünse belki işe yarayabilir.
 
Son düzenleme:
@Yenicerii bende böyle bi mantık kurdum. Ama pratikte nasıl olur bilmem. Mesajda yazdığım kodlar bu işlevi gerçekleştiriyor.

Hocam bunu offlineshop uyarlı yaptım fakat aynı yine. Herhangi bir hatada olmuyor.
Normal pazarda deneyin. Olursa offshop içinde uyarlarsanız. :)
 
@Yenicerii bende böyle bi mantık kurdum. Ama pratikte nasıl olur bilmem. Mesajda yazdığım kodlar bu işlevi gerçekleştiriyor.


Normal pazarda deneyin. Olursa offshop içinde uyarlarsanız. :)

Uyarladım başarıyla çalışıyor. Hocam fakat self.vid doğru olmasına rağmen itemleride güncellemesine rağmen offlineshoptan item alınamıyor. Yani doğru item id göremiyor ve oyun tepki vermiyor. Sanki değer null dönüyormuş gibi. En azından itemi satın alırken yetersiz yang demesi yada satın alması lazım.
 
Piyasada bir sürü offlineshop sistemi bulunuyor. Kendi sisteminize göre uyarlamanız gerekiyor. Yalnız tekrardan söylemek gerekiyor sanırsam. Bu şekilde bi düzenleme oyunda item kaybına veya kopyalanmasına sebep olabilir.
 
Piyasada bir sürü offlineshop sistemi bulunuyor. Kendi sisteminize göre uyarlamanız gerekiyor. Yalnız tekrardan söylemek gerekiyor sanırsam. Bu şekilde bi düzenleme oyunda item kaybına veya kopyalanmasına sebep olabilir.
Teşekkür ederim tekrardan uyarlamaya çalışacağım yazınızın faydası oldu. İtem kopyalanması bana imkansız gibi geliyor sonuçta pencereyi manuel kapatmak yerine python ile kapatıyoruz. Sonuçta pack bir başkası tarafındanda düzenlenebilir. Source taraflı birşey yapmadığımız sürece sıkıntı olmaz gibi ama yinede size sormak isterim gördüğünüz herhangi bir mantık hatası yada olası durum varsa belirtmekten çekinmeyin. Sonuçta bunu biz istiyoruz sistemsel hatalar elbette olabilir.
 
Edit: Sorun çözülmüştür. Whistle hocama ve fikrini belirten arkadaşlara teşekkürler tekrardan.

if FALSE != self.dlgOfflineShop.IsShow(): ile kontrol sağlayarak problemi giderdim.
 
Oyunda düzenlemeler yapmadan önce kodları inceleyip ona göre mantık yürütmek doğru olacaktır. @Yenicerii 'nin bu konuya yazdığı yorum örnek olarak gösterilebilir. Doğru mantığı kurduktan sonra ise incelediğiniz kodlardan yola çıkarak düzenlemeleri yapabilirsiniz. Bu şekilde oyunda istediğiniz düzenlemeleri rahatlıkla yapabilirsiniz. Eğer takıldığınız başka şeyler olursa sitemizde yardım konusu açmaktan çekinmeyiniz.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst