Yardım K envanter item satmak

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

CalvinGiorgio

Üye
Üye
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
 
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