Çözüldü K envanter ve Offline Shop

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

Chiqomt2

Üye
Üye
Mesaj
45
Çözümler
6
Beğeni
9
Puan
429
Ticaret Puanı
0
Eklentili Alt Yapı Server Files Kullanıyorum. 3 Ufak sorunum var files ile baya uğraştım buradan dönmek istemiyorum. K envanterinden Npc'ye item satılmıyor. Çok çözüm denedim uğraştım lakin hiç biri başarılı olmadı.
Linkleri görebilmek için giriş yap veya kayıt ol.
'ni kullanıyorum. 2. Sorunum K envanterinden bir itemi offline shop'a eklediğimde pazarı kapatınca alabiliyorum fakat pazardan aldığımda itemi para gidiyor item gelmiyor üstelik envanterden item yok oluyor. 3. Sorunum ise Offline shop'un market kurmak için istediği fiyatları nereden değiştirebilirim. Yardımlarınız için şimdiden teşekkürler.

0228_150007.webp
 
Çözüm
Çözüm için
Dosyaları kontrol ettim yapılı. Sorunu çözemedim :(


Denedim olmadı :( Teşekkürler yinede.


2. Sorunu çözdüm teşekkürler. 1. sorunda hep hata alıyorum.

Çok teşekkür ederim. Sorun tam da gösterdiğiniz yerde 2 ekleme yapılmış birini silince düzeldi.
2. Sorun için
Çok teşekkür ederim. Sorun tam da gösterdiğiniz yerde 2 ekleme yapılmış birini silince düzeldi.

Hocam bendede şöyle bir sorun var k envanterde npcye item satmaya çalıştığımda normal envanterden item siliniyor k envanterdeki item silinmiyor bunu nasıl düzeltiriz
Sorunun çözümünü bende bilmiyorum sanırım eksik ekleme yapmışsınız yada sell fonksiyonunda INVENTORY kısmı eksik olabilir k envanterinin konusu altındaki fixleri...
input_main.cpp de bu kısımı bul

C++:
Genişlet Daralt Kopyala
case SHOP_SUBHEADER_CG_SELL:
case SHOP_SUBHEADER_CG_SELL2:

Şu şekilde değiştir.

C++:
Genişlet Daralt Kopyala
    case SHOP_SUBHEADER_CG_SELL:
    {
#ifdef ENABLE_SPECIAL_STORAGE
        if (uiBytes < sizeof(BYTE) + sizeof(BYTE) + sizeof(BYTE))
            return -1;

        const BYTE wPos = *reinterpret_cast<const BYTE*>(c_pData);
        const BYTE bCount = *(c_pData + sizeof(BYTE));
        const BYTE bType = *(c_pData + sizeof(BYTE) + sizeof(BYTE));

        sys_log(0, "INPUT: %s SHOP: SELL", ch->GetName());

        CShopManager::instance().Sell(ch, wPos, bCount, bType);
        return sizeof(BYTE) + sizeof(BYTE) + sizeof(BYTE);
#else
        if (uiBytes < sizeof(BYTE))
            return -1;

        BYTE pos = *c_pData;

        sys_log(0, "INPUT: %s SHOP: SELL", ch->GetName());
        CShopManager::instance().Sell(ch, pos);
        return sizeof(BYTE);
#endif
    }

    case SHOP_SUBHEADER_CG_SELL2:
    {
#ifdef ENABLE_SPECIAL_STORAGE
        if (uiBytes < sizeof(BYTE) + sizeof(BYTE) + sizeof(BYTE))
            return -1;

        const BYTE wPos = *reinterpret_cast<const BYTE*>(c_pData);
        const BYTE bCount = *(c_pData + sizeof(BYTE));
        const BYTE bType = *(c_pData + sizeof(BYTE) + sizeof(BYTE));

        sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName());

        CShopManager::instance().Sell(ch, wPos, bCount, bType);
        return sizeof(BYTE) + sizeof(BYTE) + sizeof(BYTE);
#else
        if (uiBytes < sizeof(BYTE) + sizeof(BYTE))
            return -1;

        BYTE pos = *(c_pData++);
        BYTE count = *(c_pData);

        sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName());
        CShopManager::instance().Sell(ch, pos, count);
        return sizeof(BYTE) + sizeof(BYTE);
#endif
    }

Bu değişikliği yap npc satışında sorun kalmaz. İkinci sorun için ise;

Shop.cpp içinde bunu arat

C++:
Genişlet Daralt Kopyala
item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos))

Bu şekilde değiştir;

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPECIAL_STORAGE
        if (item->IsUpgradeItem())
        {
            item->AddToCharacter(ch, TItemPos(UPGRADE_INVENTORY, iEmptyPos));
        }
        else if (item->IsBook())
        {
            item->AddToCharacter(ch, TItemPos(BOOK_INVENTORY, iEmptyPos));
        }
        else if (item->IsStone())
        {
            item->AddToCharacter(ch, TItemPos(STONE_INVENTORY, iEmptyPos));
        }
        else if (item->IsChest())
        {
            item->AddToCharacter(ch, TItemPos(CHEST_INVENTORY, iEmptyPos));
        }
        else if (item->IsAttr())
        {
            item->AddToCharacter(ch, TItemPos(ATTR_INVENTORY, iEmptyPos));
        }
        else if (item->IsFlower())
        {
            item->AddToCharacter(ch, TItemPos(FLOWER_INVENTORY, iEmptyPos));
        }
        else
        item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos))
#endif

Bu değişikliği örnek alarak diğer INVENTORY olarak arama yap shop.cpp ve shop_manager.cpp lerde. AddtoCharacter kısmı farklı olabilir bu yüzden INVENTORY olarak değiştir. Sonrasında o kodu üstte verdiğim örnekteki gibi değiştirmen gerekiyor bu verdiğim örnek kendi sourcemden verdiğim örnektir sende hata vermesi muhtemel çünkü sendeki sistemde ATTR_INVENTORY yoktur hata verir gibi gibi kendi dosyalarına göre ayarlaman gerekiyor. Son sorun ise navicattan player içinde shop_cost var oradan ayarlıyorsun.
 
Offline Shop gift > K Envanter sorunu için

>
Linkleri görebilmek için giriş yap veya kayıt ol.
< çözümü yapabilirsin dostum
Dosyaları kontrol ettim yapılı. Sorunu çözemedim :(

Navicattan değişiyordu sanırım pek hatırlamıyorum ama kontrol edebilirsin. Ayrıyetten Yardım - K Envanterindeki item yere atılıyor, siliniyor fakat satılmıyor bu konuda mesaj atmıştım dönüş yapılmamış sizde deneyebilirsiniz.
Denedim olmadı :( Teşekkürler yinede.

input_main.cpp de bu kısımı bul

C++:
Genişlet Daralt Kopyala
case SHOP_SUBHEADER_CG_SELL:
case SHOP_SUBHEADER_CG_SELL2:

Şu şekilde değiştir.

C++:
Genişlet Daralt Kopyala
    case SHOP_SUBHEADER_CG_SELL:
    {
#ifdef ENABLE_SPECIAL_STORAGE
        if (uiBytes < sizeof(BYTE) + sizeof(BYTE) + sizeof(BYTE))
            return -1;

        const BYTE wPos = *reinterpret_cast<const BYTE*>(c_pData);
        const BYTE bCount = *(c_pData + sizeof(BYTE));
        const BYTE bType = *(c_pData + sizeof(BYTE) + sizeof(BYTE));

        sys_log(0, "INPUT: %s SHOP: SELL", ch->GetName());

        CShopManager::instance().Sell(ch, wPos, bCount, bType);
        return sizeof(BYTE) + sizeof(BYTE) + sizeof(BYTE);
#else
        if (uiBytes < sizeof(BYTE))
            return -1;

        BYTE pos = *c_pData;

        sys_log(0, "INPUT: %s SHOP: SELL", ch->GetName());
        CShopManager::instance().Sell(ch, pos);
        return sizeof(BYTE);
#endif
    }

    case SHOP_SUBHEADER_CG_SELL2:
    {
#ifdef ENABLE_SPECIAL_STORAGE
        if (uiBytes < sizeof(BYTE) + sizeof(BYTE) + sizeof(BYTE))
            return -1;

        const BYTE wPos = *reinterpret_cast<const BYTE*>(c_pData);
        const BYTE bCount = *(c_pData + sizeof(BYTE));
        const BYTE bType = *(c_pData + sizeof(BYTE) + sizeof(BYTE));

        sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName());

        CShopManager::instance().Sell(ch, wPos, bCount, bType);
        return sizeof(BYTE) + sizeof(BYTE) + sizeof(BYTE);
#else
        if (uiBytes < sizeof(BYTE) + sizeof(BYTE))
            return -1;

        BYTE pos = *(c_pData++);
        BYTE count = *(c_pData);

        sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName());
        CShopManager::instance().Sell(ch, pos, count);
        return sizeof(BYTE) + sizeof(BYTE);
#endif
    }

Bu değişikliği yap npc satışında sorun kalmaz. İkinci sorun için ise;

Shop.cpp içinde bunu arat

C++:
Genişlet Daralt Kopyala
item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos))

Bu şekilde değiştir;

C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SPECIAL_STORAGE
        if (item->IsUpgradeItem())
        {
            item->AddToCharacter(ch, TItemPos(UPGRADE_INVENTORY, iEmptyPos));
        }
        else if (item->IsBook())
        {
            item->AddToCharacter(ch, TItemPos(BOOK_INVENTORY, iEmptyPos));
        }
        else if (item->IsStone())
        {
            item->AddToCharacter(ch, TItemPos(STONE_INVENTORY, iEmptyPos));
        }
        else if (item->IsChest())
        {
            item->AddToCharacter(ch, TItemPos(CHEST_INVENTORY, iEmptyPos));
        }
        else if (item->IsAttr())
        {
            item->AddToCharacter(ch, TItemPos(ATTR_INVENTORY, iEmptyPos));
        }
        else if (item->IsFlower())
        {
            item->AddToCharacter(ch, TItemPos(FLOWER_INVENTORY, iEmptyPos));
        }
        else
        item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos))
#endif

Bu değişikliği örnek alarak diğer INVENTORY olarak arama yap shop.cpp ve shop_manager.cpp lerde. AddtoCharacter kısmı farklı olabilir bu yüzden INVENTORY olarak değiştir. Sonrasında o kodu üstte verdiğim örnekteki gibi değiştirmen gerekiyor bu verdiğim örnek kendi sourcemden verdiğim örnektir sende hata vermesi muhtemel çünkü sendeki sistemde ATTR_INVENTORY yoktur hata verir gibi gibi kendi dosyalarına göre ayarlaman gerekiyor. Son sorun ise navicattan player içinde shop_cost var oradan ayarlıyorsun.
2. Sorunu çözdüm teşekkürler. 1. sorunda hep hata alıyorum.
 
evet hata verince bıraktım temizini aldım tekrardan npc ye satmıyor yere sat sil ekleyip ordan satacak mı onu denemeyi düşünüyorum.
Oradan satar ama npc den yine satmaz. Aynı sorunu yaşamıştım. Bu gösterdiğim kod bloğundan kaynaklıydı bende.
 
Ne tür bir düzenleme yaptıktan sonra bu hata ile karşılaştınız?

Kendi dosyanız ile karşılaştırabilirsiniz.
uiinventory.py:
Genişlet Daralt Kopyala
def SelectEmptySlot(self, selectedSlotPos):

Linkleri görebilmek için giriş yap veya kayıt ol.


Kod:
Genişlet Daralt Kopyala
            if player.SLOT_TYPE_INVENTORY == attachedSlotType:
                itemCount = player.GetItemCount(attachedSlotPos)
                attachedCount = mouseModule.mouseController.GetAttachedItemCount()
                self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount)
 
Hocam bendede şöyle bir sorun var k envanterde npcye item satmaya çalıştığımda normal envanterden item siliniyor k envanterdeki item silinmiyor bunu nasıl düzeltiriz
 
Ne tür bir düzenleme yaptıktan sonra bu hata ile karşılaştınız?

Kendi dosyanız ile karşılaştırabilirsiniz.
uiinventory.py:
Genişlet Daralt Kopyala
def SelectEmptySlot(self, selectedSlotPos):

Linkleri görebilmek için giriş yap veya kayıt ol.


Kod:
Genişlet Daralt Kopyala
            if player.SLOT_TYPE_INVENTORY == attachedSlotType:
                itemCount = player.GetItemCount(attachedSlotPos)
                attachedCount = mouseModule.mouseController.GetAttachedItemCount()
                self.__SendMoveItemPacket(attachedSlotPos, selectedSlotPos, attachedCount)
Çok teşekkür ederim. Sorun tam da gösterdiğiniz yerde 2 ekleme yapılmış birini silince düzeldi.
 
Çok teşekkür ederim. Sorun tam da gösterdiğiniz yerde 2 ekleme yapılmış birini silince düzeldi.
Bu tarz şeyleri açtığınız konudan farklı ise yeni konu açarak yardım isteyin şimdi 2 tane çözüm yorumu olduğu için işaretlemek mümkün olmuyor.
 
Çözüm için
Dosyaları kontrol ettim yapılı. Sorunu çözemedim :(


Denedim olmadı :( Teşekkürler yinede.


2. Sorunu çözdüm teşekkürler. 1. sorunda hep hata alıyorum.

Çok teşekkür ederim. Sorun tam da gösterdiğiniz yerde 2 ekleme yapılmış birini silince düzeldi.
2. Sorun için
Çok teşekkür ederim. Sorun tam da gösterdiğiniz yerde 2 ekleme yapılmış birini silince düzeldi.

Hocam bendede şöyle bir sorun var k envanterde npcye item satmaya çalıştığımda normal envanterden item siliniyor k envanterdeki item silinmiyor bunu nasıl düzeltiriz
Sorunun çözümünü bende bilmiyorum sanırım eksik ekleme yapmışsınız yada sell fonksiyonunda INVENTORY kısmı eksik olabilir k envanterinin konusu altındaki fixleri deneyebilirsiniz yeni konu açmanızı tavsiye ederim.
 
Çözüm
Tüm problemleriniz çözüldü mü ?
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst