PRC8/nwn/nwnprc/trunk/smp/phs_s_summonmon2.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

129 lines
4.3 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Summon Monster II
//:: Spell FileName PHS_S_SummonMon2
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Conjuration (Summoning) [see text]
Level: Brd 2, Clr 2, Sor/Wiz 2
Components: V, S, F/DF
Casting Time: 1 round
Range: Close (8M)
Effect: One or more summoned creature
Duration: 1 + 1 round/level (D)
Saving Throw: None
Spell Resistance: No
This spell summons one or more extraplanar creatures (typically an outsider,
elemental, or magical beast native to another plane). You can choose 1
creature from the 2nd level list, or 1d3 creatures of the same type from the
1st level list. They appears where you designate and attacks your opponents
to the best of thier abilities. You can communicate with the creatures, you
can direct them not to attack, to attack particular enemies, or to perform
other actions.
You choose which kind of creature to summon, and you can change that choice
each time you cast the spell if you
A summoned monster cannot summon or otherwise conjure another creature, nor
can it use any teleportation or planar travel abilities.
When you use a summoning spell to summon an air, chaotic, earth, evil, fire,
good, lawful, or water creature, it is a spell of that type.
Arcane Focus: A tiny bag and a small (not necessarily lit) candle.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Summons a monster from this list:
Summon Monster
2nd Level
1 Celestial giant bee LG
2 Celestial giant bombardier beetle NG
3 Celestial eagle CG
4 Lemure (devil) LE
5 Fiendish wolf LE
6 Fiendish monstrous centipede, Large NE
7 Fiendish monstrous scorpion, Medium NE
8 Fiendish monstrous spider, Medium CE
9 Fiendish snake, Medium viper CE
Stored previously on the caster.
Sub-dials:
Choice 1 II Monster
Choice 1d3 I Monsters
Random 1 II Monster
Random 1d3 I Monsters
See previous scripts for lists of the summons avalible in them.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell Hook Check
if(!PHS_SpellHookCheck()) return;
// Declare major variables
object oCaster = OBJECT_SELF;
location lTarget = GetSpellTargetLocation();
int nCasterLevel = PHS_GetCasterLevel();
int nMetaMagic = PHS_GetMetaMagicFeat();
int nSpellId = GetSpellId();
int nAlignment = GetAlignmentGoodEvil(oCaster);
// Duration - 1 round, + 1 round/caster level
float fDuration = PHS_GetDuration(PHS_ROUNDS, nCasterLevel + 1, nMetaMagic);
const int PHS_SPELL_SUMMON_MONSTER_II_RANDOM_1 = 10000;
const int PHS_SPELL_SUMMON_MONSTER_II_RANDOM_1D3 = 10000;
const int PHS_SPELL_SUMMON_MONSTER_II_CHOICE_1 = 10000;
const int PHS_SPELL_SUMMON_MONSTER_II_CHOICE_1D3 = 10000;
// Level one summon?
int nSummon, nChoice;
if(nSpellId == PHS_SPELL_SUMMON_MONSTER_II_RANDOM_1D3 ||
nSpellId == PHS_SPELL_SUMMON_MONSTER_II_CHOICE_1D3)
{
// Check as for Summon Monster I basically.
// Is it a chosen choice?
nChoice = GetLocalInt(OBJECT_SELF, "PHS_SUMMON_MONSTER_CHOICE_1");
if(nSpellId == PHS_SPELL_SUMMON_MONSTER_II_CHOICE_1D3 && nChoice != 0)
{
nSummon = nChoice;
}
else // if(nSpellId == PHS_SPELL_SUMMON_MONSTER_II_RANDOM_1D3)
{
// Random choice (limited only by alignment)
if(GetAlignmentGoodEvil(oCaster) != ALIGNMENT_EVIL)
{
// Random, 1 to 5.
nSummon = Random(5) + 1;
}
else
{
// Else, it'll be number 6-12.
nSummon = Random(7) + 1;
}
}
}
// Total resref
string sResRef = "phs_sm1_" + IntToString(nSummon);
// Declare effects
effect eSummon = EffectSummonCreature(sResRef, VFX_FNF_SUMMON_MONSTER_1, 0.5);
// Apply effects
PHS_ApplySummonMonster(DURATION_TYPE_TEMPORARY, eSummon, lTarget, fDuration);
}