33 lines
926 B
Plaintext
33 lines
926 B
Plaintext
|
|
||
|
|
||
|
void fnTeleport(object oDest)
|
||
|
{ // attached teleport for PC
|
||
|
int nN=GetLocalInt(OBJECT_SELF,"nFORMIAN_EXIT");
|
||
|
effect eVFX=EffectVisualEffect(VFX_IMP_GOOD_HELP);
|
||
|
if (nN==1)
|
||
|
{ // has been here before
|
||
|
if(GetArea(oDest)==GetArea(OBJECT_SELF))
|
||
|
{ // have arrived
|
||
|
DeleteLocalInt(OBJECT_SELF,"nFORMIAN_EXIT");
|
||
|
} // have arrived
|
||
|
else
|
||
|
{ // need to move there
|
||
|
AssignCommand(OBJECT_SELF,JumpToObject(oDest));
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT,eVFX,OBJECT_SELF,1.0);
|
||
|
DelayCommand(1.0,fnTeleport(oDest));
|
||
|
} // need to move there
|
||
|
} // has been here before
|
||
|
else
|
||
|
{ //
|
||
|
SetLocalInt(OBJECT_SELF,"nFORMIAN_EXIT",1);
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT,eVFX,OBJECT_SELF,1.0);
|
||
|
DelayCommand(3.0,fnTeleport(oDest));
|
||
|
} //
|
||
|
} // fnTeleport()
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oDest=GetWaypointByTag("FORMIAN_EXIT");
|
||
|
AssignCommand(GetPCSpeaker(),fnTeleport(oDest));
|
||
|
}
|