Çözüldü - Cannot find item by 0 | MMO Tutkunları
  1. Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha Fazla Bilgi.
  2. Merhaba Ziyaretçi,
    Henüz sitemize üye girişi yapmadınız. Sitemizden tam anlamıyla yararlanabilmeniz için sitemize üye olmanız gerekmektedir. Eğer sitemize daha önceden üye olduysanız, buradan giriş yapabilirsiniz. Sitemize üye değilseniz buraya tıklayarak üye olabilirsiniz.

    Duyuruyu Kapat
  3. Merhaba Ziyaretçi, Usta üye alımında bazı maddeler değişti. Siz de güncel halini okumak istiyorsanız buraya tıklayabilirsiniz.
    Duyuruyu Kapat
  4. Merhaba Ziyaretçi,
    Sitemizin idari anlamda düzgün işleyebilmesi için yönetime yardımcı olacak gönüllüler aranıyor. Eğer beklenen kriterleri karşılıyorsanız moderatör olmak için başvuru formunu doldurabilirsiniz.
    Detaylar: Moderatör Alımları İçin Tıklayınız
    Duyuruyu Kapat
Duyuruyu Kapat
Merhaba Ziyaretçi,
İçerik üreticilerinin güvencesi olan temel telif hakkı sistemi forumumuzda kullanıma sunulmuştur. Telif hakkı ile ilgili detaylı bilgiye şuradan ulaşabilirsiniz: bu linke tıklayarak konuya erişebilirsiniz

Çözüldü Cannot find item by 0

'Soru, Cevap ve Yardım' forumunda Trashy tarafından 14 Ocak 2020 15:25 tarihinde açılan konu

