Çözüldü Uzaktan mağaza problemi

  • Konuyu açan Konuyu açan DeadLyEscaPe
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 7
  • Gösterim Gösterim 768
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ı.

DeadLyEscaPe

Üye
Üye
Mesaj
441
Çözümler
28
Beğeni
106
Puan
474
Ticaret Puanı
0
Merhaba. Bu sistemle ilgili bir sorunum var. Kısaca görselle anlatmak istiyorum.

Sol taraf: Uzaktan açılmış,
Sağ taraf, NPC tıklayarak açılmış.


Süre ve yukarıdaki market adı problemli. Sebebini biliyorum fakat nasıl çözeceğimi kestiremedim.
Marketi source tarafından shop->AddGuest(ch, 0, false); şeklinde açıyor. Sağ taraftaki market ise açıldıktan sonra süreyi ve yang verisini packtan çekiyor.
Bu konuyu ekleyen herkeste böyledir büyük ihtimalle. Bu sistemin başka kodlanmış hali de var. Durda isimli bir arkadaş paylaşmış. Onda da böyle olur mu acaba?

Eklenen konu:
Linkleri görebilmek için giriş yap veya kayıt ol.


Adsız.webp
 
Çözüm
Uzaktan mağaza sisteminde açılan dükkandan, rakip oyuncunun dükkanından eşya alırmışçasına sorgu gelmesi ve LIMIT_TYPE ve Value0'dan süre çeken eşyaların süreleri 0 gözükme sorununu çözebildim.

Ek: Bazı mob target, giftbox info, ticaret camı sistemlerinde de süre sıfırlanma problemi vardı. Büyük ihtimalle o da çözülmüştür.

shop.py:
Genişlet Daralt Kopyala
def UnselectItemSlot(self, selectedSlotPos): içerisinde,

if shop.IsPrivateShop(): arat ve değiştir:

if shop.IsPrivateShop() and not shop.IsMainPlayerPrivateShop() == False:

uitooltip.py:
Genişlet Daralt Kopyala
def SetShopItem(self, slotIndex): içerisinde,

Arat:
        self.AppendPrice(price)
  
Değiştir:
        #self.AppendPrice(price)

        ################
        self.ClearToolTip()
        for j in range(item.LIMIT_MAX_NUM)...
uzaktan npc pazarmış gibi açılır yani privateshop. dükkan yazması ve fiyatının öyle gözükmesi normal.
 
shop_manager.cpp dosyasındaki

C++:
Genişlet Daralt Kopyala
bool CShopManager::StartShopping

Fonksiyonu baz alınarak uyarlama yapılabilir diye düşünüyorum. Sistem bende ekli olmadığı için deneme şansım yok ama bir göz at istersen.
Normalde NPC lere tıklandığında shopun açılma olayı bu fonksiyon üzerinden gerçekleşiyor.
 
shop_manager.cpp dosyasındaki

C++:
Genişlet Daralt Kopyala
bool CShopManager::StartShopping

Fonksiyonu baz alınarak uyarlama yapılabilir diye düşünüyorum. Sistem bende ekli olmadığı için deneme şansım yok ama bir göz at istersen.
Normalde NPC lere tıklandığında shopun açılma olayı bu fonksiyon üzerinden gerçekleşiyor.

Sonunda konuyla alakalı çözüm odaklı bir öneri. Teşekkür ederim bakacağım :)
 
Uzaktan mağaza sisteminde açılan dükkandan, rakip oyuncunun dükkanından eşya alırmışçasına sorgu gelmesi ve LIMIT_TYPE ve Value0'dan süre çeken eşyaların süreleri 0 gözükme sorununu çözebildim.

Ek: Bazı mob target, giftbox info, ticaret camı sistemlerinde de süre sıfırlanma problemi vardı. Büyük ihtimalle o da çözülmüştür.

shop.py:
Genişlet Daralt Kopyala
def UnselectItemSlot(self, selectedSlotPos): içerisinde,

if shop.IsPrivateShop(): arat ve değiştir:

if shop.IsPrivateShop() and not shop.IsMainPlayerPrivateShop() == False:

uitooltip.py:
Genişlet Daralt Kopyala
def SetShopItem(self, slotIndex): içerisinde,

Arat:
        self.AppendPrice(price)
  
Değiştir:
        #self.AppendPrice(price)

        ################
        self.ClearToolTip()
        for j in range(item.LIMIT_MAX_NUM):
            (limitType, limitValue) = item.GetLimit(j)

            if item.LIMIT_REAL_TIME == limitType:
                metinSlot[0] = limitValue + app.GetGlobalTimeStamp()
          
            metinSlot[2] = item.GetValue(0)


        self.AddItemData(itemVnum, metinSlot, attrSlot)
        self.AppendPrice(price)
        self.ShowToolTip()

Arat:
def SetItemToolTip(self, itemVnum): içerisinde,

Tekrar arat:
self.AddItemData(itemVnum, metinSlot, attrSlot)

Yukarısına ekle:
        for j in xrange(item.LIMIT_MAX_NUM):
            (limitType, limitValue) = item.GetLimit(j)

            if item.LIMIT_REAL_TIME == limitType:
                metinSlot[0] = limitValue + app.GetGlobalTimeStamp()
          
            metinSlot[2] = item.GetValue(0)
 
Son düzenleme:
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst