Yardım Artı Basmada İtem Sayısı Gösterme K envanter hatası

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

Whiterose

Sanane be kardeş...
Premium Üye
Grafiker
MT Üye
Editör
Mesaj
386
Çözümler
7
Beğeni
1.478
Puan
1.049
Ticaret Puanı
0
Merhabalar, sorunsuz ekleme yaptım.
sysser falan hiçbir şey yok ama tek sıkıntım + basmada istenilen itemler k envanterdeyken görmüyor.
Normal envantere alınca görüyor, yardımlarınızı bekliyorum. :loveya:
Konu LİNK
Ekran Alıntısı.webp
23.webp
 
Son düzenleme:
uirefineye baktım ama orayla ilgili bir kod bulamadım. char_itemde gördüğüm bir yer var belki oradandır diye aşağıya bırakıcam.

char_item.cpp:
Genişlet Daralt Kopyala
bool CHARACTER::RefineInformation(BYTE bCell, BYTE bType, int iAdditionalCell)
{
    if (bCell > INVENTORY_MAX_NUM)
        return false;

    LPITEM item = GetInventoryItem(bCell);

bu kodda geliyor

C++:
Genişlet Daralt Kopyala
LPITEM CHARACTER::GetItem(TItemPos Cell) const
{
    if (!IsValidItemPosition(Cell))
        return NULL;
    WORD wCell = Cell.cell;
    BYTE window_type = Cell.window_type;
    switch (window_type)
    {
    case INVENTORY:
    case EQUIPMENT:
        if (wCell >= INVENTORY_AND_EQUIP_SLOT_MAX)
        {
            sys_err("CHARACTER::GetInventoryItem: invalid item cell %d", wCell);
            return NULL;
        }
        return m_pointsInstant.pItems[wCell];
    case DRAGON_SOUL_INVENTORY:
        if (wCell >= DRAGON_SOUL_INVENTORY_MAX_NUM)
        {
            sys_err("CHARACTER::GetInventoryItem: invalid DS item cell %d", wCell);
            return NULL;
        }
        return m_pointsInstant.pDSItems[wCell];

    default:
        return NULL;
    }
    return NULL;
}

bu kısma bağlanıyor. sizin k envanterler burada tanımlı değil mi?
 
Demek istediğini bu kodlar senin dosyanda mevcut mu? ben bu şekilde anladım.
Pek aram iyi değil bu işlerde, kör ve cahilim. :D
Bakmak istediğin bir şey olur diye ekledim dosyayı, bu arada vakit ayırıp ilgilendiğin için çok teşekkür ederim.:loveya:
1.webp

2.webp
 

Dosya Eklentileri

Demek istediğini bu kodlar senin dosyanda mevcut mu? ben bu şekilde anladım.
Pek aram iyi değil bu işlerde, kör ve cahilim. :D
Bakmak istediğin bir şey olur diye ekledim dosyayı, bu arada vakit ayırıp ilgilendiğin için çok teşekkür ederim.:loveya:
17590 eklentisini görüntüle
17591 eklentisini görüntüle
pythonplayer.cpp:
Genişlet Daralt Kopyala
DWORD CPythonPlayer::GetItemCountByVnum(DWORD dwVnum)
{
    DWORD dwCount = 0;

    for (int i = 0; i < c_Inventory_Count; ++i)
    {
        const TItemData & c_rItemData = m_playerStatus.aItem[i];
        if (c_rItemData.vnum == dwVnum)
        {
            dwCount += c_rItemData.count;
        }
    }

    return dwCount;
}

burada c inventory count var ya onu sendeki en son eklenen k envanter koduyla değişip build alıp dener misin?
 
pythonplayer.cpp:
Genişlet Daralt Kopyala
DWORD CPythonPlayer::GetItemCountByVnum(DWORD dwVnum)
{
    DWORD dwCount = 0;

    for (int i = 0; i < c_Inventory_Count; ++i)
    {
        const TItemData & c_rItemData = m_playerStatus.aItem[i];
        if (c_rItemData.vnum == dwVnum)
        {
            dwCount += c_rItemData.count;
        }
    }

    return dwCount;
}

burada c inventory count var ya onu sendeki en son eklenen k envanter koduyla değişip build alıp dener misin?

K envanter kodu derken bundan mı bahsediyorsun?
Ekran Alıntısı.webp

for (int i = 0; i < c_Inventory_Count; ++i) bu kısımda 0 yazan değeri değiştireceğim değil mi?



BYTE değerini UINT çektir sorunun çözülcek.
RefineInformation içerisinde haberin olsun.
Tam olarak burası mı ? BYTE yazan yerleri sadece UINT mi yazacağım?
resim_2024-06-29_112327794.webp
 

Dosya Eklentileri

  • resim_2024-06-29_111959167.webp
    resim_2024-06-29_111959167.webp
    7,5 KB · Gösterim: 4
C++:
Genişlet Daralt Kopyala
DWORD CPythonPlayer::GetItemCountByVnum(DWORD dwVnum)
{
    DWORD dwCount = 0;

    for (int i = 0; i < (c_Special_ItemSlot_Count + c_Inventory_Count); ++i)
    {
        const TItemData & c_rItemData = m_playerStatus.aItem[i];
        if (c_rItemData.vnum == dwVnum)
        {
            dwCount += c_rItemData.count;
        }
    }

    return dwCount;
}

kodu böyle yapıp dener misin?
 
C++:
Genişlet Daralt Kopyala
DWORD CPythonPlayer::GetItemCountByVnum(DWORD dwVnum)
{
    DWORD dwCount = 0;

    for (int i = 0; i < (c_Special_ItemSlot_Count + c_Inventory_Count); ++i)
    {
        const TItemData & c_rItemData = m_playerStatus.aItem[i];
        if (c_rItemData.vnum == dwVnum)
        {
            dwCount += c_rItemData.count;
        }
    }

    return dwCount;
}

kodu böyle yapıp dener misin?
Ekran_Alnts.webp

Yardımların için çok teşekkür ederim, vaktini aldım ama olmadı.
 
Üst