Çözüldü Kostüm Süre Sorunu

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ı.

Kaiser

⋞ 〈 ☪ 〉 ⋟
Site yetkilisi
Admin
Premium Üye
Geliştirici
Yardımsever Üye
Mesaj
3.696
Çözümler
345
Beğeni
3.588
Puan
1.849
Ticaret Puanı
0
Merhaba, kostümlerin süreleriyle ilgili şöyle bir sorun yaşıyorum:

Süreler bozuk görünüyor:
Adsız.jpg


ve öğretmenlerde ise "Onu Kullanamazsın." yazıyor. (ancak alıp kullanılabiliyor)

ss.jpg


Herhangi bir syserr yok. Protolarda süreler doğru ayarlı. Bu sorun COSTUME olan tüm itemlerde mevcut maalesef..
 
Çözüm
enum eşitsizliğinden olabilir başıma gelmişti eğer client ve game sourcenden pcbang kaldırdıysan olmuştur bu
enum ELimitTypes gibi bişeydi enum ismi içine herhangibi filesten doğru sıralamayı yaparsan düzelir sanırım
uitooltip kodlarınızı paylaşır mısınız?
 
Kodların hepsine gerek yoktu aslında. Sadece o kısımı ilgilendiren kodlar olsaydı yeterliydi. Şu kısım bizim ilgi alanımıza giriyor.
Python:
    def AppendTimerBasedOnWearLastTime(self, metinSlot):
        if 0 == metinSlot[0]:
            self.AppendSpace(5)
            self.AppendTextLine(localeInfo.CANNOT_USE, self.DISABLE_COLOR)
        else:
            endTime = app.GetGlobalTimeStamp() + metinSlot[0]
            self.AppendMallItemLastTime(endTime)

NPC'lerde süreli item olunca zaten süre bilgisi sıfır olarak gözükür. Bu kodda veri yoksa onu kullanamazsın diye uyarı ekliyor.
Karaktere itemi aldıktan sonra sürenin neden bozuk gözüktüğü konusunda bir fikrim yok. Herhangi bir düzenleme mi buna sebep oldu acaba?

Sürelerin eklendiği kod ise şu AddItemData fonksiyonu içerisinde yer alan şu kod;
Python:
            elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
                self.AppendTimerBasedOnWearLastTime(metinSlot)
                #dbg.TraceError("1) REAL_TIME flag On ")
 
Kodların hepsine gerek yoktu aslında. Sadece o kısımı ilgilendiren kodlar olsaydı yeterliydi. Şu kısım bizim ilgi alanımıza giriyor.
Python:
    def AppendTimerBasedOnWearLastTime(self, metinSlot):
        if 0 == metinSlot[0]:
            self.AppendSpace(5)
            self.AppendTextLine(localeInfo.CANNOT_USE, self.DISABLE_COLOR)
        else:
            endTime = app.GetGlobalTimeStamp() + metinSlot[0]
            self.AppendMallItemLastTime(endTime)

NPC'lerde süreli item olunca zaten süre bilgisi sıfır olarak gözükür. Bu kodda veri yoksa onu kullanamazsın diye uyarı ekliyor.
Karaktere itemi aldıktan sonra sürenin neden bozuk gözüktüğü konusunda bir fikrim yok. Herhangi bir düzenleme mi buna sebep oldu acaba?

Sürelerin eklendiği kod ise şu AddItemData fonksiyonu içerisinde yer alan şu kod;
Python:
            elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
                self.AppendTimerBasedOnWearLastTime(metinSlot)
                #dbg.TraceError("1) REAL_TIME flag On ")
Herhangi bir saçı NPC den çekince envantere geldiğinde yine "Onu kullanamazsın" diye yazıyor. Takıp geri çıkarınca o uyarı kayboluyor ve bu bozuk süre görünmeye başlıyor. Sorun büyük ihtimalle c++ taraflı ama bulamadım nedenini..
 
Taktıktan sonra sürenin işlemesi protolarda tanımlanan REAL_TIME_FIRST_USE değerinden kaynaklı. İtemi kullanana kadar süre işlemeyecek. Kullandıktan sonra işlenmeye devam edecek.

Normal şartlarda kalan süreyi göstermesi lazım. Galiba yaptığınız bir düzenlemeden dolayı bu sorun oluşmuş olabilir. Kendim oyuna girip itemi aldığımda sonuç;
1009_154428.jpg


GM komutu ile aldım belki bu yüzden doğru çalışıyor olabilir. Tam emin değilim. Siz de gm komutu ile almayı dener misiniz?
 
Taktıktan sonra sürenin işlemesi protolarda tanımlanan REAL_TIME_FIRST_USE değerinden kaynaklı. İtemi kullanana kadar süre işlemeyecek. Kullandıktan sonra işlenmeye devam edecek.

Normal şartlarda kalan süreyi göstermesi lazım. Galiba yaptığınız bir düzenlemeden dolayı bu sorun oluşmuş olabilir. Kendim oyuna girip itemi aldığımda sonuç;
8100 eklentisini görüntüle

