Cum se manifesta bugul mai exact.
Faci o esarfa cu 5 bonusuri si o echipezi. Dupa care scrii in chat comanda /costume.
Si te poti uita cum iti pica serverul.
Rezolvarea simpla:
Cod: Selectaţi tot
Dezactivezi comanda /costume.Intri in /usr/src/sursa_ta/Srcs/Server/game/src/ si cauti cmd_general.cpp.
In cmd_general.cpp cauti: do_costume dupa care o sa aveti mai jos:
Cod: Selectaţi tot
CItem* pAcce = ch->GetWear(WEAR_COSTUME_ACCE);Cod: Selectaţi tot
//CItem* pAcce = ch->GetWear(WEAR_COSTUME_ACCE);Cod: Selectaţi tot
if (pAcce)
{
const char* itemName = pAcce->GetName();
ch->ChatPacket(CHAT_TYPE_INFO, " Acce : %s", itemName);
for (int i = 0; i < pAcce->GetAttributeCount(); ++i)
{
const TPlayerItemAttribute& attr = pAcce->GetAttribute(i);
if (0 < attr.bType)
{
snprintf(buf, bufferSize, FN_point_string(attr.bType), attr.sValue);
ch->ChatPacket(CHAT_TYPE_INFO, " %s", buf);
}
}
if (pAcce->IsEquipped() && arg1[0] == 'a')
ch->UnequipItem(pAcce);
}
Cod: Selectaţi tot
/*if (pAcce)
{
const char* itemName = pAcce->GetName();
ch->ChatPacket(CHAT_TYPE_INFO, " Acce : %s", itemName);
for (int i = 0; i < pAcce->GetAttributeCount(); ++i)
{
const TPlayerItemAttribute& attr = pAcce->GetAttribute(i);
if (0 < attr.bType)
{
snprintf(buf, bufferSize, FN_point_string(attr.bType), attr.sValue);
ch->ChatPacket(CHAT_TYPE_INFO, " %s", buf);
}
}
if (pAcce->IsEquipped() && arg1[0] == 'a')
ch->UnequipItem(pAcce);
}*/
A doua rezolvare este creata de mine. La mine a functionat perfect pe sursa de la gazer.
Nu vreau like-uri sau chestii la acest tutorial (pentru ca bugu-l l-am descoperit dupa ce a facut Unrivaled post cu rezolvarea). Daca vreti sa dati like pentru acest tutorial puteti sa ii dati lui.










