void main() { //This line tells us who used the triggering object object oPC = GetObjectByTag("Anna"); //This line tells us what special effect to play when teleporting the PC //effect eTeleport = EffectVisualEffect(VFX_IMP_BREACH); //This line randomly generates the point the PC will teleport to. int nWaypointNumber = Random(8); //This line delays the appearance of the special effect for 1 second. //DelayCommand(1.0, ApplyEffectToObject( DURATION_TYPE_INSTANT, eTeleport, oPC )); //The teleporting Waypoints. The DelayCommand was used to allow the special effect time to appear and 'fire' off before //transporting the PC. switch (nWaypointNumber) { case 0: DelayCommand(3.0, AssignCommand( oPC, JumpToLocation( GetLocation( GetWaypointByTag( "rnd_waypoint001" ))))); break; case 1: DelayCommand(3.0, AssignCommand( oPC, JumpToLocation( GetLocation( GetWaypointByTag( "rnd_waypoint002" ))))); break; case 2: DelayCommand(3.0, AssignCommand( oPC, JumpToLocation( GetLocation( GetWaypointByTag( "rnd_waypoint003" ))))); break; case 3: DelayCommand(3.0, AssignCommand( oPC, JumpToLocation( GetLocation( GetWaypointByTag( "rnd_waypoint004" ))))); break; case 4: DelayCommand(3.0, AssignCommand( oPC, JumpToLocation( GetLocation( GetWaypointByTag( "rnd_waypoint005" ))))); break; case 5: DelayCommand(3.0, AssignCommand( oPC, JumpToLocation( GetLocation( GetWaypointByTag( "rnd_waypoint006" ))))); break; case 6: DelayCommand(3.0, AssignCommand( oPC, JumpToLocation( GetLocation( GetWaypointByTag( "rnd_waypoint007" ))))); break; case 7: DelayCommand(3.0, AssignCommand( oPC, JumpToLocation( GetLocation( GetWaypointByTag( "rnd_waypoint008" ))))); break; } }