Çözüldü Metin keserken aldığım ilginç core

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

MT Üye
MT Üye
Mesaj
392
Çözümler
27
Beğeni
98
Puan
454
Ticaret Puanı
0
Merhabalar, garip bir core alıyorum. Vadi bölgesinde Gölge Metni keserken metnin canı son %5, %10 kaldığında core veriyor. Bu her metinde olmuyor. Bazen oluyor bazen olmuyor. Karakter sadece otomatik saldırıda metin kesiyor. Arka planda herhangi bir işlem yapmıyorum.

Adsız.png


Channel1 syslog
Adsız2.png
 
Çözüm
Güncelleme:
En son verdiği coru 300 - 400 metin kestim almadım. Sorunu çözdüm sanıyordum ki bu sefer böyle bir core aldım. Fikri olan arkadaşlar yorumda paylaşırlarsa sevinirim.

11652 eklentisini görüntüle
Bence senin game random core veriyor. Net bir hatadan farklı farklı core vermesi imkansız. Dolayısıyla çözdüğünü sandığın yerler aslında zaten sorunsuz yerler olabilir. Metin2'nin varsayılan kodları her ne kadar açıklarla,buglarla dolu olsa da durduk yere core verecek kadar sağlıksız değildir.
Bu yüzden de fatura geliştiriciye kesiliyor. Yani demem o ki, core kayıtlarını boşverip yaptığın son işlemleri geri almayı deneyebilirsin.
Filesın şu an ki halinin yedeğini alıp, sonrasında düzenlemeleri geri al. Aksi halde düzelttiğini sandığın şey...
char_item.cpp yükleyebilir misin
 
5164.satırda şu blok var:
C++:
case APPLY_INT:
    #ifdef FIXED_41
    if (FindAffect(AFFECT_INT))
        return false;
    #endif
                                    
/*burası*/ AddAffect(AFFECT_INT, POINT_IQ, item->GetValue(2), 0, item->GetValue(1), 0, true);
    break;

Eğer burası doğru yer ise; itemlerle veya etkilerle ilgili bir düzenleme yapmış olabilirsin diye tahmin ediyorum.
Ve eğer bu söylediğimde yanılmıyorsam SP/Zeka özelliği veren bir item-etki vb. bu satır tarafından okunamıyor olabilir.
Veya bu satırdaki etkiler ile alakalı src üzerinden bir düzenleme yaptıysan bir yeri yanlış yapmış olabilirsin.

Item protoda yapılan bir düzenlemeden kaynaklı olma ihtimali için: server tarafına ait elindeki sağlam olan ve en son yedek olan item_protoyu yükleyip tekrar denemeni öneririm.
Bir diğer fikir ise, eğer metini büyülü keskinlik sura ile kesiyorsan farklı karakter ile kesmeyi dene. Aklıma geldi sadece.
 
5164.satırda şu blok var:
C++:
case APPLY_INT:
    #ifdef FIXED_41
    if (FindAffect(AFFECT_INT))
        return false;
    #endif
                                   
/*burası*/ AddAffect(AFFECT_INT, POINT_IQ, item->GetValue(2), 0, item->GetValue(1), 0, true);
    break;

Eğer burası doğru yer ise; itemlerle veya etkilerle ilgili bir düzenleme yapmış olabilirsin diye tahmin ediyorum.
Ve eğer bu söylediğimde yanılmıyorsam SP/Zeka özelliği veren bir item-etki vb. bu satır tarafından okunamıyor olabilir.
Veya bu satırdaki etkiler ile alakalı src üzerinden bir düzenleme yaptıysan bir yeri yanlış yapmış olabilirsin.

Item protoda yapılan bir düzenlemeden kaynaklı olma ihtimali için: server tarafına ait elindeki sağlam olan ve en son yedek olan item_protoyu yükleyip tekrar denemeni öneririm.
Bir diğer fikir ise, eğer metini büyülü keskinlik sura ile kesiyorsan farklı karakter ile kesmeyi dene. Aklıma geldi sadece.

Fikir için teşekkürler. Savaşçı kullanıyorum. Son zamanlarda bahsettiğiniz yerlerle ilgili düzenleme yaptığımı hatırlamıyorum. Aynı AddAffect içeren bir çok case mevcut neden INT olan acaba? affect.h Efekt sıralamasından kaynaklı olabilir mi?
 
Fikir için teşekkürler. Savaşçı kullanıyorum. Son zamanlarda bahsettiğiniz yerlerle ilgili düzenleme yaptığımı hatırlamıyorum. Aynı AddAffect içeren bir çok case mevcut neden INT olan acaba? affect.h Efekt sıralamasından kaynaklı olabilir mi?
Açıkcası sanmıyorum. Oyun içindeki bir olaydan dolayı core veriyor bence.
Oto pot kullanıyorsan onu kapatıp tekrar dene istersen.
Ayrıca eğer bunu bir item tetikliyorsa bloğu şu şekilde değiştir, belki işe yarar.
C++:
case APPLY_INT:
    #ifdef FIXED_41
    if (FindAffect(AFFECT_INT))
        return false;
    #endif
    sys_err("Hata: Item: %s , Vnum: %d", item->GetName(), item->GetVnum());
    AddAffect(AFFECT_INT, POINT_IQ, item->GetValue(2), 0, item->GetValue(1), 0, true);
    break;

Eğer buna bir item sebep oluyorsa AddAffect satırına gelmeden önce(core'dan önce) syserr kaydına düşecektir diye tahmin ediyorum.
 
Açıkcası sanmıyorum. Oyun içindeki bir olaydan dolayı core veriyor bence.
Oto pot kullanıyorsan onu kapatıp tekrar dene istersen.
Ayrıca eğer bunu bir item tetikliyorsa bloğu şu şekilde değiştir, belki işe yarar.
C++:
case APPLY_INT:
    #ifdef FIXED_41
    if (FindAffect(AFFECT_INT))
        return false;
    #endif
    sys_err("Hata: Item: %s , Vnum: %d", item->GetName(), item->GetVnum());
    AddAffect(AFFECT_INT, POINT_IQ, item->GetValue(2), 0, item->GetValue(1), 0, true);
    break;

Eğer buna bir item sebep oluyorsa AddAffect satırına gelmeden önce(core'dan önce) syserr kaydına düşecektir diye tahmin ediyorum.

Çok mantıklı. Deneyip döneceğim teşekkürler.
 
Son dediğinizi henüz yapmadım. Bu yorumunuzu görmeden önce kendimce bir şey denemiştim. Farklı bir hata aldım. Acaba her coreda farklı yeri mi gösteriyor yoksa bir önceki hata çözülmüş mü oluyor? Hatayı doğru gösterdiğinden emin değilim şahsen. Core dosyasını alıp başka freebsd de açıyorum. Şimdi sizin dediğinizi yapıyorum.

Adsız.png
 
Dediğinizi uyguladım oto potları kapattım ve bu durumda yine attı. Core verir vermez ss aldım. (Sunucuya syserr düşmedi)

Adsız.png
 
Özel mesajdan attığın görselde de farklı bir satırdan core vermişti. Onunla beraber 3 farklı core satırı oluyor. Muhtemelen dediğin gibi hatayı verdiği yerler doğru değil, şayet konudaki ilk core doğru olsaydı yüksek bir ihtimalle o syserr kaydı düşerdi. Bu durumda sorunun kaynağını bulmak zor, yapılan son işlemleri bütünüyle gözden geçirmek gerek. Sorunun kaynağını daraltmak için farklı denemeler yapabilirsin.
Farklı karakterle kesme, farklı itemle kesme, gibi gibi. Yaptığın son işlemlerle bağlantılı olan her ne varsa bunun gibi denemeler yaparak kaynağı bulabilirsin belki.
 
Özel mesajdan attığın görselde de farklı bir satırdan core vermişti. Onunla beraber 3 farklı core satırı oluyor. Muhtemelen dediğin gibi hatayı verdiği yerler doğru değil, şayet konudaki ilk core doğru olsaydı yüksek bir ihtimalle o syserr kaydı düşerdi. Bu durumda sorunun kaynağını bulmak zor, yapılan son işlemleri bütünüyle gözden geçirmek gerek. Sorunun kaynağını daraltmak için farklı denemeler yapabilirsin.
Farklı karakterle kesme, farklı itemle kesme, gibi gibi. Yaptığın son işlemlerle bağlantılı olan her ne varsa bunun gibi denemeler yaparak kaynağı bulabilirsin belki.

Fikirler için çok teşekkürler. Konu yine de açık kalırsa belki başka insanlar da fikirlerde bulunabilir. İyi akşamlar.
 
Güncelleme:
En son verdiği coru 300 - 400 metin kestim almadım. Sorunu çözdüm sanıyordum ki bu sefer böyle bir core aldım. Fikri olan arkadaşlar yorumda paylaşırlarsa sevinirim.

Adsız.png
 

Dosya Eklentileri

  • char.rar
    41,6 KB · Gösterim: 1
Güncelleme:
En son verdiği coru 300 - 400 metin kestim almadım. Sorunu çözdüm sanıyordum ki bu sefer böyle bir core aldım. Fikri olan arkadaşlar yorumda paylaşırlarsa sevinirim.

11652 eklentisini görüntüle
Bence senin game random core veriyor. Net bir hatadan farklı farklı core vermesi imkansız. Dolayısıyla çözdüğünü sandığın yerler aslında zaten sorunsuz yerler olabilir. Metin2'nin varsayılan kodları her ne kadar açıklarla,buglarla dolu olsa da durduk yere core verecek kadar sağlıksız değildir.
Bu yüzden de fatura geliştiriciye kesiliyor. Yani demem o ki, core kayıtlarını boşverip yaptığın son işlemleri geri almayı deneyebilirsin.
Filesın şu an ki halinin yedeğini alıp, sonrasında düzenlemeleri geri al. Aksi halde düzelttiğini sandığın şey ilerleyen zamanlarda ansızın tekrar karşına çıkabilir. Böyle durumlarda sorunu çözmenin en iyi yolu sebep olan şeyi netleştirmektir.
 
Çözüm
Bence senin game random core veriyor. Net bir hatadan farklı farklı core vermesi imkansız. Dolayısıyla çözdüğünü sandığın yerler aslında zaten sorunsuz yerler olabilir. Metin2'nin varsayılan kodları her ne kadar açıklarla,buglarla dolu olsa da durduk yere core verecek kadar sağlıksız değildir.
Bu yüzden de fatura geliştiriciye kesiliyor. Yani demem o ki, core kayıtlarını boşverip yaptığın son işlemleri geri almayı deneyebilirsin.
Filesın şu an ki halinin yedeğini alıp, sonrasında düzenlemeleri geri al. Aksi halde düzelttiğini sandığın şey ilerleyen zamanlarda ansızın tekrar karşına çıkabilir. Böyle durumlarda sorunu çözmenin en iyi yolu sebep olan şeyi netleştirmektir.

Haklısınız.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst