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.
159 lines
3.2 KiB
Plaintext
159 lines
3.2 KiB
Plaintext
//::///////////////////////////////////////////////
|
||
//:: Name Bone Blade
|
||
//:: FileName sp_bone_blade.nss
|
||
//:://////////////////////////////////////////////
|
||
/**@file Boneblade
|
||
Necromancy [Evil]
|
||
Level: Blk 2, Clr 3
|
||
Components: V, S, F, Undead
|
||
Casting Time: 1 action
|
||
Range: Touch
|
||
Effect: One bone that becomes a blade
|
||
Duration: 10 minutes/level
|
||
|
||
The caster changes a bone at least 6 inches long into
|
||
a longsword, short sword, or greatsword (caster's choice).
|
||
This weapon has a +1 enhancement bonus on attacks and
|
||
damage for every five caster levels (at least +1,
|
||
maximum +4). Furthermore, this blade deals an extra +1d6
|
||
points of damage to living targets and an additional +1d6
|
||
points of damage to goodaligned targets.
|
||
|
||
This spell confers no proficiency with the blade, but the
|
||
caster doesn't need to be the one wielding the blade for
|
||
it to be effective.
|
||
|
||
Focus: A 6-inch-long bone.
|
||
|
||
Author: Tenjac
|
||
Created: 3/9/2006
|
||
*/
|
||
//:://////////////////////////////////////////////
|
||
//:://////////////////////////////////////////////
|
||
|
||
#include "prc_inc_spells"
|
||
|
||
void main()
|
||
{
|
||
//define vars
|
||
object oPC = OBJECT_SELF;
|
||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||
int nType = MyPRCGetRacialType(oPC);
|
||
int nEnhance = 1;
|
||
int nSpell = GetSpellId();
|
||
float fDuration = (600.0f * nCasterLvl);
|
||
string sSword;
|
||
int nRandom = d3(1);
|
||
|
||
//Spellhook
|
||
if(!X2PreSpellCastCode()) return;
|
||
|
||
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
|
||
|
||
//Check for undeath
|
||
if(nType == RACIAL_TYPE_UNDEAD)
|
||
{
|
||
//Summon blade
|
||
if(nSpell == SPELL_BONEBLADE_GREATSWORD)
|
||
{
|
||
if(nRandom == 1)
|
||
{
|
||
sSword = "wswgs071";
|
||
}
|
||
|
||
if(nRandom == 2)
|
||
{
|
||
sSword = "wswgs072";
|
||
}
|
||
|
||
else
|
||
{
|
||
sSword = "wswgs073";
|
||
}
|
||
}
|
||
|
||
if(nSpell == SPELL_BONEBLADE_LONGSWORD)
|
||
{
|
||
if(nRandom == 1)
|
||
{
|
||
sSword = "wswls091";
|
||
}
|
||
|
||
if(nRandom == 2)
|
||
{
|
||
sSword = "wswls092";
|
||
}
|
||
|
||
else
|
||
{
|
||
sSword = "wswls093";
|
||
}
|
||
}
|
||
|
||
if(nSpell == SPELL_BONEBLADE_SHORTSWORD)
|
||
{
|
||
if(nRandom == 1)
|
||
{
|
||
sSword = "wswss071";
|
||
}
|
||
|
||
if(nRandom == 2)
|
||
{
|
||
sSword = "wswss072";
|
||
}
|
||
|
||
else
|
||
{
|
||
sSword = "wswss073";
|
||
}
|
||
}
|
||
|
||
//Create sword
|
||
object oSword = CreateItemOnObject(sSword, oPC, 1);
|
||
|
||
//+1 per 5 levels
|
||
if(nCasterLvl > 9)
|
||
{
|
||
nEnhance = 2;
|
||
}
|
||
|
||
if(nCasterLvl > 14)
|
||
{
|
||
nEnhance = 3;
|
||
}
|
||
|
||
if(nCasterLvl > 19)
|
||
{
|
||
nEnhance = 4;
|
||
}
|
||
|
||
IPSetWeaponEnhancementBonus(oSword, nEnhance);
|
||
|
||
//+1d6 good
|
||
itemproperty ipProp = ItemPropertyEnhancementBonusVsAlign(IP_CONST_ALIGNMENTGROUP_GOOD, d6(1));
|
||
|
||
IPSafeAddItemProperty(oSword, ipProp, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
|
||
//+1d6 living, use onHit Unique Power
|
||
itemproperty ipBlade = (ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1));
|
||
IPSafeAddItemProperty(oSword, ipBlade, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
|
||
AddEventScript(oSword, EVENT_ITEM_ONHIT, "prc_evnt_bonebld", TRUE, FALSE);
|
||
|
||
//Check metamagic
|
||
if (nMetaMagic & METAMAGIC_EXTEND)
|
||
{
|
||
fDuration = (fDuration * 2);
|
||
}
|
||
|
||
//Schedule deletion of item
|
||
DelayCommand(fDuration, DestroyObject(oSword));
|
||
|
||
}
|
||
//SPEvilShift(oPC);
|
||
PRCSetSchool();
|
||
}
|
||
|
||
|
||
|