WoR_PRC8/_module/nss/rhun_on_itemacqu.nss
Jaysyn904 b5e28e52f4 Initial commit
Initial commit [1.18]
2025-04-03 11:49:34 -04:00

157 lines
7.2 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name s_itemacquired
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script is intended to be called by or incorporated into the
Module:OnAcquireItem event (script). It works in conjuction with
s_cleartrash by clearing the destruct time on items picked up by PC's
so they will not near-instantly be destroyed if dropped. Once dropped,
however, they will be marked for destruction by s_cleartrash.
*/
//:://////////////////////////////////////////////
//:: Created By: Scott Thorne (Thornex2@wans.net)
//:: Created On: July 27, 2002
//:://////////////////////////////////////////////
#include "sha_artif_syste2"
void main()
{
//Don't fire before first time entry.
object oPC = GetModuleItemAcquiredBy();
if(GetLocalInt(oPC, "RHUN_ONCE"))
{
OnArtifactAcquire();
}
object oItem = GetModuleItemAcquired();
string sTag = GetTag(oItem);
if (GetIsPC(GetItemPossessor(oItem))) {
DeleteLocalInt(oItem, "CT_DESTRUCT_TIME");
}
ExecuteScript ("x2_mod_def_aqu", OBJECT_SELF);
// Added by Grug 23-04-2004
// If it is being aquired then a couple of wizards are trying to exploit with polymorph
if((sTag == "NW_WSWMLS013") /* Tenser's Sword */
|| (sTag == "X2_IT_CREWPWHIP") /* Shocking Whip */
|| (sTag == "X2_IT_CREWPWHIP2") /* Epic Shocking Whip */
|| (sTag == "X2_IT_CREWPKOBSW") /* Kobold Commando Sword */
|| (sTag == "X2_IT_CREWPKOBS2") /* Kobold Commando Sword */
|| (sTag == "X2_WDROWLS002") /* Drow Venomblade +3 */
|| (sTag == "x2_it_wplmss011") /* Drider Spear +2 */
|| (sTag == "x2_it_crewpvscyt") /* Risen Lord Scythe */
|| (sTag == "x2_it_frzdrowbld") /* Frozen Drow Blade */
|| (sTag == "x2_it_wplmss012") /* Drider Spear +5 */
|| (sTag == "X2_IT_MINOAXE") /* Epic Minotaur Axe */
|| (sTag == "x2_it_rakstaff") /* Rakshasa Staff */
|| (sTag == "X2_IT_CREWMAZERA") /* Azer Flaming Waraxe +5 */
/* || "NW_WAXMBT002" Battleaxe +1 - Allowed because it is a drop*/)
{
DestroyObject(oItem);
return;
}
if (!GetIsPC(oPC) || GetIsDM(oPC)){ return;}
string sBaseType = "unknown object";
string sItemName = GetName (oItem);
switch(GetBaseItemType(oItem))
{
case BASE_ITEM_AMULET: sBaseType ="Amulet";break;
case BASE_ITEM_ARMOR: sBaseType ="Armor";break;
case BASE_ITEM_ARROW: sBaseType ="Arrow";break;
case BASE_ITEM_BASTARDSWORD: sBaseType ="Bastard Sword";break;
case BASE_ITEM_BATTLEAXE: sBaseType ="Battle Axe";break;
case BASE_ITEM_BELT: sBaseType ="Belt";break;
case BASE_ITEM_BOLT : sBaseType ="Bolt";break;
case BASE_ITEM_BOOK: sBaseType ="Book";break;
case BASE_ITEM_BOOTS: sBaseType ="Boots";break;
case BASE_ITEM_BRACER: sBaseType ="Bracers";break;
case BASE_ITEM_BULLET: sBaseType ="Bullet";break;
case BASE_ITEM_CLOAK: sBaseType ="Cloak";break;
case BASE_ITEM_CLUB: sBaseType ="Club";break;
case BASE_ITEM_CRAFTMATERIALMED: sBaseType ="Medium Crafting Item";break;
case BASE_ITEM_CRAFTMATERIALSML: sBaseType ="Small Crafting Item";break;
case BASE_ITEM_DAGGER: sBaseType ="Dagger";break;
case BASE_ITEM_DART: sBaseType ="Dart";break;
case BASE_ITEM_DIREMACE: sBaseType ="Mace";break;
case BASE_ITEM_DOUBLEAXE: sBaseType ="Double Axe";break;
case BASE_ITEM_DWARVENWARAXE: sBaseType ="Dwarven War Axe";break;
case BASE_ITEM_GEM: sBaseType ="Gem";break;
case BASE_ITEM_GLOVES: sBaseType ="Gloves";break;
case BASE_ITEM_GREATAXE: sBaseType ="Great Axe";break;
case BASE_ITEM_GREATSWORD: sBaseType ="Great Sword";break;
case BASE_ITEM_GOLD: sBaseType ="Some Gold";break;
case BASE_ITEM_HALBERD: sBaseType ="Halberd";break;
case BASE_ITEM_HANDAXE: sBaseType ="Hand Axe";break;
case BASE_ITEM_HEALERSKIT: sBaseType ="Healers Kit";break;
case BASE_ITEM_HEAVYCROSSBOW: sBaseType ="Heavy Crossbow";break;
case BASE_ITEM_HEAVYFLAIL: sBaseType ="Heavy Flail";break;
case BASE_ITEM_HELMET: sBaseType ="Helmet";break;
case BASE_ITEM_INVALID: sBaseType ="";break;
case BASE_ITEM_KAMA: sBaseType ="Kama";break;
case BASE_ITEM_KATANA: sBaseType ="Katana";break;
case BASE_ITEM_KEY: sBaseType ="Key";break;
case BASE_ITEM_KUKRI: sBaseType ="Kukri";break;
case BASE_ITEM_LARGEBOX: sBaseType ="Large Box";break;
case BASE_ITEM_LARGESHIELD: sBaseType ="Large Shield";break;
case BASE_ITEM_LIGHTCROSSBOW: sBaseType ="Light Crossbow";break;
case BASE_ITEM_LIGHTFLAIL: sBaseType ="Light Flail";break;
case BASE_ITEM_LIGHTHAMMER: sBaseType ="Light Hammer";break;
case BASE_ITEM_LIGHTMACE: sBaseType ="Light Mace";break;
case BASE_ITEM_LONGBOW: sBaseType ="Long Bow";break;
case BASE_ITEM_LONGSWORD: sBaseType ="Long Sword";break;
case BASE_ITEM_MAGICROD: sBaseType ="Magic Rod";break;
case BASE_ITEM_MAGICSTAFF: sBaseType ="Magic Staff";break;
case BASE_ITEM_MAGICWAND: sBaseType ="Magic Wand";break;
case BASE_ITEM_MISCLARGE: sBaseType ="Large Item";break;
case BASE_ITEM_MISCMEDIUM: sBaseType ="Medium Item";break;
case BASE_ITEM_MISCSMALL: sBaseType ="Small Item";break;
case BASE_ITEM_MISCTALL: sBaseType ="Tall Item";break;
case BASE_ITEM_MISCTHIN: sBaseType ="Thin Item";break;
case BASE_ITEM_MISCWIDE: sBaseType ="Wide Item";break;
case BASE_ITEM_MORNINGSTAR: sBaseType ="Morningstar";break;
case BASE_ITEM_POTIONS: sBaseType ="Potion";break;
case BASE_ITEM_QUARTERSTAFF: sBaseType ="Quarterstaff";break;
case BASE_ITEM_RAPIER: sBaseType ="Rapier";break;
case BASE_ITEM_RING: sBaseType ="Ring";break;
case BASE_ITEM_SCIMITAR: sBaseType ="Scimitar";break;
case BASE_ITEM_SCYTHE: sBaseType ="Scythe";break;
case BASE_ITEM_SHORTBOW: sBaseType ="Short bow";break;
case BASE_ITEM_SHORTSPEAR: sBaseType ="Short Spear";break;
case BASE_ITEM_SHORTSWORD: sBaseType ="Short Sword";break;
case BASE_ITEM_SHURIKEN: sBaseType ="Shuriken";break;
case BASE_ITEM_SICKLE: sBaseType ="Sickle";break;
case BASE_ITEM_SLING: sBaseType ="Sling";break;
case BASE_ITEM_SMALLSHIELD: sBaseType ="Small Shield";break;
case BASE_ITEM_SPELLSCROLL: sBaseType ="Scroll";break;
case BASE_ITEM_THIEVESTOOLS: sBaseType ="Thieves Tools";break;
case BASE_ITEM_THROWINGAXE: sBaseType ="Throwing Axe";break;
case BASE_ITEM_TORCH: sBaseType ="Torch";break;
case BASE_ITEM_TOWERSHIELD: sBaseType ="Tower Shield";break;
case BASE_ITEM_TRAPKIT: sBaseType ="Trap Kit";break;
case BASE_ITEM_TRIDENT: sBaseType ="Trident";break;
case BASE_ITEM_TWOBLADEDSWORD: sBaseType ="Two Bladed Sword";break;
case BASE_ITEM_WARHAMMER: sBaseType ="Warhammer";break;
case BASE_ITEM_WHIP: sBaseType ="Whip";break;
}
if( oItem != OBJECT_INVALID ) // this means the item was destroyed or its gold
{
if( !GetIdentified( oItem ) )
{
AssignCommand(oPC, ActionSpeakString("Found an unidentified " + sBaseType + "." , TALKVOLUME_TALK));
}
else
{
AssignCommand(oPC, ActionSpeakString("Found " + sItemName + "." , TALKVOLUME_TALK));
}
}
}