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.
107 lines
4.0 KiB
Plaintext
107 lines
4.0 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Meld into Stone
|
|
//:: Spell FileName PHS_S_MeldintoSt
|
|
//:://////////////////////////////////////////////
|
|
//:: In Game Spell desctiption
|
|
//:://////////////////////////////////////////////
|
|
Transmutation [Earth]
|
|
Level: Clr 3, Drd 3
|
|
Components: V, S, DF
|
|
Casting Time: 1 standard action
|
|
Range: Personal
|
|
Target: You
|
|
Duration: 10 min./level
|
|
|
|
Meld into stone enables you to meld your body and possessions into a single
|
|
block of stone that you create.
|
|
|
|
You remain aware of the passage of time and can cast spells on yourself
|
|
while hiding in the stone. Nothing that goes on outside the stone can be
|
|
seen, but you can still hear what happens around you. Minor physical damage
|
|
to the stone does not harm you (you gain 8/+1 damage resistance against
|
|
pysical damage). If you get hit enough within the stone then it will
|
|
collapse. You can take up to 8 damage per caster level, maximum of 80 at
|
|
level 10.
|
|
|
|
Any time before the duration expires, you can step out of the stone and the
|
|
spell will dispissitate as when it is completely destroyed or dispelled.
|
|
|
|
The following spells harm you if cast upon the stone that you are occupying:
|
|
Stone to flesh expels you and deals you 5d6 points of damage. Stone shape
|
|
deals you 3d6 points of damage but does not expel you. Transmute rock to mud
|
|
expels you and then slays you instantly unless you make a DC 18 Fortitude
|
|
save, in which case you are merely expelled. Finally, passwall expels you
|
|
without damage.
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
This spell will:
|
|
|
|
- Apply blindness.
|
|
- Not allow spells to be cast on anyone but the caster
|
|
- Make the caster immobile (if possible, else we will use a HB)
|
|
- Apply damage reduction 8/-, against physiscal damage, for a maximum of
|
|
8xlevel, max 80.
|
|
|
|
So, you can cast it and prepare some spells and subsiquently gain a small
|
|
amount of physical damage reduction.
|
|
|
|
Simplified version.
|
|
|
|
The PHS_SpellHookCheck() has code for MELD_INTO_STONE stuff.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "PHS_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Spell Hook Check.
|
|
if(!PHS_SpellHookCheck(PHS_SPELL_MELD_INTO_STONE)) return;
|
|
|
|
// Declare major variables
|
|
object oCaster = OBJECT_SELF;
|
|
object oTarget = GetSpellTargetObject();
|
|
int nCasterLevel = PHS_GetCasterLevel();
|
|
int nMetaMagic = PHS_GetMetaMagicFeat();
|
|
|
|
// Caster needs to be target
|
|
if(oCaster != oTarget) return;
|
|
|
|
// Make sure they are not immune to spells
|
|
if(PHS_TotalSpellImmunity(oTarget)) return;
|
|
|
|
// Duration is 10 minutes/level
|
|
float fDuration = PHS_GetDuration(PHS_MINUTES, nCasterLevel * 10, nMetaMagic);
|
|
|
|
// Limit to 80
|
|
int nLimit = PHS_LimitInteger(nCasterLevel * 8, 80);
|
|
|
|
// Declare effects
|
|
// All "Good" effects
|
|
effect ePhysical1 = EffectDamageResistance(DAMAGE_TYPE_BLUDGEONING, 8, nLimit);
|
|
effect ePhysical2 = EffectDamageResistance(DAMAGE_TYPE_PIERCING, 8, nLimit);
|
|
effect ePhysical3 = EffectDamageResistance(DAMAGE_TYPE_SLASHING, 8, nLimit);
|
|
effect eBlind = EffectBlindness();
|
|
// Visuals
|
|
effect eDur = EffectVisualEffect(VFX_DUR_STONEHOLD);
|
|
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
|
|
|
// Link effects
|
|
effect eLink = EffectLinkEffects(ePhysical1, ePhysical2);
|
|
eLink = EffectLinkEffects(eLink, ePhysical3);
|
|
eLink = EffectLinkEffects(eLink, eBlind);
|
|
eLink = EffectLinkEffects(eLink, eDur);
|
|
eLink = EffectLinkEffects(eLink, eCessate);
|
|
|
|
// Remove previous effects
|
|
PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_MELD_INTO_STONE, oTarget);
|
|
|
|
// Signal spell cast at
|
|
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_MELD_INTO_STONE, FALSE);
|
|
|
|
// Apply effects to the target
|
|
PHS_ApplyDuration(oTarget, eLink, fDuration);
|
|
}
|