Çözüldü 4 envanter sistemi ticaret bugu

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

hiqermod

Üye
Üye
Mesaj
124
Çözümler
14
Beğeni
40
Puan
454
Ticaret Puanı
0
merhaba arkadaşlar whistlenin 4 envanter sistemini ekledim fakat oyunda ticaret yaparken ilk 2 envanter doluysa ticaret gerçekleşmiyor yani itemler 3. ve 4. envantere gelmiyor chat ekranında stun tam mekale yazısı çıkıyor sorunun exchange.cpp den kaynaklandığını düşünüyorum

biraz araştırdım exchange.cpp ye şu kodu ekleyin diyor ama emin olamadım
exchange.cpp:
Genişlet Daralt Kopyala
        if (quest::CQuestManager::instance().GetPCForce(GetOwner()->GetPlayerID())->IsRunning() == true)
        {
            GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot trade if you're using quests"));
            victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot trade if the other part using quests"));
            goto EXCHANGE_END;
        }
        else if (quest::CQuestManager::instance().GetPCForce(victim->GetPlayerID())->IsRunning() == true)
        {
            victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot trade if you're using quests"));
            GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot trade if the other part using quests"));
            goto EXCHANGE_END;
        }
destekleriniz için teşekkürler
 
Çözüm
çözüm exhange.cpp açılır ve kodlar şu şekilde düzenlenir
exchange.cpp:
Genişlet Daralt Kopyala
                if (iPos >= 0)
                {
                    s_grid2.Put(iPos, 1, item->GetSize());
                }
                else
                {
                    //3. envanter item alma bug fix
                    iPos = s_grid3.FindBlank(1, item->GetSize());
                    if (iPos >= 0)
                    {
                        s_grid3.Put(iPos, 1, item->GetSize());
                    }
                    else
                    {
                        //4. envanter item alma bug fix
                        iPos = s_grid4.FindBlank(1, item->GetSize());
                        if (iPos >= 0){
                            s_grid4.Put(iPos, 1...
çözüm exhange.cpp açılır ve kodlar şu şekilde düzenlenir
exchange.cpp:
Genişlet Daralt Kopyala
                if (iPos >= 0)
                {
                    s_grid2.Put(iPos, 1, item->GetSize());
                }
                else
                {
                    //3. envanter item alma bug fix
                    iPos = s_grid3.FindBlank(1, item->GetSize());
                    if (iPos >= 0)
                    {
                        s_grid3.Put(iPos, 1, item->GetSize());
                    }
                    else
                    {
                        //4. envanter item alma bug fix
                        iPos = s_grid4.FindBlank(1, item->GetSize());
                        if (iPos >= 0){
                            s_grid4.Put(iPos, 1, item->GetSize());
                        }
                        else{
                            return false;//bul
                        }
                    }
            }
        }
    }
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst