Değerli Forum üyeleri npcden alınan itemlerin üst üste gelmesini sizlere anlatacağım.
game src/shop.cpp
içinde bulmamız gereken
satırı vereceğim kod gibi yapmanız gerekiyor.
verdiğim satırı aradığınızda 2 sonuç çıkar. if'in içindeki pazarlar içindir else'nin içindeki npcler içindir.
k envanter için de ise şu kısımları uyarlamanız gerek;
game src/shop.cpp
C++:
int CShop::Buy(LPCHARACTER ch, BYTE pos)
içinde bulmamız gereken
C++:
item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos));
satırı vereceğim kod gibi yapmanız gerekiyor.
C++:
{
WORD bCount = item->GetCount();
if (IS_SET(item->GetFlag(), ITEM_FLAG_STACKABLE))
{
for (WORD i = 0; i < INVENTORY_MAX_NUM; ++i)
{
LPITEM item2 = ch->GetInventoryItem(i);
if (!item2)
continue;
if (item2->GetVnum() == item->GetVnum())
{
int j;
for (j = 0; j < ITEM_SOCKET_MAX_NUM; ++j)
if (item2->GetSocket(j) != item->GetSocket(j))
break;
if (j != ITEM_SOCKET_MAX_NUM)
continue;
WORD bCount2 = MIN(ITEM_MAX_COUNT - item2->GetCount(), bCount);
bCount -= bCount2;
item2->SetCount(item2->GetCount() + bCount2);
if (bCount == 0)
break;
}
}
item->SetCount(bCount);
}
if (bCount > 0)
item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos));
else
M2_DESTROY_ITEM(item);
}
verdiğim satırı aradığınızda 2 sonuç çıkar. if'in içindeki pazarlar içindir else'nin içindeki npcler içindir.
k envanter için de ise şu kısımları uyarlamanız gerek;
C++:
INVENTORY_MAX_NUM
ch->GetInventoryItem(i)
(ch, TItemPos(INVENTORY, iEmptyPos)