forked from Jaysyn/PRC8
135 lines
5.8 KiB
Plaintext
135 lines
5.8 KiB
Plaintext
|
/*:://////////////////////////////////////////////
|
|||
|
//:: Spell Name Wish
|
|||
|
//:: Spell FileName PHS_S_Wish
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
//:: In Game Spell desctiption
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
Universal
|
|||
|
Level: Sor/Wiz 9
|
|||
|
Components: V, XP
|
|||
|
Casting Time: 1 standard action
|
|||
|
Range: See text
|
|||
|
Target, Effect, or Area: See text
|
|||
|
Duration: See text
|
|||
|
Saving Throw: See text
|
|||
|
Spell Resistance: Yes
|
|||
|
|
|||
|
Wish is the mightiest spell a wizard or sorcerer can cast. By simply speaking aloud, you can alter reality to better suit you.
|
|||
|
|
|||
|
Even wish, however, has its limits.
|
|||
|
|
|||
|
A wish can produce any one of the following effects.
|
|||
|
|
|||
|
<20> Duplicate any wizard or sorcerer spell of 8th level or lower, provided the
|
|||
|
spell is not of a school prohibited to you.
|
|||
|
<20> Duplicate any other spell of 6th level or lower, provided the spell is not
|
|||
|
of a school prohibited to you.
|
|||
|
<20> Duplicate any wizard or sorcerer spell of 7th level or lower even if it<69>s
|
|||
|
of a prohibited school.
|
|||
|
<20> Duplicate any other spell of 5th level or lower even if it<69>s of a
|
|||
|
prohibited school.
|
|||
|
<20> Undo the harmful effects of many other spells, such as geas/quest or
|
|||
|
insanity.
|
|||
|
<20> Create a nonmagical item of up to 25,000 gp in value.
|
|||
|
<20> Create a magic item, or add to the powers of an existing magic item.
|
|||
|
<20> Remove injuries and afflictions. A single wish can aid one creature per
|
|||
|
caster level, and all subjects are cured of the same kind of affliction.
|
|||
|
For example, you could heal all the damage you and your companions have
|
|||
|
taken, or remove all poison effects from everyone in the party, but not do
|
|||
|
both with the same wish. A wish can never restore the experience point loss
|
|||
|
from casting a spell or the level loss from being raised
|
|||
|
from the dead.
|
|||
|
<20> Revive the dead. A wish can bring a dead creature back to life by
|
|||
|
duplicating a resurrection spell. A wish can revive a dead creature whose
|
|||
|
body has been destroyed, but the task takes two wishes, one to recreate
|
|||
|
the body and another to infuse the body with life again. A wish cannot
|
|||
|
prevent a character who was brought back to life from losing an experience
|
|||
|
level.
|
|||
|
<20> Transport travelers. A wish can lift one creature per caster level from
|
|||
|
anywhere on any plane and place those creatures anywhere else on any plane
|
|||
|
regardless of local conditions. An unwilling target gets a Will save to
|
|||
|
negate the effect, and spell resistance (if any) applies.
|
|||
|
|
|||
|
You may try to use a wish to produce greater effects than these, but doing
|
|||
|
so is dangerous. (The wish may pervert your intent into a literal but
|
|||
|
undesirable fulfillment or only a partial fulfillment.)
|
|||
|
|
|||
|
Duplicated spells allow saves and spell resistance as normal (but save DCs
|
|||
|
are for 9th-level spells).
|
|||
|
|
|||
|
Material Component: When a wish duplicates a spell with a material component
|
|||
|
that costs more than 10,000 gp, you must provide that component.
|
|||
|
|
|||
|
XP Cost: The minimum XP cost for casting wish is 5,000 XP. When a wish
|
|||
|
duplicates a spell that has an XP cost, you must pay 5,000 XP or that cost,
|
|||
|
whichever is more. When a wish creates or improves a magic item, you must
|
|||
|
pay twice the normal XP cost for crafting or improving the item, plus an
|
|||
|
additional 5,000 XP.
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
//:: Spell Effects Applied / Notes
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
Wether it is Miracle, or whatever, this is hard to doone way (make it text
|
|||
|
asking-based) and easy another (conversation) and needs DM support too (harder)
|
|||
|
Rating: 10
|
|||
|
|
|||
|
The basis of the Genie functions are there. If there are no DM's, a genie
|
|||
|
is created and used for the "default" uses as stated in the spell description.
|
|||
|
|
|||
|
- Wisdom and intelligence, although would be a somewhat good idea to use,
|
|||
|
are not needed. Basically, this will interpret specific demands for things
|
|||
|
from the default description.
|
|||
|
|
|||
|
If there is a DM, I think timestop on a particular DM, and notifying them,
|
|||
|
would work fine...that DM can cancle its own effects using DM heal.
|
|||
|
|
|||
|
NOTES:
|
|||
|
|
|||
|
- All functions to do effects are in PHS_INC_WISH. This replaces the
|
|||
|
PHS_INC_SPELLS line.
|
|||
|
- To get if a school is against what they are using, we will check all thier
|
|||
|
prepared spells, and look for any missing spell schools (of those few
|
|||
|
which are opposition schools), and use that to see what they can cast.
|
|||
|
- No undo misfortune
|
|||
|
- The Djinni will fake cast for some things (teleport others), and SR checks
|
|||
|
will be very basic (Who the hell has resistance to wish anyway?!)
|
|||
|
//:://////////////////////////////////////////////
|
|||
|
//:: Created By: Jasperre
|
|||
|
//::////////////////////////////////////////////*/
|
|||
|
|
|||
|
#include "PHS_INC_WISH"
|
|||
|
|
|||
|
const string PHS_WISH_DJINNI = "phs_wishdjinni";
|
|||
|
|
|||
|
void main()
|
|||
|
{
|
|||
|
// Spell Hook Check.
|
|||
|
if(!PHS_SpellHookCheck(PHS_SPELL_WISH)) return;
|
|||
|
|
|||
|
// Declare Major Variables
|
|||
|
object oCaster = OBJECT_SELF;
|
|||
|
int nCasterLevel = PHS_GetCasterLevel();
|
|||
|
|
|||
|
// Check experience
|
|||
|
if(!PHS_ComponentXPCheck(5000, oCaster)) return;
|
|||
|
|
|||
|
// Signal spell cast at
|
|||
|
PHS_SignalSpellCastAt(oCaster, PHS_SPELL_WISH, FALSE);
|
|||
|
|
|||
|
// Create the genie if no DM's are on
|
|||
|
if(PHS_GetIsDMPlaying())
|
|||
|
{
|
|||
|
SpeakString("SMP Placeholder: DM Wish");
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// For targeting, we need PHS_WishSetLOS(), so that the spell knows
|
|||
|
// if a placable ETC is in the wishers LOS, and can be targeted.
|
|||
|
PHS_WishSetLOS();
|
|||
|
|
|||
|
// Create the Djinni (Ginie)
|
|||
|
// * Spawn script, Conversation Script does all the things.
|
|||
|
object oDjinni = CreateObject(OBJECT_TYPE_CREATURE, PHS_WISH_DJINNI, GetLocation(oCaster));
|
|||
|
SetLocalObject(oDjinni, "PHS_WISHER", oCaster);
|
|||
|
}
|
|||
|
}
|