RATDOG/_module/nss/purplewormbite.nss

70 lines
2.4 KiB
Plaintext
Raw Normal View History

2021-08-30 07:08:20 -04:00
//::///////////////////////////////////////////////
//:: Example Item Event Script
//:: x2_it_example
//:: Copyright (c) 2003 Bioware Corp.
//:://////////////////////////////////////////////
/*
This is an example on how to use the
new default module events for NWN to
have all code concerning one item in
a single file.
Note that this system only works, if
the following events set on your module
OnEquip - x2_mod_def_equ
OnUnEquip - x2_mod_def_unequ
OnAcquire - x2_mod_def_aqu
OnUnAcqucire - x2_mod_def_unaqu
OnActivate - x2_mod_def_act
*/
//:://////////////////////////////////////////////
//:: Created By: Georg Zoeller
//:: Created On: 2003-09-10
//:://////////////////////////////////////////////
/*************************************************
* Hijacked by Mr. Nathan for the protection
* of purple worms everywhere.
*
* To change the DC of the swallow attack
* set PW_BITE_DC to the desired level.
* Default is 22.
**************************************************/
#include "x2_inc_switches"
const int PW_BITE_DC=22;
void main()
{
int nEvent =GetUserDefinedItemEventNumber();
object oItem;
// * This code runs when the item has the OnHitCastSpell: Unique power property
// * and it hits a target(weapon) or is being hit (armor)
// * Note that this event fires for non PC creatures as well.
if (nEvent ==X2_ITEM_EVENT_ONHITCAST)
{
oItem = GetSpellCastItem(); // The item casting triggering this spellscript
object oSpellOrigin = OBJECT_SELF ;
object oSpellTarget = GetSpellTargetObject();
if(!ReflexSave(oSpellTarget, PW_BITE_DC))
{
FloatingTextStringOnCreature("You have been swallowed.", oSpellTarget);
DelayCommand(1.0, AssignCommand(oSpellTarget, ClearAllActions()));
DelayCommand(1.1, AssignCommand(oSpellTarget, JumpToLocation(GetLocation(GetWaypointByTag("WP_PW_Stomach")))));
SetLocalObject(GetArea(GetWaypointByTag("WP_PW_Stomach")), "Worm", oSpellOrigin);
SetLocalLocation(oSpellTarget, "WormReturn", GetLocation(oSpellTarget));
//This is an artifact of the respawning system I use inside the
//worm's stomach. It should not be removed unless that is modified.
SetLocalInt(GetArea(GetWaypointByTag("WP_PW_Stomach")), "Populated", TRUE);
}
}
}