Di tanto in tanto continuo a leggere, tra tuuutti i vari problemi dei privati, uno in particolare (piuttosto richiesto tra l'altro): gli anelli/guanti del ladro sono stackabili ma la stack viene indossata interamente, facendo scadere il tempo a tutti gli oggetti di essa.
O vengono resi stackabili e si possono indossare senza buggarsi, o si tengono non stackabili. NON esiste una via di mezzo.
Perciò, ecco a voi una soluzione evergreen.
Aprite char_item.cpp e andate in:
Andate alla riga con:
o
se avete le stack maggiori di 200 (o UCHAR_MAX).
Sostituite:
con:
Che cosa fa? Molto semplicemente se l'item è UNIQUE e nella cella ce n'è più di 1 e quell'oggetto UNIQUE è stackabile, viene preso il vnum e il count, setta l'item che viene equipaggiato a 1, e vi rimette nell'inventario, nella cella originale dove stava la stack, la quantità precedente meno 1.
Fine.
Enjoy (sempre che qualcuno la legga).
O vengono resi stackabili e si possono indossare senza buggarsi, o si tengono non stackabili. NON esiste una via di mezzo.
Perciò, ecco a voi una soluzione evergreen.
Aprite char_item.cpp e andate in:
C++:
bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell)
C++:
BYTE bOldCell = item->GetCell();
C++:
WORD wOldCell = item->GetCell();
Sostituite:
C++:
if (item->EquipTo(this, iWearCell))
{
SyncQuickslot(QUICKSLOT_TYPE_ITEM, bOldCell, iWearCell);
}
C++:
if (item->EquipTo(this, iWearCell))
{
if(ITEM_UNIQUE == item->GetType() && item->GetCount() > 1 && item->IsStackable())
{
DWORD dwCount = item->GetCount();
DWORD dwVnum = item->GetVnum();
item->SetCount(1);
LPITEM item2 = ITEM_MANAGER::instance().CreateItem( dwVnum, dwCount-1 );
item2->AddToCharacter(this, TItemPos(INVENTORY, bOldCell));
}
SyncQuickslot(QUICKSLOT_TYPE_ITEM, bOldCell, iWearCell);
}
Che cosa fa? Molto semplicemente se l'item è UNIQUE e nella cella ce n'è più di 1 e quell'oggetto UNIQUE è stackabile, viene preso il vnum e il count, setta l'item che viene equipaggiato a 1, e vi rimette nell'inventario, nella cella originale dove stava la stack, la quantità precedente meno 1.
Fine.
Enjoy (sempre che qualcuno la legga).