forked from Jaysyn/PRC8
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.
45 lines
1.7 KiB
Plaintext
45 lines
1.7 KiB
Plaintext
#include "prc_alterations"
|
|
#include "prc_inc_teleport"
|
|
|
|
void main()
|
|
{
|
|
// Declare major variables
|
|
object oCaster = OBJECT_SELF;
|
|
location lCaster = GetLocation(oCaster);
|
|
|
|
// Check if we're targeting some creature instead of just a spot on the floor
|
|
location lTarget = GetSpellTargetLocation();
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
if(GetIsObjectValid(oTarget))
|
|
lTarget = GetLocation(oTarget);
|
|
|
|
// Check if teleportation is possible
|
|
if(!GetCanTeleport(oCaster, lTarget, TRUE, TRUE))
|
|
{
|
|
IncrementRemainingFeatUses(oCaster, FEAT_FATEFUL_STRIDE);
|
|
return;
|
|
}
|
|
|
|
float fDistance = GetDistanceBetweenLocations(lCaster, lTarget);
|
|
float fMaxDis = FeetToMeters(400 + (GetLevelByClass(CLASS_TYPE_BFZ, oCaster) * 40.0));
|
|
|
|
// If the target is too far, abort
|
|
if(fDistance > fMaxDis)
|
|
{// "Your target is too far!"
|
|
IncrementRemainingFeatUses(oCaster, FEAT_FATEFUL_STRIDE);
|
|
FloatingTextStrRefOnCreature(16825300, oCaster);
|
|
return;
|
|
}
|
|
|
|
effect eVis=EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR);
|
|
vector vOrigin = GetPositionFromLocation(lCaster);
|
|
vector vDest = GetPositionFromLocation(lTarget);
|
|
|
|
// Calculate the locations to apply the VFX at
|
|
vOrigin = Vector(vOrigin.x+2.0, vOrigin.y-0.2, vOrigin.z);
|
|
vDest = Vector(vDest.x+2.0, vDest.y-0.2, vDest.z);
|
|
|
|
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, Location(GetArea(oCaster), vOrigin, 0.0), 0.8);
|
|
DelayCommand(0.1, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, Location(GetArea(oCaster), vDest, 0.0), 0.7));
|
|
DelayCommand(0.8, AssignCommand(oCaster, JumpToLocation(lTarget)));
|
|
} |