void Player::dropLoot(Container* corpse)
{
if(corpse && lootDrop && vocationId != VOCATION_NONE)
{
if(inventory[SLOT_NECKLACE] && inventory[SLOT_NECKLACE]->getID() == ITEM_AMULETOFLOSS &&
getSkull() != SKULL_RED && getSkull() != SKULL_BLACK && g_game.getWorldType() != WORLD_TYPE_PVP_ENFORCED)
{
g_game.internalRemoveItem(inventory[SLOT_NECKLACE], 1);
}
else
{
for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i)
{
Item* item = inventory[i];
if(item)
{
if(getSkull() == SKULL_RED || getSkull() == SKULL_BLACK || i != SLOT_BACKPACK && random_range(1, (item->getContainer() ? 100 : 1000)) <= getDropPercent())
{
g_game.internalMoveItem(this, corpse, INDEX_WHEREEVER, item, item->getItemCount(), 0);
sendInventoryItem((slots_t)i, NULL);
}
}
}
}
}
if(!inventory[SLOT_BACKPACK])
__internalAddThing(SLOT_BACKPACK, Item::CreateItem(ITEM_BAG));
}