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.
70 lines
2.5 KiB
Plaintext
70 lines
2.5 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Phase Door: Let us see them
|
|
//:: Spell FileName PHS_S_PhaseDoorD
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
Uses a creature who invisiblieses themselves.
|
|
|
|
Each creature (an entrance, point 1, and an exit, point 2) will be created.
|
|
|
|
A power will remove the invisibility off it. They should have a visual
|
|
from the spell. The invisiblity will be applied as thier own (undispellable)
|
|
effect.
|
|
|
|
Click on one for conversation, it takes you to the other.
|
|
|
|
One of the creatures is the "master" of the two, and is set to the caster.
|
|
Thats all, else, if one exsists and one doesn't, they both go.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
// This is the "power" which will remove the invisibility off the doors.
|
|
|
|
#include "PHS_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Loop all doors in the area
|
|
object oPerson = OBJECT_SELF;
|
|
object oMaster, oOther;
|
|
|
|
// Loop doors
|
|
int nCnt = 1;
|
|
object oDoor = GetNearestObjectByTag("PHS_PHASEDOOR", oPerson, nCnt);
|
|
while(GetIsObjectValid(oDoor))
|
|
{
|
|
// Find the closest who's master is a member of our party
|
|
oMaster = GetMaster(oDoor);
|
|
if(GetFactionEqual(oMaster, oPerson))
|
|
{
|
|
// First, get the other door
|
|
oOther = GetLocalObject(oDoor, "PHS_PHASE_DOOR_TARGET");
|
|
|
|
// If both do not have the invisbility, will not work
|
|
if(!PHS_GetHasEffect(EFFECT_TYPE_INVISIBILITY, oDoor) &&
|
|
!PHS_GetHasEffect(EFFECT_TYPE_INVISIBILITY, oDoor))
|
|
{
|
|
// Message "failure"
|
|
FloatingTextStringOnCreature("*Nearest Phase Door is already visible*", oDoor, FALSE);
|
|
}
|
|
else
|
|
{
|
|
// Remove the invisiblity off them
|
|
PHS_RemoveSpecificEffect(EFFECT_TYPE_INVISIBILITY, oDoor, SUBTYPE_SUPERNATURAL);
|
|
PHS_RemoveSpecificEffect(EFFECT_TYPE_INVISIBILITY, oOther, SUBTYPE_SUPERNATURAL);
|
|
|
|
// Set a local for the rounds for invisibility
|
|
SetLocalInt(oDoor, "PHS_SPELL_PHASE_DOOR_INVIS_ROUNDS", 4);
|
|
SetLocalInt(oOther, "PHS_SPELL_PHASE_DOOR_INVIS_ROUNDS", 4);
|
|
}
|
|
// Stop
|
|
return;
|
|
}
|
|
// Loop doors
|
|
nCnt++;
|
|
oDoor = GetNearestObjectByTag("PHS_PHASEDOOR", oPerson, nCnt);
|
|
}
|
|
}
|