generated from Jaysyn/ModuleTemplate
67 lines
2.1 KiB
Plaintext
67 lines
2.1 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Summon Monster III
|
|
//:: NW_S0_Summon3
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Summons a dire wolf to fight for the character
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Brenon Holmes
|
|
//:: Created On: Dec 10 , 2000
|
|
//:://////////////////////////////////////////////
|
|
//:: Last Updated By: Preston Watamaniuk, On: April 12, 2001
|
|
//:: VFX Pass By: Preston W, On: June 25, 2001
|
|
|
|
#include "wm_include"
|
|
#include "x2_inc_spellhook"
|
|
void main()
|
|
{
|
|
if (WildMagicOverride()) { return; }
|
|
//Declare major variables
|
|
int nMetaMagic = GetMetaMagicFeat();
|
|
object oMod = GetModule();
|
|
int nLevel = GetCasterLevel(OBJECT_SELF);
|
|
int nSummon = GetLocalInt(oMod, "SUMMONTIME");
|
|
int nDuration;
|
|
if (nSummon > 0)
|
|
{ nDuration = ((nLevel * nSummon) + 10); }
|
|
else
|
|
{ nDuration = 24; }
|
|
string sResRef = ""; // ResRef of the creature to summon.
|
|
//Make metamagic check for extend
|
|
if (nMetaMagic == METAMAGIC_EXTEND)
|
|
{
|
|
nDuration = nDuration *2; //Duration is +100%
|
|
}
|
|
// Check for a Book of Summons
|
|
object oBook = GetItemPossessedBy(OBJECT_SELF, "bookofsummons");
|
|
if ( oBook != OBJECT_INVALID )
|
|
{
|
|
sResRef = GetLocalString(oBook, "summons3");
|
|
}
|
|
|
|
if ( sResRef == "" )
|
|
{
|
|
// Either no Book of Summons, or variable not set.
|
|
// Go with the defaults.
|
|
if ( GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER) )
|
|
sResRef = "wog_spidswrd001";
|
|
else
|
|
sResRef = "NW_S_WOLFDIRE";
|
|
}
|
|
|
|
float fDuration;
|
|
if (nSummon > 0)
|
|
{ fDuration = RoundsToSeconds(nDuration); }
|
|
else
|
|
{ fDuration = HoursToSeconds(nDuration); }
|
|
|
|
effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
|
|
effect eSummon = EffectSummonCreature(sResRef);
|
|
//Apply the VFX impact and summon effect
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, GetSpellTargetLocation());
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), fDuration);
|
|
}
|
|
|