generated from Jaysyn/ModuleTemplate
156 lines
4.0 KiB
Plaintext
156 lines
4.0 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Summon Greater Undead
|
|
//:: X2_S2_SumGrUnd
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
2003-10-03 - GZ: Added Epic Progression
|
|
The level of the Pale Master determines the
|
|
type of undead that is summoned.
|
|
|
|
Level 9 <= Mummy Warrior
|
|
Level 10 <= Spectre
|
|
Level 12 <= Vampire Rogue
|
|
Level 14 <= Bodak
|
|
Level 16 <= Ghoul King
|
|
Level 18 <= Vampire Mage
|
|
Level 20 <= Skeleton Blackguard
|
|
Level 22 <= Lich
|
|
Level 24 <= Lich Lord
|
|
Level 26 <= Alhoon
|
|
Level 28 <= Elder Alhoon
|
|
Level 30 <= Lesser Demi Lich
|
|
|
|
Lasts 14 + Casterlevel rounds
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Andrew Nobbs
|
|
//:: Created On: Feb 05, 2003
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "inc_multisummon"
|
|
void PMUpgradeSummon(object oSelf, string sScript)
|
|
{
|
|
object oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED,oSelf);
|
|
ExecuteScript ( sScript, oSummon);
|
|
}
|
|
|
|
void main()
|
|
{
|
|
|
|
int nCasterLevel = GetLevelByClass(CLASS_TYPE_PALEMASTER,OBJECT_SELF);
|
|
int nDuration = 14 + nCasterLevel;
|
|
|
|
effect eSummon;
|
|
string sResRef;
|
|
int nVisID;
|
|
int bAppear;
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Summon the appropriate creature based on the summoner level
|
|
//--------------------------------------------------------------------------
|
|
if (nCasterLevel >= 30)
|
|
{
|
|
// * Demi Lich
|
|
bAppear = TRUE;
|
|
sResRef = "X2_S_LICH_30";
|
|
nVisID = 496;
|
|
}
|
|
else if (nCasterLevel >= 28)
|
|
{
|
|
// * Mega Alhoon
|
|
bAppear = TRUE;
|
|
sResRef = "X2_S_LICH_26";
|
|
nVisID = 496;
|
|
}
|
|
else if (nCasterLevel >= 26)
|
|
{
|
|
// * Alhoon
|
|
bAppear = TRUE;
|
|
sResRef = "X2_S_LICH_24";
|
|
nVisID = 496;
|
|
}
|
|
else if (nCasterLevel >= 24)
|
|
{
|
|
// * Lich
|
|
sResRef = "X2_S_LICH_22";
|
|
nVisID = 496;
|
|
}
|
|
else if (nCasterLevel >= 22)
|
|
{
|
|
// * Lich
|
|
sResRef = "X2_S_LICH_20";
|
|
nVisID = 496;
|
|
}
|
|
else if (nCasterLevel >= 20)
|
|
{
|
|
// * Skeleton Blackguard
|
|
sResRef = "x2_s_bguard_18";
|
|
nVisID = VFX_IMP_HARM;
|
|
}
|
|
else if (nCasterLevel >= 18)
|
|
{
|
|
// * Vampire Mage
|
|
bAppear = TRUE;
|
|
sResRef = "x2_s_vamp_18";
|
|
nVisID = VFX_FNF_SUMMON_UNDEAD;
|
|
}
|
|
else if (nCasterLevel >= 16)
|
|
{
|
|
// * Ghoul King
|
|
sResRef = "X2_S_GHOUL_16";
|
|
nVisID = VFX_IMP_HARM;
|
|
}
|
|
else if (nCasterLevel >= 14)
|
|
{
|
|
// * Greater Bodak
|
|
sResRef = "X2_S_BODAK_14";
|
|
nVisID = VFX_IMP_HARM;
|
|
}
|
|
else if (nCasterLevel >= 12)
|
|
{
|
|
// * Vampire Rogue
|
|
bAppear = TRUE;
|
|
sResRef = "X2_S_VAMP_10";
|
|
nVisID = VFX_IMP_HARM;
|
|
}
|
|
else if (nCasterLevel >= 10)
|
|
{
|
|
bAppear = TRUE;
|
|
sResRef = "X2_S_SPECTRE_10";
|
|
nVisID = VFX_IMP_HARM;
|
|
}
|
|
else
|
|
{
|
|
// * Mummy
|
|
sResRef = "X2_S_MUMMY9";
|
|
nVisID = VFX_IMP_HARM;
|
|
}
|
|
|
|
|
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_LOS_EVIL_10),GetSpellTargetLocation());
|
|
//Apply the summon visual and summon the two undead.
|
|
if(GetLocalInt(GetModule(), "PnPSummonDuration")==FALSE)
|
|
PrimoEffectSummonCreature(sResRef,nVisID, GetSpellTargetLocation(),
|
|
DURATION_TYPE_TEMPORARY, HoursToSeconds(nDuration), 0.0, 0.0,
|
|
bAppear);
|
|
else
|
|
PrimoEffectSummonCreature(sResRef,nVisID, GetSpellTargetLocation(),
|
|
DURATION_TYPE_TEMPORARY, RoundsToSeconds(nDuration-14), 0.0, 0.0,
|
|
bAppear);
|
|
|
|
// * If the character has a special pale master item equipped (variable set via OnEquip)
|
|
// * run a script on the summoned monster.
|
|
// string sScript = GetLocalString(OBJECT_SELF,"X2_S_PM_SPECIAL_ITEM");
|
|
// if (sScript != "")
|
|
// {
|
|
// object oSelf = OBJECT_SELF;
|
|
// DelayCommand(1.0,PMUpgradeSummon(oSelf,sScript));
|
|
// }
|
|
}
|
|
|
|
|
|
|
|
|
|
|