Battledale_PRC8/_module/nss/jw_queenspider_s.nss
Jaysyn904 7b9e44ebbb Initial upload
Initial upload.  PRC8 has been added.  Module compiles, PRC's default AI & treasure scripts have been integrated.  Started work on top hak for SLA / Ability / Scripting modifications.
2024-03-11 23:44:08 -04:00

112 lines
3.1 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Custom User Defined Event
//:: FileName
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
*/
//:://////////////////////////////////////////////
//:: Created By:
//:: Created On:
//:://////////////////////////////////////////////
#include "nw_i0_spells"
void dobuffs()
{
//Declare major variables
int nAmount = 20;
int nDuration = nAmount;
object oTarget = OBJECT_SELF;
int nDamage = nAmount * 10;
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_GREATER_STONESKIN, FALSE));
effect eVis2 = EffectVisualEffect(VFX_IMP_POLYMORPH);
effect eStone = EffectDamageReduction(20, DAMAGE_POWER_PLUS_FIVE, nDamage);
effect eVis = EffectVisualEffect(VFX_DUR_PROT_STONESKIN);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
//Link the texture replacement and the damage reduction effect
effect eLink = EffectLinkEffects(eVis, eStone);
eLink = EffectLinkEffects(eLink, eDur);
//Remove effects from target if they have Greater Stoneskin cast on them already.
RemoveEffectsFromSpell(oTarget, SPELL_GREATER_STONESKIN);
//Apply the linked effect
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(nDuration));
effect eSpell = EffectSpellLevelAbsorption(4, 0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSpell, oTarget, HoursToSeconds(nDuration));
}
void main()
{
int nUser = GetUserDefinedEventNumber();
if(nUser == 1001) //HEARTBEAT
{
}
else if(nUser == 1002) // PERCEIVE
{
}
else if(nUser == 1003) // END OF COMBAT
{
}
else if(nUser == 1004) // ON DIALOGUE
{
}
else if(nUser == 1005) // ATTACKED
{
if (GetLocalInt(OBJECT_SELF,"nDone")!=1)
{
dobuffs();
SetLocalInt(OBJECT_SELF,"nDone",1);
}
}
else if(nUser == 1006) // DAMAGED
{
}
else if(nUser == 1007) // DEATH
{
object oPC=GetLastDamager();
vector vPosition=GetPosition(oPC);
SetFacingPoint(vPosition);
effect eArrow = EffectVisualEffect(245);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eArrow, oPC);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_ACID_S),OBJECT_SELF);
float fDist = GetDistanceToObject(oPC);
float fDelay = (fDist/25.0);//(3.0 * log(fDist) + 2.0);
//ActionCastFakeSpellAtObject(SPELL_MELFS_ACID_ARROW,oPC,PROJECTILE_PATH_TYPE_HIGH_BALLISTIC);
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectBlindness(),oPC,20.0));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_DUR_BLIND),oPC,20.0));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectPoison(POISON_GARGANTUAN_SPIDER_VENOM),oPC,400.0));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_IMP_POISON_S),oPC,20.0));
}
else if(nUser == 1008) // DISTURBED
{
}
}