Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
141 lines
6.4 KiB
Plaintext
141 lines
6.4 KiB
Plaintext
/*:://////////////////////////////////////////////
|
||
//:: Spell Name Teleport
|
||
//:: Spell FileName PHS_S_Teleport
|
||
//:://////////////////////////////////////////////
|
||
//:: In Game Spell desctiption
|
||
//:://////////////////////////////////////////////
|
||
Conjuration (Teleportation)
|
||
Level: Sor/Wiz 5, Travel 5
|
||
Components: V
|
||
Casting Time: 1 standard action
|
||
Range: Personal and touch
|
||
Target: You and allied creatures within a 5M-radius sphere; see text
|
||
Duration: Instantaneous
|
||
Saving Throw: None
|
||
Spell Resistance: No
|
||
|
||
This spell instantly transports you to a designated destination. Interplanar
|
||
travel is not possible. You can bring along objects as long as their weight
|
||
doesn’t exceed your maximum load. You may also bring one additional willing
|
||
Medium or smaller creature (carrying gear or objects up to its maximum load)
|
||
or its equivalent (see below) per three caster levels. A Large creature
|
||
counts as two Medium creatures, a Huge creature counts as two Large
|
||
creatures, and so forth. All creatures to be transported must be within 5M
|
||
of you at the time of casting, and must be in your party to suceed. As with
|
||
all spells where the range is personal and the target is you, you need not
|
||
make a saving throw, nor is spell resistance applicable to you.
|
||
|
||
You must have some clear idea of the location and layout of the destination.
|
||
The clearer your mental image, the more likely the teleportation works.
|
||
Areas of strong physical or magical energy may make teleportation more
|
||
hazardous or even impossible.
|
||
|
||
To see how well the teleportation works, roll d% and consult the Teleport
|
||
table. Refer to the following information for definitions of the terms on
|
||
the table.
|
||
|
||
Familiarity: “Very familiar” is a place where you have been very often and
|
||
where you feel at home. “Studied carefully” is a place you know well, either
|
||
because you can currently see it, you’ve been there often, or you have used
|
||
other means (such as scrying) to study the place for at least one hour.
|
||
“Seen casually” is a place that you have seen more than once but with which
|
||
you are not very familiar. “Viewed once” is a place that you have seen once,
|
||
possibly using magic.
|
||
|
||
“False destination” is a place that does not truly exist or if you are
|
||
teleporting to an otherwise familiar location that no longer exists as such
|
||
or has been so completely altered as to no longer be familiar to you. When
|
||
traveling to a false destination, roll 1d20+80 to obtain results on the
|
||
table, rather than rolling d%, since there is no real destination for you
|
||
to hope to arrive at or even be off target from.
|
||
|
||
On Target: You appear where you want to be.
|
||
|
||
Off Target: You appear safely a random distance away from the destination
|
||
in a random direction. Distance off target can be anywhere in the target
|
||
area. The direction off target is determined randomly.
|
||
|
||
Similar Area: You wind up in an area that’s visually or thematically similar
|
||
to the target area. Generally, you appear in the closest similar place
|
||
within range. If no such area exists within the spell’s range, the spell
|
||
simply fails instead.
|
||
|
||
Mishap: You and anyone else teleporting with you have gotten “scrambled.”
|
||
You each take 1d10 points of damage, and you reroll on the chart to see
|
||
where you wind up. For these rerolls, roll 1d20+80. Each time “Mishap” comes
|
||
up, the characters take more damage and must reroll.
|
||
|
||
Familiarity On Target Off Target Similar Area Mishap
|
||
Very familiar 01-97 98-99 100 -
|
||
Studied carefully 01-94 95-97 98-99 100
|
||
Seen casually 01-88 89-94 95-98 99-100
|
||
Viewed once 01-76 77-88 89-96 97-100
|
||
False destination (1d20+80) - - 81-92 93-100
|
||
//:://////////////////////////////////////////////
|
||
//:: Spell Effects Applied / Notes
|
||
//:://////////////////////////////////////////////
|
||
Trying to make it as accurate as possible to the spell, and should maybe
|
||
work as intended to (with mishaps and whatever).
|
||
|
||
Need to have a local integer on an area for it to ever be considered
|
||
"Very familiar", and you must still study it as below.
|
||
|
||
You have to study an area for it to be "studied carefully" which is done
|
||
in a cutscene, so the caster can only cancle it. Note: Any hostile creatures
|
||
who come during the time auto-cancle it, of course! :-)
|
||
|
||
These are set on the caster item under the tags of the area. Locations
|
||
must be set up each time they enter the area, but might not require any
|
||
studying.
|
||
|
||
There can be up to 5 locations "pre-stored" on the caster item to teleport
|
||
too.
|
||
|
||
Areas can also be named maybe? Maybe that is how to get a false destination...
|
||
|
||
Seen once can be included as, perhaps, using On Enter events...
|
||
|
||
God, this might turn out to be complicated! Very much so!
|
||
//:://////////////////////////////////////////////
|
||
//:: Created By: Jasperre
|
||
//::////////////////////////////////////////////*/
|
||
|
||
#include "PHS_INC_SPELLS"
|
||
|
||
// After the people to teleport have been got (and stored in PHS_TELEPORT_ARRAY)
|
||
// then the familiarity is put in, and it will roll to see what result is put
|
||
// out (and doing damage, as it will loop on a mishap).
|
||
int GetRandomResult(int nFamiliarity, object oCaster);
|
||
|
||
void main()
|
||
{
|
||
// Spell hook check.
|
||
if(!PHS_SpellHookCheck(PHS_SPELL_TELEPORT)) return;
|
||
|
||
// Delcare Major Variables
|
||
object oCaster = OBJECT_SELF;
|
||
location lSelf = GetLocation(OBJECT_SELF);
|
||
int nCasterLevel = PHS_GetCasterLevel();
|
||
int nSpellID = GetSpellId();
|
||
// Get the spell target location
|
||
location lTarget = GetLocalLocation(OBJECT_SELF, "TELEPORT_STORED_LOCATION");
|
||
|
||
// Define location and effect to use.
|
||
effect eGo = EffectVisualEffect(VFX_FNF_TELEPORT_IN);
|
||
effect eAppear = EffectVisualEffect(VFX_FNF_TELEPORT_OUT);
|
||
|
||
// Can we teleport there?
|
||
if(!PHS_CannotTeleport(oCaster, lTarget)) return;
|
||
|
||
// Fire cast spell at event for the specified target
|
||
PHS_SignalSpellCastAt(oCaster, PHS_SPELL_TELEPORT, FALSE);
|
||
|
||
// Apply AOE go visual
|
||
PHS_ApplyLocationVFX(lSelf, eGo);
|
||
|
||
// Move the caster to that location
|
||
ClearAllActions();
|
||
DelayCommand(0.1, ActionJumpToLocation(lTarget));
|
||
DelayCommand(0.2, PHS_ApplyLocationVFX(lTarget, eAppear));
|
||
}
|