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));
|
|
}
|