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