Un alt system de Distruge Item cu design nou.
Este systemul de sterge iteme, cu care poti sterge obiectele direct din inventar.
*Poze / Video (obligatoriu):
*Link download:
Edit - Un mic FIX:
- @LibresoRecomand o modificare in sursa la acest sistem, elimina unele buguri
bool CHARACTER::CraftItem(TItemPos Cell)
{
LPITEM item = NULL;
if (!CanHandleItem())
{
if (NULL != DragonSoul_RefineWindow_GetOpener())
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("강화창을 연 상태에서는 아이템을 옮길 수 없습니다."));
return false;
}
if (IsDead())
return false;
if (!IsValidItemPosition(Cell) || !(item = GetItem(Cell)))
return false;
if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_DESTROY))
return false;
if (item->IsExchanging())
return false;
if (true == item->isLocked())
return false;
#if defined(__SOUL_BIND_SYSTEM__)
if (item->IsSealed())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot destroy a soulbound item."));
return false;
}
#endif
if (quest::CQuestManager::instance().GetPCForce(GetPlayerID())->IsRunning() == true)
return false;
if (item->GetCount() <= 0)
return false;
#include <set>
std::set<int> invalidItemTypes = {
ITEM_USE, ITEM_AUTOUSE, ITEM_MATERIAL, ITEM_SPECIAL, ITEM_TOOL,
ITEM_LOTTERY, ITEM_ELK, ITEM_METIN, ITEM_CONTAINER, ITEM_FISH,
ITEM_ROD, ITEM_RESOURCE, ITEM_CAMPFIRE, ITEM_UNIQUE, ITEM_SKILLBOOK,
ITEM_QUEST, ITEM_POLYMORPH, ITEM_TREASURE_BOX, ITEM_TREASURE_KEY, ITEM_SKILLFORGET,
ITEM_GIFTBOX, ITEM_PICK, ITEM_HAIR, ITEM_TOTEM, ITEM_BLEND,
ITEM_COSTUME, ITEM_DS, ITEM_SPECIAL_DS, ITEM_EXTRACT, ITEM_SECONDARY_COIN,
ITEM_RING, ITEM_BELT, ITEM_PET
};
if (invalidItemTypes.count(item->GetType()) > 0)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s Wrong Item"), item->GetClientName());
return false;
}
if (GetLevel() < 35)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You level is to low, must be over level 35"));
return false;
}
for (int level = 1; level <=34; ++level)
{
if (item->CheckItemUseLevel(level))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Item level is to low, must be over level 35"));
return false;
}
}
int prob = number(1, 2); // give prob 1,2
int dwCount = number(1, 12); // give count
int dwVnum = 51001; //give item
if (prob == 1)
{
SyncQuickslot(QUICKSLOT_TYPE_ITEM, Cell.cell, 255);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Failed, %s item was destroyed."), item->GetClientName());
ITEM_MANAGER::instance().RemoveItem(item, "DESTROYED BY PLAYER");
}
else
{
SyncQuickslot(QUICKSLOT_TYPE_ITEM, Cell.cell, 255);
ITEM_MANAGER::instance().RemoveItem(item, "DESTROYED BY PLAYER");
// LPITEM new_item = AutoGiveItem(dwVnum);
// if (new_item)
// {
// new_item->SetCount(dwCount);
// }
AutoGiveItem(dwVnum, dwCount, false, true);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Success, you won Energy Fragment %d"), dwCount);
}
return true;
}