PRC8/nwn/nwnprc/trunk/smp/phs_s_ghostsnd.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
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.
2024-02-11 14:01:05 -05:00

121 lines
4.1 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*:://////////////////////////////////////////////
//:: Spell Name Ghost Sound
//:: Spell FileName PHS_S_Ghostsnd
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Illusion (Figment)
Level: Brd 0, Sor/Wiz 0
Components: V, S, M
Casting Time: 1 standard action
Range: Close (8M)
Effect: Illusory sounds
Duration: 1 round/level (D)
Saving Throw: Will disbelief (if interacted with)
Spell Resistance: No
Ghost sound allows you to create a volume of sound that rises, recedes,
approaches, or remains at a fixed place. You choose what type of sound ghost
sound creates when casting it and cannot thereafter change the sounds basic
character.
The volume of sound created depends on your level. You can produce as much
noise as four normal humans per caster level (maximum twenty humans). Thus,
talking, singing, shouting, walking, marching, or running sounds can be
created. The noise a ghost sound spell produces can be virtually any type
of sound within the volume limit. A horde of rats running and squeaking is
about the same volume as eight humans running and shouting. A roaring lion
is equal to the noise from sixteen humans, while a roaring dire tiger is
equal to the noise from twenty humans.
Ghost sound can enhance the effectiveness of a silent image spell.
Ghost sound can be made permanent with a permanency spell.
Material Component: A bit of wool or a small lump of wax.
Choose a set from the menu, and uses PlaySound for the sound effects.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Ghost sounds...
This can be one of 4 pre-set sounds, which are castable by anyone (IE
the sounds is of 4 humans).
It is not a hostile spell, but DM's can make NPC's react accordingly, and
it can be used for roleplay.
There is a 5th spell which opens a conversation which can choose a sound
according to level and cast it.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell Hook Check.
if(!PHS_SpellHookCheck(PHS_SPELL_GHOST_SOUND)) return;
//Declare major variables
object oCaster = OBJECT_SELF;
location lTarget = GetSpellTargetLocation();
int nCasterLevel = PHS_GetCasterLevel();
int nMetaMagic = PHS_GetMetaMagicFeat();
// The duration is 1 round/level, of the selected sound.
float fDuration = PHS_GetDuration(PHS_ROUNDS, nCasterLevel, nMetaMagic);
int nSpellId = GetSpellId();
// First, check if custom, or the base spell.
switch(nSpellId)
{
case PHS_SPELL_GHOST_SOUND_CUSTOM:
{
// If it is not a PC, run normal human sounds.
if(!GetIsPC(oCaster))
{
// Sounds set as human
SetLocalInt(oCaster, PHS_GHOST_SOUND_SOUNDS_CUSTOM, PHS_SOUNDS_HUMAN);
}
// If a PC, run any sound conversation
else
{
// Jass - none for now
SetLocalInt(oCaster, PHS_GHOST_SOUND_SOUNDS_CUSTOM, PHS_SOUNDS_HUMAN);
}
}
break;
// Else, we apply
case PHS_SPELL_GHOST_SOUND_HUMANS:
{
SetLocalInt(oCaster, PHS_GHOST_SOUND_SOUNDS_CUSTOM, PHS_SOUNDS_HUMAN);
}
break;
case PHS_SPELL_GHOST_SOUND_ORCS:
{
SetLocalInt(oCaster, PHS_GHOST_SOUND_SOUNDS_CUSTOM, PHS_SOUNDS_ORCS);
}
break;
case PHS_SPELL_GHOST_SOUND_RATS:
{
SetLocalInt(oCaster, PHS_GHOST_SOUND_SOUNDS_CUSTOM, PHS_SOUNDS_RATS);
}
break;
// Default to wind
default: //case PHS_SPELL_GHOST_SOUND_WIND:
{
SetLocalInt(oCaster, PHS_GHOST_SOUND_SOUNDS_CUSTOM, PHS_SOUNDS_WIND);
}
break;
}
// Apply it to a location.
effect eAOE = EffectAreaOfEffect(PHS_AOE_PER_GHOST_SOUND);
PHS_ApplyLocationDuration(lTarget, eAOE, fDuration);
}