PRC8/nwn/nwnprc/trunk/scripts/tmp_sla.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

590 lines
17 KiB
Plaintext

/**
* @file
* Spellscript for a range of template SLAs.
*/
//constants 16300 - 17300
const int HALF_CELESTIAL_SLA_PROTECTION_FROM_EVIL = 16304;
const int HALF_CELESTIAL_SLA_BLESS = 16305;
const int HALF_CELESTIAL_SLA_AID = 16306;
const int HALF_CELESTIAL_SLA_DETECT_EVIL = 16307;
const int HALF_CELESTIAL_SLA_CURE_SERIOUS_WOUNDS = 16308;
const int HALF_CELESTIAL_SLA_NEUTRALIZE_POISON = 16309;
const int HALF_CELESTIAL_SLA_HOLYSMITE = 16310;
const int HALF_CELESTIAL_SLA_REMOVE_DISEASE = 16311;
const int HALF_CELESTIAL_SLA_DISPELEVIL = 16312;
const int HALF_CELESTIAL_SLA_HOLY_WORD = 16313;
const int HALF_CELESTIAL_SLA_HOLYAURA = 16314;
const int HALF_CELESTIAL_SLA_HALLOW = 16315;
const int HALF_CELESTIAL_SLA_MASS_CHARM = 16316;
const int HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX = 16317;
const int HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX_AIR = 16318;
const int HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX_EARTH = 16319;
const int HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX_FIRE = 16320;
const int HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX_WATER = 16321;
const int HALF_CELESTIAL_SLA_RESURRECTION = 16322;
const int HALF_CELESTIAL_SLA_DAYLIGHT = 16323;
const int HALF_FIENDISH_SLA_DARKNESS = 16325;
const int HALF_FIENDISH_SLA_DESECRATE = 16326;
const int HALF_FIENDISH_SLA_UNHOLY_BLIGHT = 16327;
const int HALF_FIENDISH_SLA_POISON = 16328;
const int HALF_FIENDISH_SLA_CONTAGION = 16329;
const int HALF_FIENDISH_SLA_BLASPHEMY = 16330;
const int HALF_FIENDISH_SLA_UNHOLY_AURA = 16331;
const int HALF_FIENDISH_SLA_UNHALLOW = 16332;
const int HALF_FIENDISH_SLA_HORRID_WILTING = 16333;
const int HALF_FIENDISH_SLA_SUMMON_CREATURE_IX = 16334;
const int HALF_FIENDISH_SLA_SUMMON_CREATURE_IX_AIR = 16335;
const int HALF_FIENDISH_SLA_SUMMON_CREATURE_IX_EARTH = 16336;
const int HALF_FIENDISH_SLA_SUMMON_CREATURE_IX_FIRE = 16337;
const int HALF_FIENDISH_SLA_SUMMON_CREATURE_IX_WATER = 16338;
const int HALF_FIENDISH_SLA_DESTRUCTION = 16339;
const int DEMILICH_ALTER_SELF_LEARN = 16344;
const int DEMILICH_ALTER_SELF_OPTIONS = 16345;
const int DEMILICH_ALTER_SELF_QS1 = 16346;
const int DEMILICH_ALTER_SELF_QS2 = 16347;
const int DEMILICH_ALTER_SELF_QS3 = 16348;
const int DEMILICH_ASTRAL_PROJECTION = 16349;
const int DEMILICH_CREATE_GREATER_UNDEAD = 16350;
const int DEMILICH_CREATE_UNDEAD = 16351;
const int DEMILICH_DEATH_KNELL = 16352;
const int DEMILICH_ENERVATION = 16353;
const int DEMILICH_GREATER_DISPEL_MAGIC = 16354;
const int DEMILICH_HARM = 16355;
const int DEMILICH_SUMMON_CREATURE_I = 16356;
const int DEMILICH_SUMMON_CREATURE_II = 16357;
const int DEMILICH_SUMMON_CREATURE_III = 16358;
const int DEMILICH_SUMMON_CREATURE_IV = 16359;
const int DEMILICH_SUMMON_CREATURE_V = 16360;
const int DEMILICH_SUMMON_CREATURE_VI = 16361;
const int DEMILICH_SUMMON_CREATURE_VII_AIR = 16363;
const int DEMILICH_SUMMON_CREATURE_VII_EARTH = 16364;
const int DEMILICH_SUMMON_CREATURE_VII_FIRE = 16365;
const int DEMILICH_SUMMON_CREATURE_VII_WATER = 16366;
const int DEMILICH_SUMMON_CREATURE_VIII_AIR = 16368;
const int DEMILICH_SUMMON_CREATURE_VIII_EARTH = 16369;
const int DEMILICH_SUMMON_CREATURE_VIII_FIRE = 16370;
const int DEMILICH_SUMMON_CREATURE_VIII_WATER = 16371;
const int DEMILICH_SUMMON_CREATURE_IX_AIR = 16373;
const int DEMILICH_SUMMON_CREATURE_IX_EARTH = 16374;
const int DEMILICH_SUMMON_CREATURE_IX_FIRE = 16375;
const int DEMILICH_SUMMON_CREATURE_IX_WATER = 16376;
const int DEMILICH_TELEKINESIS = 16377;
const int DEMILICH_WEIRD = 16378;
const int DEMILICH_GREATER_PLANAR_ALLY = 16379;
const int ARCHLICH_TURN_UNDEAD = 16381;
//:: Saint Template
const int SAINT_SLA_BLESS = 16382;
//const int SAINT_SLA_GUIDANCE = 16383;
const int SAINT_SLA_RESISTANCE = 16384;
const int SAINT_SLA_VIRTUE = 16385;
#include "inc_newspellbook"
#include "prc_inc_core"
//Check for remining SLA uses
int CheckUses(object oPC, int nSpellID, int nUses)
{
if(nUses == 0) //unlimited uses per day
return TRUE;
int nTest = GetLocalInt(oPC, "TemplateSLA_"+IntToString(nSpellID));
if(nTest < nUses)
{
nTest++;
SetLocalInt(oPC, "TemplateSLA_"+IntToString(nSpellID), nTest);
return TRUE;
}
else
{
FloatingTextStringOnCreature("You have already used this ability today.", oPC);
return FALSE;
}
}
void main()
{
object oPC = OBJECT_SELF;
int nSpellID = GetSpellId();
int nCasterLvl = GetHitDice(oPC);
int nUses = 1, nSpell;
int nHD = GetHitDice(oPC);
int nDC = 10 + GetAbilityModifier(ABILITY_CHARISMA, oPC);
switch(nSpellID)
{
case HALF_CELESTIAL_SLA_PROTECTION_FROM_EVIL:
{
nUses = 3;
nSpell = SPELL_PROTECTION_FROM_EVIL;
break;
}
case HALF_CELESTIAL_SLA_BLESS:
{
nSpell = SPELL_BLESS;
break;
}
case HALF_CELESTIAL_SLA_AID:
{
nSpell = SPELL_AID;
break;
}
case HALF_CELESTIAL_SLA_DETECT_EVIL:
{
nSpell = SPELL_DETECT_EVIL;
break;
}
case HALF_CELESTIAL_SLA_CURE_SERIOUS_WOUNDS:
{
nSpell = SPELL_CURE_SERIOUS_WOUNDS;
break;
}
case HALF_CELESTIAL_SLA_NEUTRALIZE_POISON:
{
nSpell = SPELL_NEUTRALIZE_POISON;
break;
}
case HALF_CELESTIAL_SLA_HOLYSMITE:
{
//nSpell = ?;
break;
}
case HALF_CELESTIAL_SLA_REMOVE_DISEASE:
{
nSpell = SPELL_REMOVE_DISEASE;
break;
}
case HALF_CELESTIAL_SLA_DISPELEVIL:
{
//nSpell = ?;
break;
}
case HALF_CELESTIAL_SLA_HOLY_WORD:
{
nSpell = SPELL_HOLY_WORD;
break;
}
case HALF_CELESTIAL_SLA_HOLYAURA:
{
nUses = 3;
nSpell = SPELL_PRC_HOLY_AURA;
break;
}
case HALF_CELESTIAL_SLA_HALLOW:
{
//nSpell = ?;
break;
}
case HALF_CELESTIAL_SLA_MASS_CHARM:
{
nSpell = SPELL_MASS_CHARM;
break;
}
case HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX_AIR:
{
nSpellID = HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX;
nSpell = 3197;
break;
}
case HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX_EARTH:
{
nSpellID = HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX;
nSpell = 3198;
break;
}
case HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX_FIRE:
{
nSpellID = HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX;
nSpell = 3199;
break;
}
case HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX_WATER:
{
nSpellID = HALF_CELESTIAL_SLA_SUMMON_CREATURE_IX;
nSpell = 3200;
break;
}
case HALF_CELESTIAL_SLA_RESURRECTION:
{
nSpell = SPELL_RESURRECTION;
break;
}
case HALF_CELESTIAL_SLA_DAYLIGHT:
{
nUses = 0;
nSpell = SPELL_DAYLIGHT;
break;
}
case HALF_FIENDISH_SLA_DARKNESS:
{
nUses = 3;
nSpell = SPELL_DARKNESS;
break;
}
case HALF_FIENDISH_SLA_DESECRATE:
{
//nSpell = ?;
break;
}
case HALF_FIENDISH_SLA_UNHOLY_BLIGHT:
{
//nSpell = ?;
break;
}
case HALF_FIENDISH_SLA_POISON:
{
nUses = 3;
nSpell = SPELL_POISON;
break;
}
case HALF_FIENDISH_SLA_CONTAGION:
{
nSpell = SPELL_CONTAGION;
break;
}
case HALF_FIENDISH_SLA_BLASPHEMY:
{
nSpell = SPELL_BLASPHEMY;
break;
}
case HALF_FIENDISH_SLA_UNHOLY_AURA:
{
nUses = 3;
//nSpell = ?;
break;
}
case HALF_FIENDISH_SLA_UNHALLOW:
{
//nSpell = ?;
break;
}
case HALF_FIENDISH_SLA_HORRID_WILTING:
{
nSpell = SPELL_HORRID_WILTING;
break;
}
case HALF_FIENDISH_SLA_SUMMON_CREATURE_IX_AIR:
{
nSpellID = HALF_FIENDISH_SLA_SUMMON_CREATURE_IX;
nSpell = 3197;
break;
}
case HALF_FIENDISH_SLA_SUMMON_CREATURE_IX_EARTH:
{
nSpellID = HALF_FIENDISH_SLA_SUMMON_CREATURE_IX;
nSpell = 3198;
break;
}
case HALF_FIENDISH_SLA_SUMMON_CREATURE_IX_FIRE:
{
nSpellID = HALF_FIENDISH_SLA_SUMMON_CREATURE_IX;
nSpell = 3199;
break;
}
case HALF_FIENDISH_SLA_SUMMON_CREATURE_IX_WATER:
{
nSpellID = HALF_FIENDISH_SLA_SUMMON_CREATURE_IX;
nSpell = 3200;
break;
}
case HALF_FIENDISH_SLA_DESTRUCTION:
{
nSpell = SPELL_DESTRUCTION;
break;
}
case DEMILICH_ALTER_SELF_LEARN:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_ALTER_SELF_LEARN;
break;
}
case DEMILICH_ALTER_SELF_OPTIONS:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_ALTER_SELF_OPTIONS;
break;
}
case DEMILICH_ALTER_SELF_QS1:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_ALTER_SELF_QS1;
break;
}
case DEMILICH_ALTER_SELF_QS2:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_ALTER_SELF_QS2;
break;
}
case DEMILICH_ALTER_SELF_QS3:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_ALTER_SELF_QS3;
break;
}
case DEMILICH_ASTRAL_PROJECTION:
{
nUses = 0;
nDC += nCasterLvl;
//nSpell = ?;
break;
}
case DEMILICH_CREATE_GREATER_UNDEAD:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_CREATE_GREATER_UNDEAD;
break;
}
case DEMILICH_CREATE_UNDEAD:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_CREATE_UNDEAD;
break;
}
case DEMILICH_DEATH_KNELL:
{
nUses = 0;
nDC += nCasterLvl;
//nSpell = ?;
break;
}
case DEMILICH_ENERVATION:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_ENERVATION;
break;
}
case DEMILICH_GREATER_DISPEL_MAGIC:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_GREATER_DISPELLING;
break;
}
case DEMILICH_HARM:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_HARM;
break;
}
case DEMILICH_SUMMON_CREATURE_I:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_SUMMON_CREATURE_I;
break;
}
case DEMILICH_SUMMON_CREATURE_II:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_SUMMON_CREATURE_II;
break;
}
case DEMILICH_SUMMON_CREATURE_III:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_SUMMON_CREATURE_III;
break;
}
case DEMILICH_SUMMON_CREATURE_IV:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_SUMMON_CREATURE_IV;
break;
}
case DEMILICH_SUMMON_CREATURE_V:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_SUMMON_CREATURE_V;
break;
}
case DEMILICH_SUMMON_CREATURE_VI:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_SUMMON_CREATURE_VI;
break;
}
case DEMILICH_SUMMON_CREATURE_VII_AIR:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3189;
break;
}
case DEMILICH_SUMMON_CREATURE_VII_EARTH:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3190;
break;
}
case DEMILICH_SUMMON_CREATURE_VII_FIRE:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3191;
break;
}
case DEMILICH_SUMMON_CREATURE_VII_WATER:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3192;
break;
}
case DEMILICH_SUMMON_CREATURE_VIII_AIR:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3193;
break;
}
case DEMILICH_SUMMON_CREATURE_VIII_EARTH:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3194;
break;
}
case DEMILICH_SUMMON_CREATURE_VIII_FIRE:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3195;
break;
}
case DEMILICH_SUMMON_CREATURE_VIII_WATER:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3196;
break;
}
case DEMILICH_SUMMON_CREATURE_IX_AIR:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3197;
break;
}
case DEMILICH_SUMMON_CREATURE_IX_EARTH:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3198;
break;
}
case DEMILICH_SUMMON_CREATURE_IX_FIRE:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3199;
break;
}
case DEMILICH_SUMMON_CREATURE_IX_WATER:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = 3200;
break;
}
case DEMILICH_TELEKINESIS:
{
nUses = 0;
nDC += nCasterLvl;
//nSpell = ?;
break;
}
case DEMILICH_WEIRD:
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_WEIRD;
break;
}
case DEMILICH_GREATER_PLANAR_ALLY:
{
nUses = 2;
nDC += nCasterLvl;
nSpell = SPELL_GREATER_PLANAR_ALLY;
break;
}
case ARCHLICH_TURN_UNDEAD:
{
nUses = 3;
nUses += GetAbilityModifier(ABILITY_CHARISMA, oPC);
if (nUses == 0) nUses = -1;
nDC += nCasterLvl;
nSpell = SPELLABILITY_TURN_UNDEAD;
break;
}
case SAINT_SLA_BLESS:
{
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_BLESS;
break;
}
else
{
SendMessageToPC(oPC, "Saints must be good aligned");
break;
}
}
case SAINT_SLA_RESISTANCE:
{
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_RESISTANCE;
break;
}
else
{
SendMessageToPC(oPC, "Saints must be good aligned");
break;
}
}
case SAINT_SLA_VIRTUE:
{
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
{
nUses = 0;
nDC += nCasterLvl;
nSpell = SPELL_VIRTUE; //:: Virtue
break;
}
else
{
SendMessageToPC(oPC, "Saints must be good aligned");
break;
}
}
}
if(CheckUses(oPC, nSpellID, nUses))
DoRacialSLA(nSpell, nCasterLvl, nDC);
}