QueryDoorKey()
==============

FUNKTION
--------
::

     mixed QueryDoorKey();

DEFINIERT IN
------------
::

     versch. Schluesseln

ARGUMENTE
---------
::

     keine

BESCHREIBUNG
------------
::

     Diese Funktion wird in einem Schluessel aufgerufen, wenn man mit diesem
     eine Tuer auf- oder abschliessen will. Anhand des Rueckgabewertes wird
     entschieden, ob der Schluessel passt oder nicht.

RUECKGABEWERT
-------------
::

     String oder Array von Strings der Raumpfade, deren gemeinsame Tueren
     sich mit diesem Schluessel auf- bzw. abschliessen lassen. Die Keys sind
     dabei die Raumpfade, getrennt durch ein ":". Dabei muessen die Pfade
     in lexikographischer (alphabetischer) Reihenfolge sortiert sein:

     "<name_raum_1>:<name_raum_2>"

BEISPIELE
---------
::

     Ein Schluessel, mit dem sich eine einzige Tuer oeffnen laesst (falls es
     jemals eine Tuer zwischen Karate- und Abenteurergilde geben sollte...):

     string QueryDoorKey()
     {
       return "/gilden/abenteurer:/gilden/karate";
     }

     Ein Schluessel, der in mehreren Tueren passt:

     string* QueryDoorKey()
     {
       return ({ "/gilden/abenteurer:/players/wargon/workroom",
                 "/gilden/abenteurer:/gilden/karate",
                 "/players/jof/workroom:/players/wargon/workroom"
              });
     }

SIEHE AUCH
----------
::

    NewDoor(), QueryDoorStatus(), SetDoorStatus(), P_DOOR_INFOS,
    /std/room/doors.c, /obj/doormaster.c, GetPhiolenInfos(), QueryAllDoors()


Letzte Aenderung: Don, 08.05.2014, Gabylon

