Este un fix by @OWSAP / @ZeNu
Când scoți materialele din fereastra de rafinare, jocul șterge din greșeală și itemul pe care vrei să-l rafinezi (itemul principal), pentru că este trecut în lista de “iteme necesare”.When item materials are removed from the refinment process the source item that is beeing refined also get's removed since it's apart of the required item list and this is what causes the game core to crash after any instance like warping.
Din cauza asta, după aceea jocul poate da crash (core), de obicei după warp/teleport.
*Link download / Code:
Deschidem char_item.cpp si cautam:
Code:
int CHARACTER::CountSpecifyItem(DWORD vnum) const
{
int count = 0;
LPITEM item;
for (int i = 0; i < INVENTORY_MAX_NUM; ++i)
{Cautam:
Code:
void CHARACTER::RemoveSpecifyItem(DWORD vnum, DWORD count)
{
if (0 == count)
return;
for (UINT i = 0; i < INVENTORY_MAX_NUM; ++i)
{Cautam (de 2 ori):
Code:
if (CountSpecifyItem(prt->materials[i].vnum) < prt->materials[i].count)Cautam (de 2 ori):
Code:
RemoveSpecifyItem(prt->materials[i].vnum, prt->materials[i].count);Deschidem char.h si cautam:
Code:
int CountSpecifyItem(DWORD vnum) const;
void RemoveSpecifyItem(DWORD vnum, DWORD count = 1);

la acest mesaj și conținutul se va afișa automat.

