Yardım K envanter item satmak

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

CalvinGiorgio

Kurumsal Üye
Kurumsal Üye
Üye
Mesaj
669
Çözümler
14
Beğeni
86
Puan
539
Ticaret Puanı
0
Selamun aleyküm. Hayırlı forumlar.
K envanter ile item satmaya çalışınca npc'ye sysser bile vermeden oyundan düşüyor. Ch kapanması felan olmuyor. Bunun için sebep nedir ve çözüm için ne yapılmalıdır ?
@Yeniceri sanada selamun aleyküm kanka :)
 
Son düzenleme:
input_main.cpp içinde arat;

Kod:
case SHOP_SUBHEADER_CG_SELL2:

Değiştir;

C++:
        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
            }

Ara;

Kod:
case SHOP_SUBHEADER_CG_SELL:

Değiştir;

C++:
        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
            }

İfdef kısmını kontrol et senin ifdef tanımın farklı olabilir.
 
input_main.cpp içinde arat;

Kod:
case SHOP_SUBHEADER_CG_SELL2:

Değiştir;

C++:
        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
            }

Ara;

Kod:
case SHOP_SUBHEADER_CG_SELL:

Değiştir;

C++:
        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
            }

İfdef kısmını kontrol et senin ifdef tanımın farklı olabilir.
bunun client tarafıda olmalı sanırım
 
bunun client tarafıda olmalı sanırım
Evet var ama orada bir sorun yok. Zaten konu sahibinin sorunu benim attığım çözüm ile alakalı değilmiş. Başka bir yerden kaynaklı onun sorunu. Bende aynı problemi yaşamıştım verdiğim kodlar ile çözmüştüm.
 
C++:
//shop_manager.cpp'de sell fonksiyonunda

void CShopManager::Sell(LPCHARACTER ch, UINT bCell, BYTE bCount, BYTE bType)

// Oluşturulan değişken

LPITEM item = ch->GetItem(TItemPos(bType, bCell));

//GetItem fonksiyonuyla beraber çalışıyor.

// GetItem fonksiyonu;
LPITEM CHARACTER::GetItem(TItemPos Cell) const

//Buraya eğer k envanteriyle alakalı eklemeniz yoksa satmaması normal. Çünkü window_type switch'inin içine girmesi gerekiyor.

Bir kontrol edin çözemezseniz dcden ulaşın yardımcı olmaya çalışayım.

Emir.#4017
 
C++:
//shop_manager.cpp'de sell fonksiyonunda

void CShopManager::Sell(LPCHARACTER ch, UINT bCell, BYTE bCount, BYTE bType)

// Oluşturulan değişken

LPITEM item = ch->GetItem(TItemPos(bType, bCell));

//GetItem fonksiyonuyla beraber çalışıyor.

// GetItem fonksiyonu;
LPITEM CHARACTER::GetItem(TItemPos Cell) const

//Buraya eğer k envanteriyle alakalı eklemeniz yoksa satmaması normal. Çünkü window_type switch'inin içine girmesi gerekiyor.

Bir kontrol edin çözemezseniz dcden ulaşın yardımcı olmaya çalışayım.

Emir.#4017
merhaba eski bir konu ama bununla ilgili herhangi birşeyt bulamadım nasıl eklerim k envanter npcye item satmıyo yada npcde sat tuşu açıkken iteme basınca 'ExtendedInventoryWindow' object has no attribute '_ExtendedInventoryWindow__SellItem' bu hatayı veriyo ExtendedInventoryWindow var ama içinde ...Sellİtem tanımlı değil yapamadım yapabilrmisin
 
Geri
Üst