Merhaba,
Npcden tekli item aldığınızda envantere tek tek gelir. Bu şekilde o itemden varsa üst üste gelecektir.
game src/shop.cpp
içinde
bul;
satırı bu şekilde değiştir.
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 aynı şeyleri uyarlayabilirsiniz. iyi kullanımlar.
Npcden tekli item aldığınızda envantere tek tek gelir. Bu şekilde o itemden varsa üst üste gelecektir.
game src/shop.cpp
C++:
int CShop::Buy(LPCHARACTER ch, BYTE pos)
bul;
C++:
item->AddToCharacter(ch, TItemPos(INVENTORY, iEmptyPos));
satırı bu şekilde değiştir.
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 aynı şeyleri uyarlayabilirsiniz. iyi kullanımlar.