Yardım Simya düşmesi

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

DeadLyEscaPe

MT Üye
MT Üye
Mesaj
392
Çözümler
27
Beğeni
98
Puan
454
Ticaret Puanı
0
Merhabalar, simyalar aktifken oyuna girdiğimde (ne zaman oluyor bilmiyorum, muhtemelen simyaların süresi bittiğinde.) simyalar bu şekilde yere düşüyor ve toplanmıyor. Çok fazla eşya taşıyorsun diyor. Nadiren envantere de geldiği oluyor ama genellikle yere düşme problemi var.

1001_011243.jpg

Syserr:
SYSERR: Oct  1 00:51:07 :: EquipTo: EquipTo: invalid wear cell (this: #165466  wearflag: 0 cell: 69)
SYSERR: Oct  1 00:51:07 :: EquipTo: EquipTo: invalid wear cell (this: #135466  wearflag: 0 cell: 66)
SYSERR: Oct  1 00:51:07 :: EquipTo: EquipTo: invalid wear cell (this: #125466  wearflag: 0 cell: 65)
SYSERR: Oct  1 00:51:07 :: EquipTo: EquipTo: invalid wear cell (this: #115466  wearflag: 0 cell: 64)
SYSERR: Oct  1 00:51:07 :: EquipTo: EquipTo: invalid wear cell (this: #145466  wearflag: 0 cell: 67)
SYSERR: Oct  1 00:51:07 :: EquipTo: EquipTo: invalid wear cell (this: #155466  wearflag: 0 cell: 68)
 
item.cpp:
        if (bWearCell >= WEAR_MAX_NUM)
        {
            sys_err("EquipTo: invalid wear cell (this: #%d %s wearflag: %d cell: %d)", GetOriginalVnum(), GetName(), GetWearFlag(), bWearCell);
            return false;
        }
Hata buradan geliyor sanırım, simya öğeleriyle ilgili bir düzenleme yaptın mı hiç? Simya süresi bittiğinde DragonSoul'dan çıkıyor ve else olarak bu kodu döndürüyor. Cell değerleri bir şekilde yüksek geldiği için de false dönüyor olsa gerek.
 
Yeni bir item type yarattıysanız, wear_max değiştirdiyseniz oyuna ilk girişte önceden takılan simyalarda bu sorun oluyor. Eğer farklı bir hata yoksa tekrar aynı sorun yaşanmıyor. Tekrar simyayı takıp devam edebiliyorsunuz.
 
item.cpp:
        if (bWearCell >= WEAR_MAX_NUM)
        {
            sys_err("EquipTo: invalid wear cell (this: #%d %s wearflag: %d cell: %d)", GetOriginalVnum(), GetName(), GetWearFlag(), bWearCell);
            return false;
        }
Hata buradan geliyor sanırım, simya öğeleriyle ilgili bir düzenleme yaptın mı hiç? Simya süresi bittiğinde DragonSoul'dan çıkıyor ve else olarak bu kodu döndürüyor. Cell değerleri bir şekilde yüksek geldiği için de false dönüyor olsa gerek.

Cell değerinin yüksek gelmesinin sebebi bazı yerleri BYTE'dan WORD'e çekmemden dolayı olabilir mi? Normal envanter sayısını 8 e çıkartmam için WORD' çekmiştim. Simya üzerinde hiçbir işlem yapmadım sadece 3 sayfa ve mitsi simya ekli. 3 sayfa eklemeden önce de bu sorun vardı.

Yeni bir item type yarattıysanız, wear_max değiştirdiyseniz oyuna ilk girişte önceden takılan simyalarda bu sorun oluyor. Eğer farklı bir hata yoksa tekrar aynı sorun yaşanmıyor. Tekrar simyayı takıp devam edebiliyorsunuz.
Çok mantıklı fakat kaybolduktan sonra yeniden oluşturdum ve onlar da kayboldu. WEAR_ bölümüne çok type yarattım.
 
Daha önce wear_max ve yeni simya tipleri yüzünden karşılaşmıştım bu hatayla. Yukarda bahsettiğiniz değişikliklerde sebep olmuş olabilir.
 
Daha önce wear_max ve yeni simya tipleri yüzünden karşılaşmıştım bu hatayla. Yukarda bahsettiğiniz değişikliklerde sebep olmuş olabilir.

48 veya 49 olarak test edeyim fakat ne zaman yere atacağını veya envantere geleceğini de tahmin edemiyorum. Bir keresinde süresi bitmişti yine takılı olarak duruyordu.
 
Süresi bitince takılıyor duruyor zaten. Kullanılamıyor sadece.

Evet biliyorum. Demek istediğim tam olarak ne işlem yapınca envantere geliyor veya yere atıyor simyaları onu bilmiyorum. Şuanda benden düzeltmemi istediğiniz yer neresi? 64 olan kısmı kaç adet WEAR var ise onun sayısıyla mı değiştirmem?
 
Evet biliyorum. Demek istediğim tam olarak ne işlem yapınca envantere geliyor veya yere atıyor simyaları onu bilmiyorum. Şuanda benden düzeltmemi istediğiniz yer neresi? 64 olan kısmı kaç adet WEAR var ise onun sayısıyla mı değiştirmem?
WEAR_MAX_NUM
WEAR_MAX

2 değeri de 48 olmazsa 49 olarak deneyebilirsiniz en azından bende bu halleriyle bir problem yok
Olmazsa büyük ihtimal yukarıda bahsettiğiniz diğer değişikliklerden sebep oluyor
 
Olaya tersten bakmayı deneyebilirsin, bence bu bir bug o yüzden yerdeki itemler aslında varolmayabilir(okunamiyor olabilir)
Syserr EquipTo fonksiyonundan çıkmış ama sen Unequip fonksiyonuna bak, ordan bir ipucu bulabilirsin belki.
Ek olarak AddFromCharacter ve RemoveFromCharacter fonksiyonlarını da inceleyebilirsin. (item.cpp)

Ben böyle durumlarda şüphelendiğim her yere sys_log ekleyip log düşürüyordum ve log'un geldiği yere odaklaniyordum genellikle. Bunun haricinde diğer yaptığın değişikler de buna sebep olabilir.
 
Olaya tersten bakmayı deneyebilirsin, bence bu bir bug o yüzden yerdeki itemler aslında varolmayabilir(okunamiyor olabilir)
Syserr EquipTo fonksiyonundan çıkmış ama sen Unequip fonksiyonuna bak, ordan bir ipucu bulabilirsin belki.
Ek olarak AddFromCharacter ve RemoveFromCharacter fonksiyonlarını da inceleyebilirsin. (item.cpp)

Ben böyle durumlarda şüphelendiğim her yere sys_log ekleyip log düşürüyordum ve log'un geldiği yere odaklaniyordum genellikle. Bunun haricinde diğer yaptığın değişikler de buna sebep olabilir.

K envanterinden şüpheleniyordum oradaki eklemelerde birkaç değişiklik yaptım şuanlık bir sorun yaşamadım. Eğer yaşarsam dediğiniz yerlere de bakıcam.
 
Uzun süredir bende hala devam etmekte olan bir sorun. Aylardır dönüp bakmadım çözmek için ama nadiren olduğunda can sıkıyor tabii ki. Konuyu hortlatmak istedim. Gelen yorumlar harici fikir önerilerine açığım. Herkese teşekkürler.
 
Mitsi simyayı deaktif edip denedin mi? Sorun eklediğin mitsi simya sisteminden kaynaklanıyor diye düşünüyorum
 
Geri
Üst