WoG_PRC8/src/_removed/nw_s0_summon3.nss
Jaysyn904 e44b9e9132 2025/08/24 Early Update
Updated for PRC8 updates.
2025-08-24 01:04:07 -04:00

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);
}