Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
51 lines
1.6 KiB
Plaintext
51 lines
1.6 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Arrow Storm
|
|
//:: FileName sp_arrow_storm.nss
|
|
//:://////////////////////////////////////////////
|
|
/**@file Arrow Storm
|
|
Transmutation
|
|
Level: Ranger 3
|
|
Components: V
|
|
Casting Time: 1 swift action
|
|
Range: Personal
|
|
Target: You
|
|
Duration: 1 round
|
|
|
|
After casting arrow storm, you use a full-round
|
|
action to make one ranged attack with a bow with
|
|
which you are proficient against every foe within
|
|
range. You can attack a maximum number of individual
|
|
targets equal to your character level.
|
|
|
|
Author: Tenjac
|
|
Created: 8/8/07
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_combat"
|
|
#include "prc_add_spell_dc"
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget;
|
|
int nLevel = GetHitDice(oPC);
|
|
effect eArrow = EffectVisualEffect(357);
|
|
int i;
|
|
|
|
for (i = 1; i <= nLevel; i++)
|
|
{
|
|
oTarget = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, i);
|
|
if (GetIsObjectValid(oTarget))
|
|
{
|
|
float fDist = GetDistanceBetween(oPC, oTarget);
|
|
float fDelay = fDist/(3.0 * log(fDist) + 2.0);
|
|
|
|
//Fire cast spell at event for the specified target
|
|
SignalEvent(oTarget, EventSpellCastAt(oPC, SPELL_ARROW_STORM));
|
|
|
|
DelayCommand(fDelay, PerformAttack(oTarget, oPC, eArrow));
|
|
}
|
|
}
|
|
} |