//::------------------------------------------------------------------------::// //:: Script: dk_ouai ::// //:: Location: OnUncquiredItem ::// //:: Author: Darvin Kezar ::// //:: Created: 2002-12-16 ::// //::------------------------------------------------------------------------::// #include "dk_handler" void main() { object oObject = GetModuleItemLost(); object oPossessor = GetItemPossessor(oObject); object oLoser = GetModuleItemLostBy(); if(!GetIsPC(oLoser)) return; object oItem, oNew, oLost; switch(GetObjectType(oPossessor)) { case OBJECT_TYPE_CREATURE: if(GetIsUnAcquirable(oObject)) return; if(!GetIsPC(oPossessor)) return; oNew = CreateItemOnObject(GetResRef(oObject), oLoser, GetNumStackedItems(oObject)); if(GetIdentified(oObject)) SetIdentified(oNew, TRUE); oLost = GetFirstItemInInventory(oObject); while(GetIsObjectValid(oLost)) { oItem = CreateItemOnObject(GetResRef(oLost), oNew, GetNumStackedItems(oLost)); if(GetIdentified(oLost)) SetIdentified(oItem, TRUE); DestroyObject(oLost); oLost = GetNextItemInInventory(oObject); } DestroyObject(oObject); SendMessageToPC(oPossessor, "You cannot barter these items."); SendMessageToPC(oLoser, "You cannot barter these items."); break; case OBJECT_TYPE_STORE: break; case OBJECT_TYPE_PLACEABLE: if(GetTag(oPossessor)=="Trashcan"&&GetIsDestroyable(oObject)) { DestroyObject(oObject); return; } if(GetIsUnAcquirable(oObject)) return; oNew = CreateItemOnObject(GetResRef(oObject), oLoser, GetNumStackedItems(oObject)); if(GetIdentified(oObject)) SetIdentified(oNew, TRUE); oLost = GetFirstItemInInventory(oObject); while(GetIsObjectValid(oLost)) { oItem = CreateItemOnObject(GetResRef(oLost), oNew, GetNumStackedItems(oLost)); if(GetIdentified(oLost)) SetIdentified(oItem, TRUE); DestroyObject(oLost); oLost = GetNextItemInInventory(oObject); } DestroyObject(oObject); if(!GetIsDestroyable(oObject)) SendMessageToPC(oLoser, "You cannot remove this item."); else SendMessageToPC(oLoser, "You cannot drop these items."); break; default: if(GetIsUnAcquirable(oObject)) return; if(!GetIsObjectValid(GetAreaFromLocation(GetLocation(oObject)))) return; oNew = CreateItemOnObject(GetResRef(oObject), oLoser, GetNumStackedItems(oObject)); if(GetIdentified(oObject)) SetIdentified(oNew, TRUE); oLost = GetFirstItemInInventory(oObject); while(GetIsObjectValid(oLost)) { oItem = CreateItemOnObject(GetResRef(oLost), oNew, GetNumStackedItems(oLost)); if(GetIdentified(oLost)) SetIdentified(oItem, TRUE); DestroyObject(oLost); oLost = GetNextItemInInventory(oObject); } DestroyObject(oObject); SendMessageToPC(oLoser, "You cannot drop these items."); } }