Metin2 Private Shop Fix - Crash la expirarea itemelor
Acest fix rezolva crash core atunci cand un item cu timp expira in timp ce este pus intr-un Magazin Privat. Item-ul este scos corect din m_itemVector si din shop inainte sa ramana pointeri invalizi.
- previne crash-uri cand expira iteme din shop;
- scoate item-ul expirat din grid-ul magazinului;
- functioneaza pentru Private Shop clasic;
- adauga verificare suplimentara in DestroyItem;
- poate necesita mici adaptari in functie de sursa si versiunea C++.
*Link download / Code:
Deschide game/shop.h si cauta:
Code:
void SetPCShop(LPCHARACTER ch);Deschide game/shop.cpp si cauta:
Code:
void CShop::SetPCShop(LPCHARACTER ch)
{
m_pkPC = ch;
}Deschide game/item_manager.cpp si cauta:
Code:
#include "char.h"Cauta functia ITEM_MANAGER::RemoveItem:
Code:
void ITEM_MANAGER::RemoveItem(LPITEM item, const char * c_pszReason)
{
LPCHARACTER o;In aceeasi functie cauta:
Code:
else
{
o->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255);
item->RemoveFromCharacter();
}Cauta functia ITEM_MANAGER::DestroyItem si cauta:
Code:
if (item->GetOwner())
{
if (CHARACTER_MANAGER::instance().Find(item->GetOwner()->GetPlayerID()) != NULL)Deschide game/item.cpp si cauta:
Code:
int CItem::GetRefineLevel()
{
const char* name = GetName();
const char* p = strrchr(name, '+');Daca nu folosesti sistemul de traduceri client-side cu [LS;...], poti folosi mesajul:
Pentru limba romana, traducerea poate fi:
Acest fix este pentru Private Shop-ul clasic. Pentru Offline Shop trebuie adaptata logica de eliminare a itemului la sistemul folosit de sursa ta.


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

