Çözüldü Hızlı bk ruh taşı okuma (Gerekli beceriye ait beceri kitabı yok uyarısı)

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

DELIASIL

Premium Üye
Premium Üye
Üye
Mesaj
170
Çözümler
7
Beğeni
39
Puan
89
Ticaret Puanı
0
Kod:
Genişlet Daralt Kopyala
https://www.mmotutkunlari.com/konu/hızlı-ruhtaşı-ve-bk-okuma-sistemi.16082

Bu konudaki sistemin eklemesini yaptım fakat bklar K envanterinde diye Gerekli beceriye ait beceri kitabı yok uyarısı alıyorum,

item_char.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_SKILL_BOOK_READING
int CHARACTER::BKBul(long skillindex) const
{
    int cell = 999;
    LPITEM item = NULL;
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
    for (int i = 0; i < SKILL_BOOK_INVENTORY_MAX_NUM; ++i)
    {
        item = GetItem(TItemPos(SKILL_BOOK_INVENTORY, i));
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#else
    for (int i = 0; i < INVENTORY_MAX_NUM; ++i)
    {
        item = GetInventoryItem(i);
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#endif
    return cell;
}
#endif


----

K envanterine bakması için çok yol denedim bulamadım Konu hakkında tecrübesi olan aradaşlardan ricamdır teşekkürler.
 
Çözüm
Şöyle dener misin ?
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SKILL_BOOK_READING
int CHARACTER::BKBul(long skillindex) const
{
    int cell = 999;
    LPITEM item = NULL;
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
    for (int i = 0; i < SKILL_BOOK_INVENTORY_MAX_NUM; ++i)
    {
        item = GetItem(TItemPos(SKILL_BOOK_INVENTORY, i));
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#ifdef ENABLE_SPECIAL_INVENTORY
    for (int i = 0; i < SPECIAL_INVENTORY_MAX_NUM; ++i)
    {
        item = GetItem(TItemPos(SPECIAL_INVENTORY, i));
        if (NULL...
Şöyle dener misin ?
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SKILL_BOOK_READING
int CHARACTER::BKBul(long skillindex) const
{
    int cell = 999;
    LPITEM item = NULL;
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
    for (int i = 0; i < SKILL_BOOK_INVENTORY_MAX_NUM; ++i)
    {
        item = GetItem(TItemPos(SKILL_BOOK_INVENTORY, i));
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#ifdef ENABLE_SPECIAL_INVENTORY
    for (int i = 0; i < SPECIAL_INVENTORY_MAX_NUM; ++i)
    {
        item = GetItem(TItemPos(SPECIAL_INVENTORY, i));
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#endif

#else
    for (int i = 0; i < INVENTORY_MAX_NUM; ++i)
    {
        item = GetInventoryItem(i);
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#endif
    return cell;
}
#endif

 
Son düzenleme:
Çözüm
dosyanda sıkıntılı kısımlar var mesela;
Kod:
Genişlet Daralt Kopyala
LPITEM CHARACTER::GetSkillBookInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetUpgradeItemsInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetStoneInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetBoxInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetEfsunInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetCicekInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}

        if (item->IsDragonSoul())
            item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyCell));
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
        else if (item->IsSkillBook())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsUpgradeItem())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsStone())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsBox())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsEfsun())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsCicek())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
#endif

bunları düzeltmen gerekiyor.
 
Şöyle dener misin ?
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SKILL_BOOK_READING
int CHARACTER::BKBul(long skillindex) const
{
    int cell = 999;
    LPITEM item = NULL;
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
    for (int i = 0; i < SKILL_BOOK_INVENTORY_MAX_NUM; ++i)
    {
        item = GetItem(TItemPos(SKILL_BOOK_INVENTORY, i));
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#ifdef ENABLE_SPECIAL_INVENTORY
    for (int i = 0; i < SPECIAL_INVENTORY_MAX_NUM; ++i)
    {
        item = GetItem(TItemPos(SPECIAL_INVENTORY, i));
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#endif

#else
    for (int i = 0; i < INVENTORY_MAX_NUM; ++i)
    {
        item = GetInventoryItem(i);
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#endif
    return cell;
}
#endif

dosyanda sıkıntılı kısımlar var mesela;
Kod:
Genişlet Daralt Kopyala
LPITEM CHARACTER::GetSkillBookInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetUpgradeItemsInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetStoneInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetBoxInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetEfsunInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}
LPITEM CHARACTER::GetCicekInventoryItem(WORD wCell) const
{
    return GetItem(TItemPos(INVENTORY, wCell));
}

        if (item->IsDragonSoul())
            item->AddToCharacter(this, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyCell));
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
        else if (item->IsSkillBook())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsUpgradeItem())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsStone())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsBox())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsEfsun())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
        else if (item->IsCicek())
            item->AddToCharacter(this, TItemPos(INVENTORY, iEmptyCell));
#endif

bunları düzeltmen gerekiyor.
düzenliyorum şuan
 
Son düzenleme:
Şöyle dener misin ?
C++:
Genişlet Daralt Kopyala
#ifdef ENABLE_SKILL_BOOK_READING
int CHARACTER::BKBul(long skillindex) const
{
    int cell = 999;
    LPITEM item = NULL;
#ifdef ENABLE_SPLIT_INVENTORY_SYSTEM
    for (int i = 0; i < SKILL_BOOK_INVENTORY_MAX_NUM; ++i)
    {
        item = GetItem(TItemPos(SKILL_BOOK_INVENTORY, i));
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#ifdef ENABLE_SPECIAL_INVENTORY
    for (int i = 0; i < SPECIAL_INVENTORY_MAX_NUM; ++i)
    {
        item = GetItem(TItemPos(SPECIAL_INVENTORY, i));
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#endif

#else
    for (int i = 0; i < INVENTORY_MAX_NUM; ++i)
    {
        item = GetInventoryItem(i);
        if (NULL != item && item->GetSocket(0) == skillindex && item->GetVnum() == 50300)
        {
            if (m_pkMyShop && m_pkMyShop->IsSellingItem(item->GetID()))
                continue;
            else
                cell = item->GetCell();
        }
    }
#endif
    return cell;
}
#endif


Kod:
Genişlet Daralt Kopyala
https://www.mmotutkunlari.com/konu/hızlı-bk-ve-ruh-taşı-okuma-sistemi-k-envanter-uyarlama.17733

Bu konunuzdan yola çıkarak sorunu çözdüm teşekkür ederim <3
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst