Çözüldü Ticaret' yaparken Envanter Dolu hatası.

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

swatprens

Üye
Üye
Mesaj
25
Çözümler
3
Beğeni
5
Puan
408
Ticaret Puanı
0
Kolay gelsin herkese, 4 Envanter sistemini ekledim fixleriyle birlikte ama hala ticaret yaparken envanter dolu hatası ile karşılaşıyorum bir kaç files den baktım ama bir kaç satır kod değişiyor sadece onunla da alakası olduğunu düşünmüyorum exchange.cpp dosyamı da paylaşıyorum belki göremediğim bir yer vardır. length.h max num 180 bu arada




Metin2 4 Envanter Sistemi Sorunları Fixlenmiş
 
Çözüm
Bul:
Genişlet Daralt Kopyala
        {
            int iPos = s_grid1.FindBlank(1, item->GetSize());

            if (iPos >= 0)
            {
                s_grid1.Put(iPos, 1, item->GetSize());
            }
            else
            {
                iPos = s_grid2.FindBlank(1, item->GetSize());

                if (iPos >= 0)
                {
                    s_grid2.Put(iPos, 1, item->GetSize());
                }
                else
                {
                    return false;
                }
            }
        }

Değiştir:
Genişlet Daralt Kopyala
        {
            int iPos;

            if ((iPos = s_grid1.FindBlank(1, item->GetSize())) >= 0)
            {
                s_grid1.Put(iPos, 1, item->GetSize());
            }
            else if ((iPos =...
Bul:
Genişlet Daralt Kopyala
        {
            int iPos = s_grid1.FindBlank(1, item->GetSize());

            if (iPos >= 0)
            {
                s_grid1.Put(iPos, 1, item->GetSize());
            }
            else
            {
                iPos = s_grid2.FindBlank(1, item->GetSize());

                if (iPos >= 0)
                {
                    s_grid2.Put(iPos, 1, item->GetSize());
                }
                else
                {
                    return false;
                }
            }
        }

Değiştir:
Genişlet Daralt Kopyala
        {
            int iPos;

            if ((iPos = s_grid1.FindBlank(1, item->GetSize())) >= 0)
            {
                s_grid1.Put(iPos, 1, item->GetSize());
            }
            else if ((iPos = s_grid2.FindBlank(1, item->GetSize())) >= 0)
            {
                s_grid2.Put(iPos, 1, item->GetSize());
            }
            else if ((iPos = s_grid3.FindBlank(1, item->GetSize())) >= 0)
            {
                s_grid3.Put(iPos, 1, item->GetSize());
            }
            else if ((iPos = s_grid4.FindBlank(1, item->GetSize())) >= 0)
            {
                s_grid4.Put(iPos, 1, item->GetSize());
            }
            else
                return false;
        }

Son hali bu şekilde olacak
1639179932933.webp
 
Çözüm
Bul:
Genişlet Daralt Kopyala
        {
            int iPos = s_grid1.FindBlank(1, item->GetSize());

            if (iPos >= 0)
            {
                s_grid1.Put(iPos, 1, item->GetSize());
            }
            else
            {
                iPos = s_grid2.FindBlank(1, item->GetSize());

                if (iPos >= 0)
                {
                    s_grid2.Put(iPos, 1, item->GetSize());
                }
                else
                {
                    return false;
                }
            }
        }

Değiştir:
Genişlet Daralt Kopyala
        {
            int iPos;

            if ((iPos = s_grid1.FindBlank(1, item->GetSize())) >= 0)
            {
                s_grid1.Put(iPos, 1, item->GetSize());
            }
            else if ((iPos = s_grid2.FindBlank(1, item->GetSize())) >= 0)
            {
                s_grid2.Put(iPos, 1, item->GetSize());
            }
            else if ((iPos = s_grid3.FindBlank(1, item->GetSize())) >= 0)
            {
                s_grid3.Put(iPos, 1, item->GetSize());
            }
            else if ((iPos = s_grid4.FindBlank(1, item->GetSize())) >= 0)
            {
                s_grid4.Put(iPos, 1, item->GetSize());
            }
            else
                return false;
        }

Son hali bu şekilde olacak
8584 eklentisini görüntüle
Teşekkür ederim, şimdi denedim artık sorunsuz çalışıyor. :)
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst