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

