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.
125 lines
4.7 KiB
Plaintext
125 lines
4.7 KiB
Plaintext
/*:://////////////////////////////////////////////
|
||
//:: Spell Name Statue
|
||
//:: Spell FileName PHS_S_Statue
|
||
//:://////////////////////////////////////////////
|
||
//:: In Game Spell desctiption
|
||
//:://////////////////////////////////////////////
|
||
Statue
|
||
Transmutation
|
||
Level: Sor/Wiz 7
|
||
Components: V, S, M
|
||
Casting Time: 1 round
|
||
Range: Touch
|
||
Target: Willing Creature touched
|
||
Duration: 1 hour/level (D)
|
||
Saving Throw: Will negates (harmless)
|
||
Spell Resistance: Yes (harmless)
|
||
|
||
A statue spell turns the subject to solid stone, along with any garments and
|
||
equipment worn or carried. In statue form, the subject gains hardness 8. The
|
||
subject retains its own hit points.
|
||
|
||
The subject can see, hear, and smell normally, but it does not need to eat
|
||
or breathe. Feeling is limited to those sensations that can affect the
|
||
granite-hard substance of the individual’s body. Chipping is equal to a mere
|
||
scratch, but breaking off one of the statue’s arms constitutes serious
|
||
damage.
|
||
|
||
The subject of a statue spell can return to its normal state, act, and then
|
||
return instantly to the statue state (a free action) if it so desires, as
|
||
long as the spell duration is in effect.
|
||
|
||
This spell only works on player character allies. It will not operate on
|
||
non-players, or non-allies.
|
||
|
||
Material Component: Lime, sand, and a drop of water stirred by an iron bar,
|
||
such as a nail or spike.
|
||
//:://////////////////////////////////////////////
|
||
//:: Spell Effects Applied / Notes
|
||
//:://////////////////////////////////////////////
|
||
Applies a magical effect (for dispelling) which is cessate.
|
||
|
||
Also creates a monster (with a heartbeat) to check for the spell (and remove
|
||
the Granite effects if so) and also check if they wish to remove the
|
||
spells effects.
|
||
|
||
It will relay the instructions: "Whisper "move" to move again and "statue" to
|
||
turn back into a statue"
|
||
|
||
The creature will apply the first effects, too. It'll use the effects
|
||
creator to determine which are the granite effects.
|
||
//:://////////////////////////////////////////////
|
||
//:: Created By: Jasperre
|
||
//::////////////////////////////////////////////*/
|
||
|
||
#include "PHS_INC_SPELLS"
|
||
|
||
void main()
|
||
{
|
||
// Spell Hook Check.
|
||
if(!PHS_SpellHookCheck(PHS_SPELL_STATUE)) return;
|
||
|
||
// Declare major variables
|
||
object oCaster = OBJECT_SELF;
|
||
object oTarget = GetSpellTargetObject();
|
||
int nCasterLevel = PHS_GetCasterLevel();
|
||
int nMetaMagic = PHS_GetMetaMagicFeat();
|
||
|
||
// Must be a willing, PC character
|
||
if(!GetFactionEqual(oCaster, oTarget) || !GetIsPC(oTarget))
|
||
{
|
||
// Must be a PC, in the party
|
||
FloatingTextStringOnCreature("*You must cast Statue on a PC party member*", oCaster, FALSE);
|
||
return;
|
||
}
|
||
|
||
// Make sure they are not immune to spells
|
||
if(PHS_TotalSpellImmunity(oTarget)) return;
|
||
|
||
// Duration - 1 hour/level
|
||
float fDuration = PHS_GetDuration(PHS_HOURS, nCasterLevel, nMetaMagic);
|
||
|
||
// Declare effects
|
||
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||
|
||
// These ones are to be used (not here) to provide the statue effect, and
|
||
// will be supernatural
|
||
/*
|
||
// Hardness 8
|
||
effect eHardness1 = EffectDamageResistance(DAMAGE_TYPE_PIERCING, 8);
|
||
effect eHardness2 = EffectDamageResistance(DAMAGE_TYPE_SLASHING, 8);
|
||
effect eHardness3 = EffectDamageResistance(DAMAGE_TYPE_BLUDGEONING, 8);
|
||
// Visual and stopping effect
|
||
// * Also adds all the things a statue would be immune to (criticals ETC)
|
||
effect eStatue = PHS_CreateProperPetrifyEffectLink();
|
||
|
||
// Link these effects
|
||
effect eLink = EffectLinkEffects(eStatue, eHardness1);
|
||
effect eLink = EffectLinkEffects(eLink, eHardness2);
|
||
effect eLink = EffectLinkEffects(eLink, eHardness3);
|
||
*/
|
||
|
||
// Remove previous effects
|
||
PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_STATUE, oTarget);
|
||
|
||
// Signal spell cast at
|
||
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_STATUE, FALSE);
|
||
|
||
// Increment how many times this spell has been cast (for the following
|
||
// creatures to measure)
|
||
int nTimesCast = PHS_IncreaseStoredInteger(oTarget, "PHS_SPELL_STATUE_CAST_TIMES");
|
||
|
||
// Create the creature to follow them.
|
||
object oStatueMaker = CreateObject(OBJECT_TYPE_CREATURE, "phs_statuemaker", GetLocation(oTarget));
|
||
|
||
// Set the integer of times cast, and the master of the creature
|
||
SetLocalObject(oStatueMaker, "PHS_SPELL_STATUE_MASTER", oTarget);
|
||
SetLocalInt(oStatueMaker, "PHS_SPELL_STATUE_CAST_TIMES", nTimesCast);
|
||
|
||
// Tell the PC how to make themselves into a statue ETC.
|
||
FloatingTextStringOnCreature("*To let yourself move again, whisper 'move'. Say 'statue' to become granite again*", oTarget, FALSE);
|
||
|
||
// Apply effects to the target
|
||
PHS_ApplyDuration(oTarget, eCessate, fDuration);
|
||
}
|