spellsGenericAreaOfEffect(object, location, int, float, int, effect, effect, effect, int, float, int, int, int, int, int, int, int, int, int, int, int, int)
Generic apply area of effect wrapper.
void spellsGenericAreaOfEffect( object oCaster, location lTargetLoc, int nShape, float fRadiusSize, int nSpellID, effect eImpact, effect eLink, effect eVis, int nDurationType = DURATION_TYPE_INSTANT, float fDuration = 0.0, int nTargetType = SPELL_TARGET_ALLALLIES, int bHarmful = FALSE, int nRemoveEffectSpell = FALSE, int nRemoveEffect1 = 0, int nRemoveEffect2 = 0, int nRemoveEffect3 = 0, int bLineOfSight = FALSE, int nObjectFilter = OBJECT_TYPE_CREATURE, int bPersistentObject = FALSE, int bResistCheck = FALSE, int nSavingThrowType = SAVING_THROW_NONE, int nSavingThrowSubType = SAVING_THROW_TYPE_ALL );
Parameters
oCaster
The creature that cast the spell.
lTargetLoc
The location where you want to apply the effect.
nShape
Radius around the caster to apply the effect to. SHAPE_* See remarks.
fRadiusSize
The size of nShape. RADIUS_SIZE_*
nSpellID
eImpact
The visual effect you want to apply to lTargetLoc.
eLink
Linked effects to apply to each individual target.
eVis
The visual effect you want to apply to each individual target.
nDurationType
The duration type for the eLink effect. DURATION_TYPE_* (Default: DURATION_TYPE_INSTANT)
fDuration
The duration time for the eLink effect. (Default: 0.0)
nTargetType
Within the shape, what type of objects to apply the effects to. See remarks. (Default: SPELL_TARGET_ALLALLIES)
bHarmful
Determines if the spell is harmful to its target. (Default: FALSE)
nRemoveEffectSpell
Is this a remove effect spell? (Default: FALSE)
nRemoveEffect1
First effect, if any, to remove. (Default: 0)
nRemoveEffect2
Second effect, if any, to remove. (Default: 0)
nRemoveEffect3
Third effect, if any, to remove. (Default: 0)
bLineOfSight
This can be used to ensure that spell effects do not go through walls. (Default: FALSE)
nObjectFilter
Restrict results to this object type. OBJECT_TYPE_* (Default: OBJECT_TYPE_CREATURE)
bPersistentObject
Apply the effect to the calling object? See remarks. (Default: FALSE)
bResistCheck
Attempt spell resistance or not? (Default: FALSE)
nSavingThrowType
The type of saving throw to attempt to roll. SAVING_THROW_* (Default: SAVING_THROW_NONE)
nSavingThrowSubType
A more specific saving throw to attempt to roll. SAVING_THROW_TYPE_* (Default: SAVING_THROW_TYPE_ALL)
Description
Generic apply area of effect wrapper.
Remarks
As you can see by the parameter list (22 of them!) this function is quite configurable. Be aware that sometimes choosing one option will exclude using another option.
If bPersistentObject is TRUE, then the target to apply the effect to is generated by GetFirstInPersistentObject. If it is FALSE, then the target is generated using the variables nShape, fRadiusSize, bLineOfSight, and nObjectFilter in conjunction with GetFirstObjectInShape.
Valid values for nTargetType (used in selecting individual targets) are:
- SPELL_TARGET_ALLALLIES: All friendlies and anyone in the party.
- SPELL_TARGET_SELECTIVEHOSTILE: Only harms enemies, ever.
- SPELL_TARGET_STANDARDHOSTILE: This one is much more complex than the other two. Note the use of () and capital ORs and ANDs to denote nested conditions.
* Not friendly.
* oTarget hit themselves or their pet (familiar, summons, etc) with a spell.
* (if oTarget is a PC OR the module flag "X0_G_ALLOWSPELLSTOHURT" is 10) AND oTarget is not friendly with oSource.
* (not friendly AND the difficulty setting is greater than GAME_DIFFICULTY_NORMAL) AND the module switch "MODULE_SWITCH_ENABLE_NPC_AOE_HURT_ALLIES" is TRUE.
If nRemoveEffectSpell is FALSE, there is no need to set nRemoveEffect1, nRemoveEffect2, or nRemoveEffect3. If nRemoveEffectSpell is TRUE, the target must fail BOTH their spell resistance and saving throw tests in order for the specified effects to be removed. You can force these failures by setting bResistCheck to FALSE and nSavingThrowType to SAVING_THROW_NONE.
If bResistCheck is TRUE, then each target will attempt to beat oCaster's spell resistance and thus avoid the spell.
If the target fails the spell resistance check, then they will attempt a saving throw roll (nSavingThrowType and nSavingThrowSubType). Should they fail, it is then time to zap them with the chosen effect.
If nSavingThrowType is set to SAVING_THROW_NONE, then there is no need to set nSavingThrowSubType.
eImpact and eVis are both optional. Set them to zero if you do not want a visual effect applied.
Requirements
#include "x0_i0_spells"
Version
???
See Also
functions:  | ApplyEffectAtLocation |
constants:  | DURATION_TYPE_* | OBJECT_TYPE_* | RADIUS_SIZE_* | SAVING_THROW_* | SAVING_THROW_TYPE_* | SHAPE_* | SPELL_* |
categories:  | Spells Functions |
author: Mistress