Aantioch_Infernum/_module/nss/_on_unacquire.nss
Jaysyn904 22947ad4b6 Initial Upload
Initial Upload
2023-08-08 16:22:17 -04:00

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.");
}
}