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.
68 lines
2.1 KiB
Plaintext
68 lines
2.1 KiB
Plaintext
//Spell script for reserve feat ranged touch attacks
|
|
//prc_reservrng
|
|
//by ebonfowl
|
|
//Dedicated to Edgar, the real Ebonfowl
|
|
|
|
#include "prc_inc_sp_tch"
|
|
#include "prc_add_spell_dc"
|
|
#include "prc_inc_spells"
|
|
|
|
void DoRanged(effect eVis, int nSaveType, int nDamage, int nDamageType, int nSpellID = -1)
|
|
{
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int nAtk = PRCDoRangedTouchAttack(oTarget, TRUE, OBJECT_SELF);
|
|
|
|
if(nAtk)
|
|
{
|
|
effect eMissile = EffectVisualEffect(VFX_IMP_MIRV);
|
|
|
|
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF))
|
|
{
|
|
//Fire cast spell at event for the specified target
|
|
PRCSignalSpellEvent(oTarget, TRUE, nSpellID);
|
|
|
|
// Apply the damage and the damage visible effect to the target.
|
|
ApplyTouchAttackDamage(OBJECT_SELF, oTarget, nAtk, nDamage, nDamageType);
|
|
PRCBonusDamage(oTarget);
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
|
|
|
/*if(PRCGetIsAliveCreature(oTarget))
|
|
{
|
|
// If the target failed it's save then apply the failed save effect as well for 1 round.
|
|
if (!PRCMySavingThrow(nSaveType, oTarget, PRCGetSaveDC(oTarget, OBJECT_SELF)))
|
|
{
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eFailSave, oTarget, RoundsToSeconds(1),TRUE,-1,nCasterLvl);
|
|
}
|
|
}*/
|
|
}
|
|
}
|
|
PRCSetSchool();
|
|
}
|
|
|
|
void main()
|
|
{
|
|
int nSpellID = PRCGetSpellId();
|
|
int nDice, nDamage;
|
|
|
|
effect eVis, eVisFail;
|
|
|
|
if (!GetLocalInt(OBJECT_SELF, "AcidicSplatterBonus"))
|
|
{
|
|
FloatingTextStringOnCreature("You do not have a spell available of adequate level or type", OBJECT_SELF, FALSE);
|
|
return;
|
|
}
|
|
|
|
switch (nSpellID)
|
|
{
|
|
case SPELL_ACIDIC_SPLATTER:
|
|
{
|
|
nDamage = d6(GetLocalInt(OBJECT_SELF, "AcidicSplatterBonus"));
|
|
|
|
eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
|
eVisFail = EffectVisualEffect(VFX_IMP_STUN);
|
|
|
|
DoRanged(eVis, SAVING_THROW_TYPE_ACID, nDamage, DAMAGE_TYPE_ACID);
|
|
}
|
|
}
|
|
}
|