Initial Upload
Initial Upload
This commit is contained in:
87
_module/nss/_on_unacquire.nss
Normal file
87
_module/nss/_on_unacquire.nss
Normal file
@@ -0,0 +1,87 @@
|
||||
//::------------------------------------------------------------------------:://
|
||||
//:: 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.");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user