else if (!IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_GIVE | ITEM_ANTIFLAG_DROP) && GetParty())
{
// 다른 파티원 소유권 아이템을 주으려고 한다면
NPartyPickupDistribute::FFindOwnership funcFindOwnership(item);
GetParty()->ForEachOnlineMember(funcFindOwnership);
LPCHARACTER owner = funcFindOwnership.owner;
// @fixme115
if (!owner)
return false;
/*
int iEmptyCell;
#ifdef ENABLE_SPECIAL_STORAGE
if (item->IsUpgradeItem())
{
if (!(owner && (iEmptyCell = owner->GetEmptyUpgradeInventory(item)) != -1))
{
owner = this;
if ((iEmptyCell = GetEmptyUpgradeInventory(item)) == -1)
{
owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NO_EMPTY_SPACE_IN_INVENTORY"));
return false;
}
}
}
else if (item->IsBook())
{
if (!(owner && (iEmptyCell = owner->GetEmptyBookInventory(item)) != -1))
{
owner = this;
if ((iEmptyCell = GetEmptyBookInventory(item)) == -1)
{
owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NO_EMPTY_SPACE_IN_INVENTORY"));
return false;
}
}
}
else if (item->IsStone())
{
if (!(owner && (iEmptyCell = owner->GetEmptyStoneInventory(item)) != -1))
{
owner = this;
if ((iEmptyCell = GetEmptyStoneInventory(item)) == -1)
{
owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NO_EMPTY_SPACE_IN_INVENTORY"));
return false;
}
}
}
else if (item->IsChest())
{
if (!(owner && (iEmptyCell = owner->GetEmptyChestInventory(item)) != -1))
{
owner = this;
if ((iEmptyCell = GetEmptyChestInventory(item)) == -1)
{
owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NO_EMPTY_SPACE_IN_INVENTORY"));
return false;
}
}
}
else
#endif
{
if (!(owner && (iEmptyCell = owner->GetEmptyInventory(item->GetSize())) != -1))
{
owner = this;
if ((iEmptyCell = GetEmptyInventory(item->GetSize())) == -1)
{
owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("소지하고 있는 아이템이 너무 많습니다."));
return false;
}
}
}
*/
item->RemoveFromGround();
#ifdef ENABLE_SPECIAL_STORAGE
if (item->IsUpgradeItem())
// item->AddToCharacter(owner, TItemPos(UPGRADE_INVENTORY, iEmptyCell));
owner->AutoGiveItem(item);
else if (item->IsBook())
// item->AddToCharacter(owner, TItemPos(BOOK_INVENTORY, iEmptyCell));
owner->AutoGiveItem(item);
else if (item->IsStone())
// item->AddToCharacter(owner, TItemPos(STONE_INVENTORY, iEmptyCell));
owner->AutoGiveItem(item);
else if (item->IsChest())
// item->AddToCharacter(owner, TItemPos(CHEST_INVENTORY, iEmptyCell));
owner->AutoGiveItem(item);
#ifdef ENABLE_DRAGON_SOUL_SYSTEM
else if (item->IsDragonSoul())
// item->AddToCharacter(owner, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyCell));
owner->AutoGiveItem(item);
#endif
else
// item->AddToCharacter(owner, TItemPos(INVENTORY, iEmptyCell));
// item->AddToCharacter(owner, TItemPos(INVENTORY, iEmptyCell));
owner->AutoGiveItem(item);
#else
#ifdef ENABLE_DRAGON_SOUL_SYSTEM
if (item->IsDragonSoul())
// item->AddToCharacter(owner, TItemPos(DRAGON_SOUL_INVENTORY, iEmptyCell));
owner->AutoGiveItem(item);
else
#endif
// item->AddToCharacter(owner, TItemPos(INVENTORY, iEmptyCell));
owner->AutoGiveItem(item);
#endif
char szHint[32+1];
snprintf(szHint, sizeof(szHint), "%s %u %u", item->GetName(), item->GetCount(), item->GetVnum());
LogManager::instance().ItemLog(owner, item, "GET", szHint);
if (owner == this)
{
#if defined(ENABLE_CHATTING_WINDOW_RENEWAL)
ChatPacket(CHAT_TYPE_ITEM_INFO, LC_TEXT("아이템 획득: %s"), item->GetName());
#else
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 획득: %s"), item->GetName());
#endif
}
else
{
#if defined(ENABLE_CHATTING_WINDOW_RENEWAL)
owner->ChatPacket(CHAT_TYPE_ITEM_INFO, LC_TEXT("아이템 획득: %s 님으로부터 %s"), GetName(), item->GetName());
ChatPacket(CHAT_TYPE_ITEM_INFO, LC_TEXT("아이템 전달: %s 님에게 %s"), owner->GetName(), item->GetName());
#else
owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 획득: %s 님으로부터 %s"), GetName(), item->GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 전달: %s 님에게 %s"), owner->GetName(), item->GetName());
#endif
}
if (item->GetType() == ITEM_QUEST)
quest::CQuestManager::instance().PickupItem (owner->GetPlayerID(), item);
return true;
}