NWScript:
int IsInInventory(object oContainer, string sItemTag)
{
object oItem;
if (GetHasInventory(oContainer))
{
oItem = GetFirstItemInInventory(oContainer);
while ( OBJECT_INVALID != oItem )
{
if (GetTag(oItem) == sItemTag)
{ return TRUE; }
oItem = GetNextItemInInventory(oContainer);
}
}
return FALSE;
}
int IsWeapon(int nBaseType)
{
int nResult;
switch (nBaseType)
{
case BASE_ITEM_BASTARDSWORD :
case BASE_ITEM_BATTLEAXE :
case BASE_ITEM_CBLUDGWEAPON :
case BASE_ITEM_CLUB :
case BASE_ITEM_DAGGER :
case BASE_ITEM_DART :
case BASE_ITEM_DIREMACE :
case BASE_ITEM_DOUBLEAXE :
case BASE_ITEM_GREATAXE :
case BASE_ITEM_GREATSWORD :
case BASE_ITEM_HALBERD :
case BASE_ITEM_HANDAXE :
case BASE_ITEM_HEAVYCROSSBOW :
case BASE_ITEM_HEAVYFLAIL :
case BASE_ITEM_KAMA :
case BASE_ITEM_KATANA :
case BASE_ITEM_KUKRI :
case BASE_ITEM_LIGHTCROSSBOW :
case BASE_ITEM_LIGHTFLAIL :
case BASE_ITEM_LIGHTHAMMER :
case BASE_ITEM_LIGHTMACE :
case BASE_ITEM_LONGBOW :
case BASE_ITEM_LONGSWORD :
case BASE_ITEM_MAGICROD :
case BASE_ITEM_MAGICSTAFF :
case BASE_ITEM_MAGICWAND :
case BASE_ITEM_MORNINGSTAR :
case BASE_ITEM_QUARTERSTAFF :
case BASE_ITEM_RAPIER :
case BASE_ITEM_SCIMITAR :
case BASE_ITEM_SCYTHE :
case BASE_ITEM_SHORTBOW :
case BASE_ITEM_SHORTSPEAR :
case BASE_ITEM_SHORTSWORD :
case BASE_ITEM_SHURIKEN :
case BASE_ITEM_SICKLE :
case BASE_ITEM_SLING :
case BASE_ITEM_THROWINGAXE :
case BASE_ITEM_TWOBLADEDSWORD :
case BASE_ITEM_WARHAMMER : return TRUE;
break;
}
return FALSE;
}
int IsArmed(object oPC)
{
object oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC);
int nBaseType1 = GetBaseItemType(oItem);
oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC);
int nBaseType2 = GetBaseItemType(oItem);
if (IsWeapon(nBaseType1) == TRUE || IsWeapon(nBaseType2) == TRUE) { return TRUE; }
return FALSE;
}