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.
		
			
				
	
	
		
			84 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |