#ifdef ENABLE_ITEM_ATTR_UPDATE
case USE_UPDATE_ATTRIBUTE:
{
if (!IsValidItemPosition(DestCell))
return false;
LPITEM item2 = GetItem(DestCell);
if (!item2)
return false;
if (item2->IsEquipped() || item2->IsExchanging())
return false;
if (item2->isLocked())
return false;
if (item2->GetAttributeCount() == 0)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("변경할 속성이 없습니다."));
return false;
}
if (item2->GetAttributeSetIndex() == -1 || ITEM_COSTUME == item2->GetType() || IS_SET(item2->GetAntiFlag(), ITEM_ANTIFLAG_ENCHANT))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
return false;
}
if (item2->UpdateAttributes(item->GetValue(ITEM_VALUE_UPDATE_ATTR_SPECIAL) == 1 ? true : false))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경하였습니다."));
if (IS_SET(item->GetFlag(), ITEM_FLAG_STACKABLE) && !IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_STACK) && item->GetCount() > 1)
item->SetCount(item->GetCount() - 1);
else
ITEM_MANAGER::instance().RemoveItem(item);
}
}
break;
#endif