88 lines
3.1 KiB
Plaintext
88 lines
3.1 KiB
Plaintext
//::------------------------------------------------------------------------:://
|
|
//:: 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.");
|
|
}
|
|
}
|