home *** CD-ROM | disk | FTP | other *** search
/ PC Zone 125 / DPPCZ0203B.7z / DPPCZ0203B.ISO / Demos / Neverwinter / data1.cab / override / nw_s0_bladebara.nss < prev    next >
Text File  |  2002-09-10  |  2KB  |  62 lines

  1. //::///////////////////////////////////////////////
  2. //:: Blade Barrier: On Enter
  3. //:: NW_S0_BladeBarA.nss
  4. //:: Copyright (c) 2001 Bioware Corp.
  5. //:://////////////////////////////////////////////
  6. /*
  7.     Creates a wall 10m long and 2m thick of whirling
  8.     blades that hack and slice anything moving into
  9.     them.  Anything caught in the blades takes
  10.     2d6 per caster level.
  11. */
  12. //:://////////////////////////////////////////////
  13. //:: Created By: Preston Watamaniuk
  14. //:: Created On: July 20, 2001
  15. //:://////////////////////////////////////////////
  16.  
  17. #include "NW_I0_SPELLS"    
  18. void main()
  19. {
  20.     //Declare major variables
  21.     object oTarget = GetEnteringObject();
  22.     effect eDam;
  23.     effect eVis = EffectVisualEffect(VFX_COM_BLOOD_LRG_RED);
  24.     int nMetaMagic = GetMetaMagicFeat();
  25.     int nLevel = GetCasterLevel(GetAreaOfEffectCreator());
  26.     //Make level check
  27.     if (nLevel > 20)
  28.     {
  29.         nLevel = 20;
  30.     }
  31.     if(!GetIsReactionTypeFriendly(oTarget, GetAreaOfEffectCreator()))
  32.     {
  33.         //Fire spell cast at event
  34.         SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELL_BLADE_BARRIER));
  35.         //Roll Damage
  36.         int nDamage = d6(nLevel);
  37.         //Enter Metamagic conditions
  38.         if (nMetaMagic == METAMAGIC_MAXIMIZE)
  39.         {
  40.             nDamage = nLevel * 6;//Damage is at max
  41.         }
  42.         else if (nMetaMagic == METAMAGIC_EMPOWER)
  43.         {
  44.             nDamage = nDamage + (nDamage/2);
  45.         }
  46.         //Make SR Check
  47.         if (!MyResistSpell(GetAreaOfEffectCreator(), oTarget) && oTarget != GetAreaOfEffectCreator())
  48.         {
  49.             if(MySavingThrow(SAVING_THROW_REFLEX, oTarget, GetSpellSaveDC()))
  50.             {
  51.                 nDamage = d6();
  52.             }
  53.             //Set damage effect
  54.             eDam = EffectDamage(nDamage, DAMAGE_TYPE_SLASHING);
  55.             //Apply damage and VFX
  56.             ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
  57.             ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
  58.         }
  59.     }
  60. }
  61.  
  62.