Teleport()
**********


FUNKTION
========

   int Teleport(string ziel)


ARGUMENTE
=========

   ziel: Nummer des Sehertors, zu dem teleportiert werden soll.


BESCHREIBUNG
============

   Teleportiert den Seher (this_player()) zu dem Tor mit der angegebenen
   Nummer. Falls keine Nummer angegeben wird, wird mit ShowDoors() die
   Liste der bekannten Tore angezeigt und auf die Eingabe einer Nummer
   gewartet.


RUECKGABEWERT
=============

   0, falls der Seher nicht neben einem Tor steht, dass er kennt.
   1  sonst.


BEMERKUNGEN
===========

   Der Seher muss in einem Raum stehen, in dem sich ein Sehertor befindet,
   dass er kennt. Der Seher muss auch das angegebene Ziel kennen.
   Diese Funktion wird von /d/seher/portale/sehertormaster definiert.


BEISPIELE
=========

   /d/seher/portale/sehertormaster->Teleport(1)


SIEHE AUCH
==========

   DiscoverDoor, DoorIsKnown, ShowDoors, GetDoorsMapping