GM komutu ile aldım belki bu yüzden doğru çalışıyor olabilir. Tam emin değilim. Siz de gm komutu ile almayı dener misiniz?
Maalesef gm komutu ile denediğimde de sonuç aynı.. Muhtemelen yaptığım bir düzenlemeden sonra böyle oldu ama bu konuyla bağlantılı olan yer neresi emin değilim. Mesela ;

Python:
def AppendTimerBasedOnWearLastTime(self, metinSlot):
        if 0 == metinSlot[0]:
            self.AppendSpace(5)
            self.AppendTextLine(localeInfo.CANNOT_USE, self.DISABLE_COLOR)
        else:
            endTime = app.GetGlobalTimeStamp() + metinSlot[0]
            self.AppendMallItemLastTime(endTime)

Buradaki metinSlot[0] kısmı, c++ da nereyle bağlantılı acaba?
 
char_item.cpp;
CHARACTER::UseItemEx

item.cpp;
CItem::StartRealTimeExpireEvent()

fonksiyonlarını inceleyebilirsiniz. Bence önceki yedekler geri dönüyorsa bakıp kontrol edebilirsiniz. En azından hangi düzenlemenin bu soruna sebep olduğunu bulabilirsiniz. Çünkü bunun birde protoların ve item tabloların okunma aşaması da var. Bir sürü sebebi olabilir yani.
 
char_item.cpp;
CHARACTER::UseItemEx

item.cpp;
CItem::StartRealTimeExpireEvent()

fonksiyonlarını inceleyebilirsiniz. Bence önceki yedekler geri dönüyorsa bakıp kontrol edebilirsiniz. En azından hangi düzenlemenin bu soruna sebep olduğunu bulabilirsiniz. Çünkü bunun birde protoların ve item tabloların okunma aşaması da var. Bir sürü sebebi olabilir yani.
İki fonksiyonu da inceledim, içlerinde son zamanlarda yaptığım bir düzenleme yok. Sadece 1-2 sistem kodları var ve onlar da uzun zaman önce eklenmişti zaten yani onlardan kaynaklı değil.
 
enum eşitsizliğinden olabilir başıma gelmişti eğer client ve game sourcenden pcbang kaldırdıysan olmuştur bu
enum ELimitTypes gibi bişeydi enum ismi içine herhangibi filesten doğru sıralamayı yaparsan düzelir sanırım
 
Çözüm
enum eşitsizliğinden olabilir başıma gelmişti eğer client ve game sourcenden pcbang kaldırdıysan olmuştur bu
enum ELimitTypes gibi bişeydi enum ismi içine herhangibi filesten doğru sıralamayı yaparsan düzelir sanırım
Bahsettiğiniz enum u kontrol ettim. Evet pcbang i kaldırmıştım ama şu an her iki tarafta da enum ELimitTypes satırları birebir aynı.
 
tekrar ekle düzelicek sebebini bilmiyorum ama çözümü bu

ordan pcbangı kaldırınca bütün limitler karışıyo
eski galine getirmen yeterli
Teşekkürler, şu an yarım olsa da düzeldi. Envanterde var olan kostümlerin süresi düzeldi ancak gm kodu ile tekrar envantere alınca kostüm süresi 0 dakika oluyor. Takınca da 0 dakika yazmaya devam ediyor.
 
Teşekkürler, şu an yarım olsa da düzeldi. Envanterde var olan kostümlerin süresi düzeldi ancak gm kodu ile tekrar envantere alınca kostüm süresi 0 dakika oluyor. Takınca da 0 dakika yazmaya devam ediyor.
hem client hem gamede aynısını yaptıysan bide item protoda hata yoksa sorun farklı bende bu sorun olmamıştı sadece süreleri resimlerdeki gibiydi ekleyince düzeldi
peki sırasını doğru ekledinmi bi bak derim herhangibi martysama filesten bakarak enumu düzeltiesen düzelir beşki
 
hem client hem gamede aynısını yaptıysan bide item protoda hata yoksa sorun farklı bende bu sorun olmamıştı sadece süreleri resimlerdeki gibiydi ekleyince düzeldi
peki sırasını doğru ekledinmi bi bak derim herhangibi martysama filesten bakarak enumu düzeltiesen düzelir beşki
Filesin ilk halinin yedeğinden bakarak ekledim.
Protolar düzgün bundan eminim çünkü önceden sapasağlam çalışıyordu bütün kostümler. Bu sefer sorun muhtemelen uitooltip den kaynaklı.. akşam eve geçtiğimde inceleyip son durumu belirteceğim.
 
Son durum:
1- Yeni aldığım kostümlerin süreleri 0 dakika oluyor.
2- Var olan kostümlerin süresi düzelmişti, onların da süresi bitmiş ve 0 dakika olarak kalmış yani kaybolmamışlar.

Düzenleme: Yedeklere döndüm ve sorun çözüldü. Neyse ki çok fazla kaybım yok. Yardımcı olan herkese teşekkürler.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst