Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
92 lines
3.0 KiB
Plaintext
92 lines
3.0 KiB
Plaintext
/* For burning spells to use in abilities */
|
|
|
|
#include "prc_inc_spells"
|
|
#include "prc_getbest_inc"
|
|
|
|
//////////////////////////////////////////////////
|
|
/* Function Prototypes */
|
|
//////////////////////////////////////////////////
|
|
|
|
// Burns a spell of the selected spell level
|
|
// Spell level picked by prc_burnselect.nss
|
|
//
|
|
// Returns FALSE if it failed, or the spell level if it worked
|
|
int BurnSpell(object oPC);
|
|
|
|
// Burns a spell of the highest spell level the character has
|
|
//
|
|
// Returns FALSE if it failed, or the spell if it worked
|
|
int BurnBestSpell(object oPC);
|
|
|
|
int BurnSpell(object oPC)
|
|
{
|
|
int nSpellLevel = GetLocalInt(oPC, "BurnSpellLevel");
|
|
int nSpell;
|
|
if (nSpellLevel == 0)
|
|
nSpell = GetBestL0Spell(oPC, -1);
|
|
else if (nSpellLevel == 1)
|
|
nSpell = GetBestL1Spell(oPC, -1);
|
|
else if (nSpellLevel == 2)
|
|
nSpell = GetBestL2Spell(oPC, -1);
|
|
else if (nSpellLevel == 3)
|
|
nSpell = GetBestL3Spell(oPC, -1);
|
|
else if (nSpellLevel == 4)
|
|
nSpell = GetBestL4Spell(oPC, -1);
|
|
else if (nSpellLevel == 5)
|
|
nSpell = GetBestL5Spell(oPC, -1);
|
|
else if (nSpellLevel == 6)
|
|
nSpell = GetBestL6Spell(oPC, -1);
|
|
else if (nSpellLevel == 7)
|
|
nSpell = GetBestL7Spell(oPC, -1);
|
|
else if (nSpellLevel == 8)
|
|
nSpell = GetBestL8Spell(oPC, -1);
|
|
else if (nSpellLevel == 9)
|
|
nSpell = GetBestL9Spell(oPC, -1);
|
|
|
|
if (nSpell == -1)
|
|
{
|
|
FloatingTextStringOnCreature("You have no spells remaining of the selected level", oPC, FALSE);
|
|
return FALSE;
|
|
}
|
|
|
|
if (DEBUG) FloatingTextStringOnCreature("Burning SpellID "+IntToString(nSpell), oPC, FALSE);
|
|
PRCDecrementRemainingSpellUses(oPC, nSpell);
|
|
if(GetLocalInt(oPC, "ReserveFeatsRunning"))
|
|
DelayCommand(0.1f, ExecuteScript("prc_reservefeat", oPC));
|
|
return nSpellLevel;
|
|
}
|
|
|
|
int BurnBestSpell(object oPC)
|
|
{
|
|
int nSpell = GetBestL9Spell(oPC, -1);
|
|
if (nSpell == -1)
|
|
nSpell = GetBestL8Spell(oPC, -1);
|
|
if (nSpell == -1)
|
|
nSpell = GetBestL7Spell(oPC, -1);
|
|
if (nSpell == -1)
|
|
nSpell = GetBestL6Spell(oPC, -1);
|
|
if (nSpell == -1)
|
|
nSpell = GetBestL5Spell(oPC, -1);
|
|
if (nSpell == -1)
|
|
nSpell = GetBestL4Spell(oPC, -1);
|
|
if (nSpell == -1)
|
|
nSpell = GetBestL3Spell(oPC, -1);
|
|
if (nSpell == -1)
|
|
nSpell = GetBestL2Spell(oPC, -1);
|
|
if (nSpell == -1)
|
|
nSpell = GetBestL1Spell(oPC, -1);
|
|
if (nSpell == -1)
|
|
nSpell = GetBestL0Spell(oPC, -1);
|
|
|
|
if (nSpell == -1)
|
|
{
|
|
FloatingTextStringOnCreature("You have no spells remaining", oPC, FALSE);
|
|
return FALSE;
|
|
}
|
|
|
|
if (DEBUG) FloatingTextStringOnCreature("Burning SpellID "+IntToString(nSpell), oPC, FALSE);
|
|
PRCDecrementRemainingSpellUses(oPC, nSpell);
|
|
if(GetLocalInt(oPC, "ReserveFeatsRunning"))
|
|
DelayCommand(0.1f, ExecuteScript("prc_reservefeat", oPC));
|
|
return nSpell;
|
|
} |