Files
HeroesStone_PRC8/_module/nss/new_make_fx.nss
Jaysyn904 1eefc84201 Initial Commit
Initial Commit.
2025-09-14 15:40:46 -04:00

410 lines
24 KiB
Plaintext

//:://////////////////////////////////////////////
// EASY EFFECTS VERSION 3.0
// March 16, 2003
//:://////////////////////////////////////////////
/*
Modified From Rob Bartel's Witch Wake module which was located by Hrun
the Barbarian. Glendale Nights from the Bioware forums was a great help in
creating an initial framework for this script to work in. Peter Poe
improved the original design and made it much, much more robust. This last
update adds over 150 Fire N Forget effects.
Limitations:
These are are all technically spell effects so they can be dispelled.
Future Enhancements?
Alter the dispell spell scripts so that they do not dispell these effects?
I'm not sure if this is possible.
------------------
Standard FX (by Lost Dragon):
Give the "FX Maker" creature (found in custom creatures under Special Custom 1)
an FX number (listed below) for its tag. As an example if you wanted to see
green circles, you'd give the creature a tag of 3. Place the creature on your
map where you want the effect to show up.
------------------
Area FX Addon (by Peter Poe):
Give the "FX Maker" creature an Area FX number (listed below) for its tag,
preceded by an "a". By default, these area effects will be only decorative,
but you can change the event scripts (OnEnter,Heartbeat,OnExit) in the
EffectAreaOfEffect function below to make fire hurt, bugs bug, etc...
Example: for an AOE_PER_WALLFIRE (flames on the ground) effect, the tag
would be a5.
Waypoint usage:
If you want to create you FX on a different location than this creature's, create
a waypoint with a tag of "FXWP_" + the tag of this creature. The nearest waypoint
with the same tag will be chosen.
This is expecially useful to create effects on "non-walkable" locations.
Even though Visual FX work fine everywhere, Area FX seem to be "cut" around
non-walkable locations. Play with them anyway!
Example: to create green plants on a roof, give the FX Maker a tag of "2",
put a waypoint on the roof (or wherever you want), and give it a tag of "FXWP_2".
------------------
Fire N Forget FX Addon (By Lost Dragon):
Fire N Forget FX are called from a trigger called FNF FX Maker. The effects
are targeted at an invisible object called target_FNF_fx. To use a Fire N Forget
FX, draw your FNF FX Maker trigger and place a target_FNF_fx placeable close
to it. The tag of the FNF FX Maker trigger should be one of the FNF values
listed below (or see the trigger's comment tab). As an example, to make a
lightning bolt I would use f75 as the trigger's tag.
------------------
List of standard effects that work with this script:
Standard FX NAME FX Number (TAG) Description
VFX_DUR_BLUR = 0 shimmer on floor
VFX_DUR_DARKNESS = 1 blob of sheer darkness
VFX_DUR_ENTANGLE = 2 green plant on floor
VFX_DUR_FREEDOM_OF_MOVEMENT = 3 green intricate glowy circle
VFX_DUR_GLOBE_INVULNERABILITY = 4 sphere with wiggly texture
VFX_DUR_MIND_AFFECTING_NEGATIVE = 7 3d spherical purple and white whirly flying dots
VFX_DUR_MIND_AFFECTING_POSITIVE = 8 white and blue twirling cone
VFX_DUR_GHOSTLY_VISAGE = 9 slight blue shimmer on floor
VFX_DUR_ETHEREAL_VISAGE = 10 purple shimmer on floor
VFX_DUR_PROT_BARKSKIN = 11 sound but no graphic
VFX_DUR_PROT_GREATER_STONESKIN = 12 sound but no graphic
VFX_DUR_PROT_PREMONITION = 13 cloud of blue and purple dots and eyeballs
VFX_DUR_PROT_SHADOW_ARMOR = 14 sound but no graphic
VFX_DUR_PROT_STONESKIN = 15 sound but no graphic
VFX_DUR_SANCTUARY = 16 dancing blue dots in cylindrical formation
VFX_DUR_WEB = 17 3d spider web formations
VFX_BEAM_LIGHTNING = 73 plays sound but not graphic
VFX_DUR_PARALYZE_HOLD = 82 field of white dots and white dancing cylinders
VFX_DUR_SPELLTURNING = 138 circular lightning effect on floor
VFX_DUR_ELEMENTAL_SHIELD = 147 circle of fire
VFX_DUR_LIGHT_BLUE_5 = 153 faint blue light
VFX_DUR_LIGHT_BLUE_10 = 154 faint xxxx light
VFX_DUR_LIGHT_BLUE_15 = 155 "
VFX_DUR_LIGHT_BLUE_20 = 156 "
VFX_DUR_LIGHT_YELLOW_5 = 157 "
VFX_DUR_LIGHT_YELLOW_10 = 158 "
VFX_DUR_LIGHT_YELLOW_15 = 159 "
VFX_DUR_LIGHT_YELLOW_20 = 160 "
VFX_DUR_LIGHT_PURPLE_5 = 161 "
VFX_DUR_LIGHT_PURPLE_10 = 162 "
VFX_DUR_LIGHT_PURPLE_15 = 163 "
VFX_DUR_LIGHT_PURPLE_20 = 164 "
VFX_DUR_LIGHT_RED_5 = 165 "
VFX_DUR_LIGHT_RED_10 = 166 "
VFX_DUR_LIGHT_RED_15 = 167 "
VFX_DUR_LIGHT_RED_20 = 168 "
VFX_DUR_LIGHT_ORANGE_5 = 169 "
VFX_DUR_LIGHT_ORANGE_10 = 170 "
VFX_DUR_LIGHT_ORANGE_15 = 171 "
VFX_DUR_LIGHT_ORANGE_20 = 172 "
VFX_DUR_LIGHT_WHITE_5 = 173 "
VFX_DUR_LIGHT_WHITE_10 = 174 "
VFX_DUR_LIGHT_WHITE_15 = 175 "
VFX_DUR_LIGHT_WHITE_20 = 176 "
VFX_DUR_LIGHT_GREY_5 = 177 "
VFX_DUR_LIGHT_GREY_10 = 178 "
VFX_DUR_LIGHT_GREY_15 = 179 "
VFX_DUR_LIGHT_GREY_20 = 180 "
VFX_DUR_MIND_AFFECTING_DISABLED = 208 blue and white floaty dots
VFX_DUR_MIND_AFFECTING_DOMINATED= 209 cylindrical blue, purple, & white rings that dance
VFX_BEAM_FIRE = 210 plays sound but not graphic
VFX_BEAM_COLD = 211 "
VFX_BEAM_HOLY = 212 "
VFX_BEAM_MIND = 213 "
VFX_BEAM_EVIL = 214 "
VFX_BEAM_ODD = 215 "
VFX_BEAM_FIRE_LASH = 216 "
VFX_DUR_MIND_AFFECTING_FEAR = 218 flaming flying skulls
VFX_DUR_GLOBE_MINOR = 220 faint sphere - slightly pink
VFX_DUR_PROTECTION_ELEMENTS = 224 ascending gold and white dots
VFX_DUR_PROTECTION_GOOD_MINOR = 225 ascending gold dots
VFX_DUR_PROTECTION_GOOD_MAJOR = 226 ascending gold streaks
VFX_DUR_PROTECTION_EVIL_MINOR = 227 ascending red dots
VFX_DUR_PROTECTION_EVIL_MAJOR = 228 ascending red streaks
VFX_DUR_MAGICAL_SIGHT = 229 multi-colored floaty eyeballs
VFX_DUR_WEB_MASS = 230 big spider webs on floor
VFX_DUR_PARALYZED = 232 red and white glow on floor
VFX_DUR_ANTI_LIGHT_10 = 248 area darker & somewhat green
VFX_DUR_MAGIC_RESISTANCE = 249 3d rings of spherical runes
VFX_DUR_AURA_COLD = 267 big circle of dots in various colors
VFX_DUR_AURA_FIRE = 268 "
VFX_DUR_AURA_POISON = 269 "
VFX_DUR_AURA_DISEASE = 270 "
VFX_DUR_AURA_ODD = 271 "
VFX_DUR_AURA_SILENCE = 272 "
VFX_DUR_AURA_DRAGON_FEAR = 291 "
VFX_DUR_BARD_SONG = 277 floaty music notes & song
VFX_DUR_FLAG_RED = 303 flag model in colors
VFX_DUR_FLAG_BLUE = 304 "
VFX_DUR_FLAG_GOLD = 305 "
VFX_DUR_FLAG_PURPLE = 306 "
VFX_DUR_TENTACLE = 346 dark thrashing tentacles
Area FX (note that a10 doesn't exist):
Constant: Tag: Description:
AOE_PER_FOGACID a0 bright green fog
AOE_PER_FOGFIRE a1 fire fog
AOE_PER_FOGSTINK a2 dark green fog
AOE_PER_FOGKILL a3 red fog
AOE_PER_FOGMIND a4 blue fog
AOE_PER_WALLFIRE a5 flames from ground
AOE_PER_WALLWIND a6 no visible effect
AOE_PER_WALLBLADE a7 spikes from ground
AOE_PER_WEB a8 webs
AOE_PER_ENTANGLE a9 green tentacles
AOE_PER_DARKNESS a11 complete darkness
AOE_MOB_CIRCEVIL a12 small circle of pink dots
AOE_MOB_CIRCGOOD a13 small circle of yellow dots
AOE_MOB_CIRCLAW a14 no visible effect
AOE_MOB_CIRCCHAOS a15 no visible effect
AOE_MOB_FEAR a16 small circle of green dots
AOE_MOB_BLINDING a17 small circle of pink dots
AOE_MOB_UNEARTHLY a18 small circle of green dots
AOE_MOB_MENACE a19 small circle of pink dots
AOE_MOB_UNNATURAL a20 small circle of green dots
AOE_MOB_STUN a21 small circle of white dots
AOE_MOB_PROTECTION a22 small circle of yellow dots
AOE_MOB_FIRE a23 small circle of orange dots
AOE_MOB_FROST a24 small circle light blue dots
AOE_MOB_ELECTRICAL a25 small circle light blue dots
AOE_PER_FOGGHOUL a26 small area green fog
AOE_MOB_TYRANT_FOG a27 medium area green fog
AOE_PER_STORM a28 green rain
AOE_PER_INVIS_SPHERE a29 no visible effect
AOE_MOB_SILENCE a30 small circle of white dots
AOE_PER_DELAY_BLAST_FIREBALL a31 yellow sparkles
AOE_PER_GREASE a32 black mist
AOE_PER_CREEPING_DOOM a33 lots of bugs
AOE_PER_EVARDS_BLACK_TENTACLES a34 black tentacles
AOE_MOB_INVISIBILITY_PURGE a35 no visible effect
AOE_MOB_DRAGON_FEAR a36 big circle of green dots
---------
Fire N Forget FX NAME FX Number (TAG) Description
VFX_FNF_BLINDDEAF = f18 big cloud of white sparkles
VFX_FNF_DISPEL = f19 blue-white magic spiral
VFX_FNF_DISPEL_DISJUNCTION = f20 purple-blue magic spiral
VFX_FNF_DISPEL_GREATER = f21 cloudy white starburst
VFX_FNF_FIREBALL = f22 fireball explosion
VFX_FNF_FIRESTORM = f23 giant ring of fire
VFX_FNF_IMPLOSION = f24 smaller ring of fire converges
VFX_FNF_METEOR_SWARM = f28 meteor shower
VFX_FNF_NATURES_BALANCE = f29 big green design - birds sing
VFX_FNF_PWKILL = f30 lightning and arcane symbol
VFX_FNF_PWSTUN = f31 purple spiral dots with white
VFX_FNF_SUMMON_GATE = f32 3 rocks pop up with firey center
VFX_FNF_SUMMON_MONSTER_1 = f33 explosive white-grey cloud
VFX_FNF_SUMMON_MONSTER_2 = f34 purple symbol with spiral white things
VFX_FNF_SUMMON_MONSTER_3 = f35 white symbol with flames and purple stuff
VFX_FNF_SUMMON_UNDEAD = f36 white plasma condensate
VFX_FNF_SUNBEAM = f37 great yellow sunbeam
VFX_FNF_TIME_STOP = f38 big clocks
VFX_FNF_WAIL_O_BANSHEES = f39 ghost woman pops out of ground and screams
VFX_FNF_WEIRD = f40 3 headed thing comes out of ground
VFX_FNF_WORD = f41 big yellow thing with rune strips
VFX_IMP_AC_BONUS = f42 columnar cylindrical strips
VFX_IMP_ACID_L = f43 small green cloud (clipped on ground)
VFX_IMP_ACID_S = f44 smaller green cloud (ok on ground)
VFX_IMP_BLIND_DEAF_M = f46 small spinny circle
VFX_IMP_BREACH = f47 small sparkly things
VFX_IMP_CONFUSION_S = f48 very small sparkle
VFX_IMP_DAZED_S = f49 small white hemispheres with dots
VFX_IMP_DEATH = f50 glowy white ascension death
VFX_IMP_DISEASE_S = f51 dark blob of bugs
VFX_IMP_DISPEL = f52 light blue sparkly cloud
VFX_IMP_DIVINE_STRIKE_FIRE = f54 stream of fire from above
VFX_IMP_DIVINE_STRIKE_HOLY = f55 white spiral downward
VFX_IMP_DOMINATE_S = f56 small white hemispheres
VFX_IMP_DOOM = f57 small dark cloud with lightning
VFX_IMP_FLAME_M = f60 flame effect the size of a PC
VFX_IMP_FLAME_S = f61 tiny flash explosion with smoke
VFX_IMP_FROST_L = f62 blue explosion with freezy fx
VFX_IMP_FROST_S = f63 small white explosion with freezy
VFX_IMP_HASTE = f65 small blue star contracts
VFX_IMP_HEALING_G = f66 yellow white and blue lines
VFX_IMP_HEALING_L = f67 blue-n-white spiral cylinders
VFX_IMP_HEALING_M = f68 white ball drips down to floor
VFX_IMP_HEALING_S = f69 small blue-n-white cylinders
VFX_IMP_HEALING_X = f70 big blue shaft of light
VFX_IMP_HOLY_AID = f71 white spindle-star contracts
VFX_IMP_KNOCK = f72 spikey spindle star contracts
VFX_IMP_LIGHTNING_M = f74 big bolt of lightning
VFX_IMP_LIGHTNING_S = f75 small white spikey
VFX_IMP_MAGBLUE = f76 small white cloud blast
VFX_IMP_MAGBLUE2 = f77 bigger white cloud blast
VFX_IMP_MAGBLUE3 = f78 "
VFX_IMP_MAGBLUE4 = f79 "
VFX_IMP_MAGBLUE5 = f80 "
VFX_IMP_NEGATIVE_ENERGY = f81 red ball and gas
VFX_IMP_POISON_L = f83 green gas and squishy sound
VFX_IMP_POISON_S = f84 "
VFX_IMP_POLYMORPH = f85 green rays and clouds
VFX_IMP_PULSE_COLD = f86 blue ring wave - fast
VFX_IMP_PULSE_FIRE = f87 red "
VFX_IMP_PULSE_HOLY = f88 "
VFX_IMP_PULSE_NEGATIVE = f89 "
VFX_IMP_RAISE_DEAD = f90 skeleton arises from white cloud
VFX_IMP_REDUCE_ABILITY_SCORE = f91 red contracting black aura
VFX_IMP_REMOVE_CONDITION = f92 colorful confetti sparkles
VFX_IMP_SILENCE = f93 white contracting circles
VFX_IMP_SLEEP = f94 sleepy floaty Zzz's
VFX_IMP_SLOW = f95 purple contracting round star
VFX_IMP_SONIC = f96 rapidly contracting white rings
VFX_IMP_STUN = f97 sparkly white ball
VFX_IMP_SUNSTRIKE = f98 explosive sun ball
VFX_IMP_UNSUMMON = f99 pillar of light
VFX_COM_BLOOD_REG_WIMP = f106 blinky red dot
VFX_COM_BLOOD_LRG_WIMP = f107 bigger "
VFX_COM_BLOOD_CRT_WIMP = f108 bigger still "
VFX_COM_BLOOD_REG_RED = f109 small red dot
VFX_COM_BLOOD_REG_GREEN = f110 " xxx "
VFX_COM_BLOOD_REG_YELLOW = f111 "
VFX_COM_BLOOD_LRG_RED = f112 dot
VFX_COM_BLOOD_LRG_GREEN = f113 "
VFX_COM_BLOOD_LRG_YELLOW = f114 "
VFX_COM_BLOOD_CRT_RED = f115 "
VFX_COM_BLOOD_CRT_GREEN = f116 "
VFX_COM_BLOOD_CRT_YELLOW = f117 "
VFX_COM_SPARKS_PARRY = f118 tiny spark
VFX_COM_CHUNK_RED_SMALL = f121 small body chunk spew
VFX_COM_CHUNK_RED_MEDIUM = f122 med "
VFX_COM_CHUNK_GREEN_SMALL = f123 small green chunk spew
VFX_COM_CHUNK_GREEN_MEDIUM = f124 med "
VFX_COM_CHUNK_YELLOW_SMALL = f125 small yellow chunk spew
VFX_COM_CHUNK_YELLOW_MEDIUM = f126 med "
VFX_IMP_IMPROVE_ABILITY_SCORE = f139 small colorful upward spiral
VFX_IMP_CHARM = f140 small purple cloud
VFX_IMP_MAGICAL_VISION = f141 small spiral with some dots
VFX_IMP_DEATH_WARD = f146 purple flowy cylinder
VFX_IMP_MAGIC_PROTECTION = f149 blue particle cloud that flows
VFX_IMP_SUPER_HEROISM = f150 spikes of white light from ground
VFX_IMP_ELEMENTAL_PROTECTION = f152 fire turns to green
VFX_FNF_SOUND_BURST = f183 concussive blast with waves
VFX_FNF_STRIKE_HOLY = f184 yellow shaft of light
VFX_FNF_LOS_EVIL_10 = f185 red and purple shaft goes up
VFX_FNF_LOS_EVIL_20 = f186 med red circle and shaft up
VFX_FNF_LOS_EVIL_30 = f187 big red circle and shaft up
VFX_FNF_LOS_HOLY_10 = f188 golden circle and shaft up
VFX_FNF_LOS_HOLY_20 = f189 med. "
VFX_FNF_LOS_HOLY_30 = f190 big "
VFX_FNF_LOS_NORMAL_10 = f191 fast white ring outward
VFX_FNF_LOS_NORMAL_20 = f192 "
VFX_FNF_LOS_NORMAL_30 = f193 "
VFX_IMP_HEAD_ACID = f194 4 green blobs upward
VFX_IMP_HEAD_FIRE = f195 4 red blobs upward
VFX_IMP_HEAD_SONIC = f196 4 white blobs upward
VFX_IMP_HEAD_ELECTRICITY = f197 4 electrical blobs
VFX_IMP_HEAD_COLD = f198 4 xxx "
VFX_IMP_HEAD_HOLY = f199 4 "
VFX_IMP_HEAD_NATURE = f200 4 "
VFX_IMP_HEAD_HEAL = f201 4 "
VFX_IMP_HEAD_MIND = f202 4 "
VFX_IMP_HEAD_EVIL = f203 4 "
VFX_IMP_HEAD_ODD = f204 4 "
VFX_IMP_DEATH_L = f217 white blob strained upwards
VFX_FNF_SUMMON_CELESTIAL = f219 3 rocks from ground, light in middle
VFX_IMP_RESTORATION_LESSER = f221 4 whispy white blobs
VFX_IMP_RESTORATION = f222 blob disintegrates to particles
VFX_IMP_RESTORATION_GREATER = f223 yellow and blue circling spiral
VFX_FNF_ICESTORM = f231 great blue icycles from above
VFX_IMP_DESTRUCTION = f234 screen bump, purple dot
VFX_COM_CHUNK_RED_LARGE = f235 big red chunk spew
VFX_COM_CHUNK_BONE_MEDIUM = f236 dusty bone spew
VFX_COM_BLOOD_SPARK_SMALL = f237 small electrical spark
VFX_COM_BLOOD_SPARK_MEDIUM = f238 med "
VFX_COM_BLOOD_SPARK_LARGE = f239 big "
VFX_FNF_HORRID_WILTING = f241 bog with firey spewers
VFX_IMP_HARM = f246 red light shaft from above
VFX_IMP_MAGIC_RESISTANCE_USE = f250 small puff of smoke
VFX_IMP_GLOBE_USE = f251 globe of white symbols
VFX_IMP_WILL_SAVING_THROW_USE = f252 small blue dot flows up
VFX_IMP_SPIKE_TRAP = f253 spikes from the ground
VFX_IMP_SPELL_MANTLE_USE = f254 blue grid enclosure
VFX_IMP_FORTITUDE_SAVING_THROW_USE = f255 purple dot flows upward
VFX_IMP_REFLEX_SAVE_THROW_USE = f256 green dot flows upward
VFX_FNF_GAS_EXPLOSION_ACID = f257 green explosion and gas
VFX_FNF_GAS_EXPLOSION_EVIL = f258 xxx explosion and gas
VFX_FNF_GAS_EXPLOSION_NATURE = f259 "
VFX_FNF_GAS_EXPLOSION_FIRE = f260 "
VFX_FNF_GAS_EXPLOSION_GREASE = f261 black smoke upwards
VFX_FNF_GAS_EXPLOSION_MIND = f262 blue explosion and gas
VFX_FNF_SMOKE_PUFF = f263 puff of grey smoke
VFX_IMP_PULSE_WATER = f264 fast blue expand ring out
VFX_IMP_PULSE_WIND = f265 " xxx
VFX_IMP_PULSE_NATURE = f266 " xxx
VFX_FNF_HOWL_MIND = f278 big expanding blue ring
VFX_FNF_HOWL_ODD = f279 expanding ring
VFX_COM_HIT_FIRE = f280 small fire effect
VFX_COM_HIT_FROST = f281 small ice effect
VFX_COM_HIT_ELECTRICAL = f282 " xxx "
VFX_COM_HIT_ACID = f283 "
VFX_COM_HIT_SONIC = f284 "
VFX_FNF_HOWL_WAR_CRY = f285 expanding ring
VFX_FNF_SCREEN_SHAKE = f286 screen shakes around(earthquake)
VFX_FNF_SCREEN_BUMP = f287 screen bumps once
VFX_COM_HIT_NEGATIVE = f288 small red dot
VFX_COM_HIT_DIVINE = f289 small yellow dot
VFX_FNF_HOWL_WAR_CRY_FEMALE = f290 exploding large white ring out
*/
void main()
{
string sTag = GetTag(OBJECT_SELF);
int nEffect;
object oFXTarget;
effect eVisualFX;
location lFXLocation;
if (GetIsObjectValid(GetNearestObjectByTag("FXWP_" + sTag,OBJECT_SELF,1)) == TRUE) //Checks if FX has to be applied elsewhere (at the nearest waypoint with FXWP_*** tag)
lFXLocation = GetLocation(GetNearestObjectByTag("FXWP_" + sTag,OBJECT_SELF,1));
else
lFXLocation = GetLocation(OBJECT_SELF);
if (GetStringLeft(sTag, 1) == "a") //Is this an Area FX...
{
if (GetStringLength(sTag) == 2)
nEffect = StringToInt(GetStringRight(sTag,1));
else
nEffect = StringToInt(GetStringRight(sTag,2));
//Remove "null","null","null" if you want the specified effect's default OnEnter, Heartbeat and OnExit scripts to run.
eVisualFX = EffectAreaOfEffect(nEffect,"null","null","null");
ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, eVisualFX,lFXLocation);
}
if (GetStringLeft(sTag, 1) == "f") //Is this a Fire-n-Forget FX...
{
if (GetStringLength(sTag) == 3) // if tag is only 3 characters, just get the last two
nEffect = StringToInt(GetStringRight(sTag,2));
else
nEffect = StringToInt(GetStringRight(sTag,3)); // otherwise it must be 3 numbers long so get all 3
eVisualFX = EffectVisualEffect(nEffect);
oFXTarget = GetNearestObjectByTag("target_FNF_fx");
ApplyEffectToObject (DURATION_TYPE_TEMPORARY, eVisualFX, oFXTarget);
}
else // is it a standard Visual FX?
{
nEffect = StringToInt(sTag);
eVisualFX = EffectVisualEffect(nEffect);
oFXTarget = CreateObject(OBJECT_TYPE_PLACEABLE, "fxbox", lFXLocation);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eVisualFX,oFXTarget);
}
DelayCommand(1.0, DestroyObject(OBJECT_SELF)); // leave this here if you want the npc/creature destroyed and the effect on the trigger to play only once
}