Konu Durumu:
Yanıtlara kapalı.
  1. Trashy

    Trashy Aktif Üye Üye

    88
    39
    426
    28 Haziran 2017
    Ankara, Türkiye
    İtemleri hızlıca çıkar tak yapınca alttaki syseri alıyorum nedeni nedir birde bi kaç sorum olacak
    5 Envanter kullanıyorum
    Kod (Text):
    1. Cannot find item by 0
    exchange.cpp​
    Kod (C++):
    1.         {
    2.             int iPos;
    3.  
    4.             if ((iPos = s_grid1.FindBlank(1, item->GetSize())) >= 0)
    5.             {
    6.                 s_grid1.Put(iPos, 1, item->GetSize());
    7.             }
    8.             else if ((iPos = s_grid2.FindBlank(1, item->GetSize())) >= 0)
    9.             {
    10.                 s_grid2.Put(iPos, 1, item->GetSize());
    11.             }
    12.             else if ((iPos = s_grid3.FindBlank(1, item->GetSize())) >= 0)
    13.             {
    14.                 s_grid3.Put(iPos, 1, item->GetSize());
    15.             }
    16.             else if ((iPos = s_grid4.FindBlank(1, item->GetSize())) >= 0)
    17.             {
    18.                 s_grid4.Put(iPos, 1, item->GetSize());
    19.             }
    20.             else if ((iPos = s_grid4.FindBlank(1, item->GetSize())) >= 0)
    21.              {
    22.                 s_grid5.Put(iPos, 1, item->GetSize());
    23.              }
    24.             else
    25.                 return false;
    26.         }

    yukarıdaki satırlar bana hatalı gibi geldi 2 tane grid4 var
    2 tane grid4 derken tam olarak incelerseniz fark edeceksinizdir.​
    Kod (C++):
    1.             else if ((iPos = s_grid4.FindBlank(1, item->GetSize())) >= 0)
    2.             {
    3.                 s_grid4.Put(iPos, 1, item->GetSize());
    4.             }
    5.             else if ((iPos = s_grid4.FindBlank(1, item->GetSize())) >= 0)
    6.              {
    7.                 s_grid5.Put(iPos, 1, item->GetSize());
    8.              }
    Kod (C++):
    1.     for (i = 0; i < INVENTORY_PAGE_SIZE*1; ++i)
    2.     {
    3.         if (!(item = victim->GetInventoryItem(i)))
    4.             continue;
    5.  
    6.         s_grid1.Put(i, 1, item->GetSize());
    7.     }
    8.     for (i = INVENTORY_PAGE_SIZE*1; i < INVENTORY_PAGE_SIZE*2; ++i)
    9.     {
    10.         if (!(item = victim->GetInventoryItem(i)))
    11.             continue;
    12.  
    13.         s_grid2.Put(i - INVENTORY_PAGE_SIZE*1, 1, item->GetSize());
    14.     }
    15.     for (i = INVENTORY_PAGE_SIZE*2; i < INVENTORY_PAGE_SIZE*3; ++i)
    16.     {
    17.         if (!(item = victim->GetInventoryItem(i)))
    18.             continue;
    19.  
    20.         s_grid3.Put(i - INVENTORY_PAGE_SIZE*2, 1, item->GetSize());
    21.     }
    22.     for (i = INVENTORY_PAGE_SIZE*3; i < INVENTORY_PAGE_SIZE*4; ++i)
    23.     {
    24.         if (!(item = victim->GetInventoryItem(i)))
    25.             continue;
    26.  
    27.         s_grid4.Put(i - INVENTORY_PAGE_SIZE*3, 1, item->GetSize());
    28.     }
    29.     for (i = INVENTORY_PAGE_SIZE * 4; i < INVENTORY_PAGE_SIZE * 5; ++i)
    30.     {
    31.         if (!(item = victim->GetInventoryItem(i)))
    32.             continue;
    33.  
    34.         s_grid4.Put(i - INVENTORY_PAGE_SIZE * 4, 1, item->GetSize());
    35.     }

    aynı şekilde buradada 2 tane grid 4 var

    Lenght.h​
    Kod (C++):
    1.  
    2.   INVENTORY_PAGE_COLUMN    = 5,
    3.     INVENTORY_PAGE_ROW        = 9,
    4.     INVENTORY_PAGE_SIZE        = INVENTORY_PAGE_COLUMN*INVENTORY_PAGE_ROW,
    5.     INVENTORY_PAGE_COUNT    = 5,
    6.     INVENTORY_MAX_NUM        = INVENTORY_PAGE_SIZE*INVENTORY_PAGE_COUNT,

    Dediğim yerlerde hata varmı yok mu anlayamadım yardımlarınızı bekliyorum
    Bu arada envanter ile ilgili sorunum yok ama kodları incelerken buralar ilgimi çekti sormak istedim​
     
  2. Whistle

    Whistle Sarhoş Filozof Site Yetkilisi Admin Casro2 (Metin2) GM Casro2 (Metin2) Destek

    5.467
    1.360
    1.971
    30 Ekim 2011
    Erkek
    Öğrenci
    Samsun
    Evet bulduğunuz hata doğru. Bu konudan yola çıkarak 5. envanter kısmını düzenleyiniz: Linkleri Görebilmek İçin Üye Olmanız Gerekmektedir. Üye Olmak İçin Tıklayınız...

    4 envanter yazdığına bakmayın. 5. envanterin nasıl ekleneceği de bulunuyor.
     
  3. Trashy

    Trashy Aktif Üye Üye

    88
    39
    426
    28 Haziran 2017
    Ankara, Türkiye
    zaten o hatayı fark ettiğimde konunuza baktım yinede bi sormak istedim cannot find item by 0 hatası hakkında yardımcı olurmusunuz ?
     
  4. Whistle

    Whistle Sarhoş Filozof Site Yetkilisi Admin Casro2 (Metin2) GM Casro2 (Metin2) Destek

    5.467
    1.360
    1.971
    30 Ekim 2011
    Erkek
    Öğrenci
    Samsun
    O hatayı vermesinin sebebi seçilen itemin bulunamadığı söylüyor. Bu hatayı tetikleyen bir çok etken olabilir.
    Client/UserInterface/PythonItemModule.cpp dosyasında şu satırda ki kontrol sonucu yazıyor.
    Kod (C++):
    1.     if (!CItemManager::Instance().SelectItemData(iIndex))
    2.     {
    3.         TraceError("Cannot find item by %d", iIndex);
    4.         CItemManager::Instance().SelectItemData(60001);
    5.     }
    5 envanteri ekledikten sonra mı meydana geldi bu hata?
     
  5. Trashy

    Trashy Aktif Üye Üye

    88
    39
    426
    28 Haziran 2017
    Ankara, Türkiye
    hayır envanterden dolayı değil nedenini bende bilmiyorum tam olarak itemleri hızlı çıkar tak yapınca veriyor sadece mesela 2 tane aynı zırh var biri takılı biri envanterde envanterdekine ard arda tıklıyosun değiştiriyor zırhları bu syserri veriyor
     
  6. Whistle

    Whistle Sarhoş Filozof Site Yetkilisi Admin Casro2 (Metin2) GM Casro2 (Metin2) Destek

    5.467
    1.360
    1.971
    30 Ekim 2011
    Erkek
    Öğrenci
    Samsun
    Server - client arasında sürekli bir iletişim vardır. Karakter yürürken, itemlerin yerini değiştirirken vs. Eğer bunu çok hızlı yaparsanız client serverden gelen veri ile karşılaştırma yaparken sorun yaşayacağı için bu tarz hatalar verebilir. İtemi çıkar - tak yaptığınızda eğer olağan dışı bir durum yoksa endişelenmenize gerek yok.
     
  7. Trashy

    Trashy Aktif Üye Üye

    88
    39
    426
    28 Haziran 2017
    Ankara, Türkiye
    herhangi bi sorun yok yavaş çıkarınca itemleri syser vermiyor sadece hızlı çıkarınca öyle bi syserr vermekte
     
    Whistle bunu beğendi.
  8. Whistle

    Whistle Sarhoş Filozof Site Yetkilisi Admin Casro2 (Metin2) GM Casro2 (Metin2) Destek

    5.467
    1.360
    1.971
    30 Ekim 2011
    Erkek
    Öğrenci
    Samsun
    Bu eylemi bir kaç serverde de deneyin. Bende kendi geliştirdiğim serverde de deneyeceğim. Bakalım aynı hata olacak mı..
     
  9. Whistle

    Whistle Sarhoş Filozof Site Yetkilisi Admin Casro2 (Metin2) GM Casro2 (Metin2) Destek

    5.467
    1.360
    1.971
    30 Ekim 2011
    Erkek
    Öğrenci
    Samsun
    Kendi serverimde de hızlı şekilde giy-çıkar işlemi yaptım aynı syserri verdi.
    Kod (Text):
    1. 0114 22:00:48036 :: Cannot find item by 0
    2. 0114 22:00:49534 :: Cannot find item by 0
    3. 0114 22:00:49748 :: Cannot find item by 0
    4. 0114 22:00:49975 :: Cannot find item by 0
    5. 0114 22:00:51283 :: Cannot find item by 0
    6. 0114 22:00:52077 :: Cannot find item by 0
    7. 0114 22:00:52536 :: Cannot find item by 0
    8. 0114 22:00:52714 :: Cannot find item by 0
    9. 0114 22:00:54555 :: Cannot find item by 0
    Bu kritik bir sorun değil. Dediğim gibi hızlıca itemi giy çıkar işlemi yaotığınız da server ve client arasında ki iletişimde gecikme meydana geldiği için bu hatayı veriyor.
    Vermesinin sebebi de şu. Fare ile itemin üstüne geldiğinizde tooltip penceresi açılır. Çok hızlı giy-çıkar işleminde fare eşyanın üzerinde olduğu için sürekli tooltipi de güncellemeye çalışır. O bilgilerin yazılması için de eşyanın seçilmesi gerekiyor. Gecikme olunca da seçemiyor.
     
  10. Trashy

    Trashy Aktif Üye Üye

    88
    39
    426
    28 Haziran 2017
    Ankara, Türkiye
    Anladım teşekkürler kapatılabilir
     
    Whistle bunu beğendi.
Yükleniyor...
Konu Durumu:
Yanıtlara kapalı.

Bu Sayfayı Paylaş

XenForo Add-ons by Brivium ™ © 2012-2013 Brivium LLC.