Che conseguenze può avere questo bug?
Questa funzione può essere dei seguenti problemi:
- Cercando di eliminare su un item un determinato bonus, questo bonus seppur presente non verrà eliminato.
Esempio:
-In condizioni particolari questa funzione può portare al crash del core o dell'intera macchina.
Esempio (Supponiamo che esista un item che come secondo bonus abbia HP):
Quali rev sono affette da questo bug?Come faccio a capire se ho questo bug?
Attualmente tutte le revisioni sia pubbliche che private sono affette da questo bug.
Puoi verificare di essere affetto da questo bug se la tua funzione che si trova in item_attribute.cpp
è così scritta:
Il Fix
Il fix è estremamente semplice:
Questa funzione può essere dei seguenti problemi:
- Cercando di eliminare su un item un determinato bonus, questo bonus seppur presente non verrà eliminato.
Esempio:
C++:
pItem->RemoveAttributeType(APPLY_SKILL_DAMAGE_BONUS);
Esempio (Supponiamo che esista un item che come secondo bonus abbia HP):
Codice:
pItem->RemoveAttributeType(APPLY_MAX_HP);
Quali rev sono affette da questo bug?Come faccio a capire se ho questo bug?
Attualmente tutte le revisioni sia pubbliche che private sono affette da questo bug.
Puoi verificare di essere affetto da questo bug se la tua funzione che si trova in item_attribute.cpp
è così scritta:
C++:
bool CItem::RemoveAttributeType(BYTE bType)
{
int index = FindAttribute(bType);
return index != -1 && RemoveAttributeType(index);
}
Il Fix
Il fix è estremamente semplice:
C++:
//Funzione Buggata
bool CItem::RemoveAttributeType(BYTE bType)
{
int index = FindAttribute(bType);
return index != -1 && RemoveAttributeType(index);
}
//Funzione Fixata
bool CItem::RemoveAttributeType(BYTE bType)
{
int index = FindAttribute(bType);
return index != -1 && RemoveAttributeAt(index);
}