NWN2Wiki
NWN2Wiki
Advertisement
Is symbolsleep
Symbol of Sleep
Spell Information
Spell level : Innate level: 5, Cleric: 5, Sorcerer/Wizard: 5
School : Enchantment
Descriptor(s) : Mind-Affecting
Components : Verbal and Somatic
Range : Short (AoE), See text
Target/Area : Trap (AoE), See text
Duration : 1 min. * cLevel
10 Rounds(cLevel)
Save : Will negates
Spell resistance : Yes

Description[]

This spell allows you to scribe a potent rune of power upon a surface. When triggered, a symbol of sleep causes all creatures within 60 feet of the symbol (treat as a burst) of 10 HD or lower to fall into a catatonic slumber for 3d6 minutes if they fail a saving throw against mind spells. Any creature that enters the area while the symbol of sleep is active is subject to its effect, whether or not that creature was in the area when it was triggered. A symbol of sleep is triggered whenever a creature touches the rune or passes over the rune. You and all creatures within your party are automatically attuned to the rune and as such cannot trigger it and are immune to its effects, even if within its radius when triggered.

Note: Magic traps such as symbol of sleep are hard to detect and disable. A rogue (only) can use the Search skill to find a Symbol of Sleep and Disable Device to thwart it (DC 30). Also, a Symbol of Sleep can be removed by a successful dispel magic targeted on the rune.

Notes[]

  • All symbol spells have been cut from the game. However, they still exist in the toolset and can be restored by activating them through spells.2da. See Bug section below for details.
  • This spell is far superior to Sleep and Deep Slumber and sometimes even preferable to Hiss of Sleep. It has a vast AoE once triggered (60 feet) and is only semi-limited in terms of HD (highest creature level affected is 10, just as the patched version of Deep Slumber, but there is no HD limitation in terms of overall number of targets, as long as all affected targets are <=10HD).
  • This trap is not destroyed once triggered. It stays in place for its entire duration (1 turn / caster level) unless disarmed or dispelled. Every time an enemy triggers it, it releases another sleep burst.
  • It only ever affects enemies, even on hardcore difficulty.
  • The trap cannot be recovered, only disarmed.
  • The sleep effect is not re-applied if the target is already affected by Symbol of Sleep.

Bugs[]

nx2_s0_symbol_of_sleep, ginc_symbol_spells:

The trap must become known to the caster of the spell and his/her entire faction, otherwise a wizard will have difficulty detecting their own trap unless there is a rogue in the current party and nearby, since only rogues can detect traps with such high DCs. To fix, add the following code to ginc_symbol_spells and recompile nx2_s0_symbol_of_sleep:

object oFactionMember = GetFirstFactionMember(OBJECT_SELF, FALSE); 

while(GetIsObjectValid(oFactionMember)) 

{ 

SetTrapDetectedBy(oTrap, oFactionMember); 

oFactionMember = GetNextFactionMember(OBJECT_SELF, FALSE); 

}

nx2_s0_symbol_of_sleepa (OnEnter event):

  • The spell misses a spell resistance check. To fix add a SR check before the saving throw check:
if (!MyResistSpell(GetAreaOfEffectCreator(), oTarget)) 

{ 

...
  • The duration is wrong, should be TurnsToSeconds(nDuration) instead of RoundsToSeconds(nDuration).
  • The burst should take the AoE as the starting point, not the entering object:
location lTarget = GetLocation(OBJECT_SELF); 

oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_VAST, lTarget);
  • The visual effect that is displayed when the spell is triggered must be applied to AoE location, not to the AoE object itself. Also, VFX used by the original script fails to work.
effect eActivated = EffectVisualEffect( VFX_AOE_ETHEREAL_PURGE ); 

if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, oCaster)) 

{ 

SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELL_SYMBOL_OF_SLEEP, TRUE)); 

ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eActivated,GetLocation(OBJECT_SELF)); 

...
  • The spell should apply the standard Sleep VFX to affected targets:
else if(nSaved == 0) 

{ 

ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSleep, oTarget, fDuration); 

effect eVisual = EffectVisualEffect(VFX_DUR_SLEEP); 

DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVisual, oTarget, fDuration));
Advertisement