PRC8/nwn/nwnprc/trunk/smp/phs_s_explorunes.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

84 lines
3.6 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Explosive Runes
//:: Spell FileName PHS_S_ExploRunes
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
SR applies.
You trace these mystic runes upon a book, map, scroll, or similar object
bearing written information. The runes detonate when read, such as when
reading the spell on them or reading the book, dealing 6d6 points of force
damage. The reader takes the full damage with no saving throw; any other
creature within 10 feet of the runes is entitled to a Reflex save for half
damage. The object on which the runes were written is instantly destroyed.
You and any party members can read the protected writing without triggering
the runes. Likewise, you can remove the runes whenever desired. Another
creature can remove them with a successful dispel magic or erase spell, but
attempting to dispel or erase the runes and failing to do so triggers the
explosion.
Note: Magic traps such as explosive runes are hard to detect and disable. A
rogue (only) can use the Search skill to find the runes and Disable Device
to thwart them, using his Disarm Magical Device tool to try and detect
magical runes on an item. The DC in each case is 25 + spell level, or 28
for explosive runes.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Must target a book or a scroll.
If it hasn't got the property "Cast Spell", it adds "Read" to the items
properties.
It will be stripped each time a client enters a server, too, else it'd
bodge because the ID of the caster would always be wrong.
FAQ: Adding your own Explosive Runes with no caster:
- Make sure the item has a "Read" cast spell, or, failing that, an actual
spell to read. Read doesn't even have to work as long as the explosive
runes are set up right.
- Put the local integer variable PHS_EXPLOSIVE_RUNES_SET to 1
- Set the integer, PHS_EXPLOSIVE_RUNES_DC, to the DC of the save you want
(Default might be around DC16, for 10 + 3 + 3, the lowest level caster)
Thats it! If no caster is found, you see, it is still used, but of course
any function it uses just won't take into account alignment ETC.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell Hook check - special note, it'd be funny if they read a scroll
// with the actual spell on and got exploded!
if(!PHS_SpellHookCheck(PHS_SPELL_EXPLOSIVE_RUNES)) return;
// Declare major variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
int nSpellSaveDC = PHS_GetSpellSaveDC();
// Duration is permament - we set local variables to the object to use this
// spell, so it will stay, and stay hidden, with the object.
// Check if item is valid
if(GetIsObjectValid(oTarget) && GetObjectType(oTarget) == OBJECT_TYPE_ITEM)
{
// Make sure it doesn't already have the runes (we don't tell the
// caster one way or another)
if(!GetLocalInt(oTarget, PHS_EXPLOSIVE_RUNES_SET))
{
// Set the variables
SetLocalInt(oTarget, PHS_EXPLOSIVE_RUNES_SET, TRUE);
SetLocalInt(oTarget, PHS_EXPLOSIVE_RUNES_DC, nSpellSaveDC);
SetLocalObject(oTarget, PHS_EXPLOSIVE_RUNES_OBJECT, oCaster);
}
}
}