Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
92 lines
3.1 KiB
Plaintext
92 lines
3.1 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Burning Hands
|
|
//:: Spell FileName SMP_S_BurningHnd
|
|
//:://////////////////////////////////////////////
|
|
//:: In Game Spell desctiption
|
|
//:://////////////////////////////////////////////
|
|
Evocation [Fire]
|
|
Level: Fire 1, Sor/Wiz 1
|
|
Components: V, S
|
|
Casting Time: 1 standard action
|
|
Range: 5M.
|
|
Area: Cone-shaped burst
|
|
Duration: Instantaneous
|
|
Saving Throw: Reflex half
|
|
Spell Resistance: Yes
|
|
|
|
A cone of searing flame shoots from your fingertips. Any creature in the
|
|
area of the flames takes 1d4 points of fire damage per caster level
|
|
(maximum 5d4).
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
Minus flammable materials things.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "SMP_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
SpeakString("Burning hands start");
|
|
|
|
// Spell hook check.
|
|
if(!SMP_SpellHookCheck()) return;
|
|
|
|
SpeakString("Burning hands after hook");
|
|
|
|
// Declare Major Variables
|
|
object oCaster = OBJECT_SELF;
|
|
object oTarget;
|
|
location lTarget = GetSpellTargetLocation();
|
|
int nCasterLevel = SMP_GetCasterLevel();
|
|
int nSpellSaveDC = SMP_GetSpellSaveDC();
|
|
int nMetaMagic = SMP_GetMetaMagicFeat();
|
|
int nDamage;
|
|
int nDice = SMP_LimitInteger(nCasterLevel, 5);
|
|
float fDelay;
|
|
|
|
// Declare effects
|
|
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
|
|
|
|
// Get all in a 5M (at the widest radius) cone
|
|
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 5.0, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
SpeakString("Burning hands loop: " + GetName(oTarget));
|
|
|
|
// Reaction type PvP check.
|
|
if(!GetIsReactionTypeFriendly(oTarget) &&
|
|
// Make sure they are not immune to spells
|
|
!SMP_TotalSpellImmunity(oTarget))
|
|
{
|
|
// Signal Spell cast at event.
|
|
SMP_SignalSpellCastAt(oTarget, SMP_SPELL_BURNING_HANDS);
|
|
|
|
// Get delay
|
|
fDelay = GetDistanceBetween(oCaster, oTarget)/20;
|
|
|
|
// Spell Resistance and immunity check
|
|
if(!SMP_SpellResistanceCheck(oCaster, oTarget, fDelay))
|
|
{
|
|
// Damage
|
|
nDamage = SMP_MaximizeOrEmpower(4, nDice, nMetaMagic);
|
|
|
|
// Reflex save
|
|
nDamage = SMP_GetAdjustedDamage(SAVING_THROW_REFLEX, nDamage, oTarget, nSpellSaveDC, SAVING_THROW_TYPE_FIRE, oCaster);
|
|
|
|
// Check if any damage
|
|
if(nDamage > 0)
|
|
{
|
|
// Apply effects to the currently selected target.
|
|
DelayCommand(fDelay, SMP_ApplyDamageVFXToObject(oTarget, eVis, nDamage, DAMAGE_TYPE_FIRE));
|
|
}
|
|
}
|
|
}
|
|
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 5.0, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
|
}
|
|
|
|
SpeakString("Burning hands end");
|
|
}
|