Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
129 lines
4.3 KiB
Plaintext
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);
|
|
}
|