Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//std/room

STANDARDOBJEKT FUER RAEUME:

BENUTZUNG:
      inherit "/std/room";
      
      #include 
      #include             // Fuer AddItem() und NewDoor()

BESCHREIBUNG:
      Ein Raum ist ein Objekt, das von Spielern oder anderen Lebewesen
      betreten werden kann. Er hat Lang- und Kurzbeschreibungen von
      innen und aussen (zum Beispiel Schiffe oder aehnliche Raeume in
      Raeumen), die sich der Spieler je nach seinen Beduerfnissen
      anzeigen lassen kann (kurz/lang-Modus).

   Properties:

      P_INT_SHORT
            Kurzbeschreibung innerhalb des Raumes
      P_INT_LONG
            Langbeschreibung innerhalb des Raumes
      P_SHORT
            Kurzbeschreibung von aussen (nur noetig, wenn man den Raum
            auch wirklich von aussen sehen kann)
      P_LONG
            Langbeschreibung von aussen (siehe P_SHORT)
      Um Situationsbezogene Beschreibungen zu bekommen, kann man 
      Querymethoden auf die jeweiligen Properties setzen, siehe Dokumentation
      zu Set().

      P_LIGHT
            Lichtlevel des Raums (0 dunkel, 1 hell)
      P_LIGHT_TYPE
            Lichtart, mit der der Raum beleuchtet ist, zB LT_SUNLIGHT
      P_INDOORS
            Wenn es sich um einen Aussenraum handelt, 0. 1 fuer Innenraeume.
      P_TRANSPARENT
            Ist ungleich 0, wenn man in den Raum von aussen reinschauen
            kann, oder von innen nach aussen
      P_NO_TPORT
            Zum verhindern von Teleportversuchen in oder aus dem Raum
      P_NOMAGIC
            Im Raum kann nicht gezaubert werden.
  P_WATER
    Im Raum kann geangelt werden, und man kann ggf. sogar Fische fangen.

   Funktionen:

  AddExit(string|string* kmnd, string zielraum)
             kann ein String sein oder eine Liste von Strings
            mit den Kommandos mit denen der Spieler in 
            landen soll.
      RemoveExit(string|string* kmnd)
             ist ein String oder eine Liste von Strings, deren
            Ausgaenge entfernt werden sollen. Dabei muss man etwas vor-
            sichtig sein, da ein Spieler, der zum Zeitpunkt des Aufrufs
            im Raum ist, die Aktion fuer sich noch definiert hat.
            Also: Nur benutzen, wenn man weiss, was man tut!
      AddSpecialExit(string|string* kmnd, string funktion)
             wird aufgerufen, wenn der Spieler das Kommando
             tippt (oder eins der Kommandos, wenn  eine
            Liste ist). Nuetzlich zum Beispiel um einen Spieler nur
            durchzulassen, wenn ein Waechter nicht da ist.
            P_AERIAL_HELPERS/P_AQUATIC_HELPERS
              Sollte es gewuenscht sein, dass bestimmte Raeume z.B. nur 
              fliegend erreicht werden koennen, oder dass man fuer einen 
              bestimmten Ausgang tauchen koennen muss, sind diese 
              Properties hilfreich, die im Spielerobjekt definiert sind 
              und die dort aktuell registrierten Hilfsobjekte fuers 
              Fliegen/Segeln und Tauchen enthalten.
      RemoveSpecialExit(string|string* kmnd)
            siehe RemoveExit()
      NewDoor()
            Fuegt dem Raum eine Tuer hinzu, die in einen zweiten Raum fuehrt,
            und die der Spieler (ggf. mit einem Schluessel) oeffnen und 
            schliessen kann.
      
      Um Raeume interessanter zu machen, kann man ihnen Details, die 
      vom Spieler angeschaut werden koennen, einbauen:

      AddDetail(string|string* keys, string descr)
            Eine Beschreibung von Details, die vom Spieler angeschaut
            werden koennen wird dem Raum gegeben.  kann ein
            String sein oder eine Liste von Strings.  ist
            die Beschreibung, die der Spieler erhaelt.
      RemoveDetail(string|string* keys)
            Entfernt ein Detail aus einem Raum.  kann ein String
            sein oder eine Liste von Strings.
      AddSpecialDetail(string|string* keys, string function)
            Im Prinzip wie AddDetail(), nur wird als zweites Argument
            kein fester String angegeben, sondern eine Funktion, die
            einen String zurueckgeben muss. Damit kann man variable
            Details programmieren.
      RemoveSpecialDetail(string|string* keys)
            siehe RemoveDetail()
      AddReadDetail(string|string* keys, string desc)
             wird ausgegeben, wenn ein Spieler den  liest.
             kann wieder ein String oder eine Liste von Strings
            sein.
      RemoveReadDetail(string|string* keys)
            siehe RemoveDetail()
      AddRoomMessage(string* msg, int prob, string|mixed *func)
            Alle  Sekunden wird aus einer Liste von Meldungen
            () zufaellig eine ausgesucht, die dann im Raum er-
            scheint. Wenn das Argument  angegeben ist, wird
            eine Funktion diesen Namens aufgerufen, der der Index
            der ausgegebenen Meldung als Argument uebergeben wird.
            Func darf auch einen Array von Funktionen enthalten.

      AddCmd(string|string* cmd, string func, int flag)
            Im Raum wird beim Kommando  (oder einem der Kommandos)
            die Funktion  aufgerufen.  muss 1 zurueck-
            geben, wenn die Funktion die Kombination aus Kommando
            und Argumenten akzeptiert, ansonsten 0. Alles was ein
            Spieler hinter  noch angibt, wird der Funktion als
            Argument uebergeben. Wenn  gesetzt ist, wird jedes
            Kommando, das mit  beginnt akzeptiert.
      RemoveCmd(string|string* cmd)
            Entfernt ein Kommando aus dem Raum.
            ACHTUNG: Bei Spielern, die zum Zeitpunkt des Funktions-
            aufrufs noch im Raum sind, ist das Kommando noch definiert.
            Also: Nur benutzen, wenn man genau weiss, was man tut.

      AddItem(string filename, int refresh)
            Ein Objekt mit Pfad  wird erzeugt und in den
            Raum bewegt, dabei gibt es vier verschiedene Modi, die
            ueber das Argument  angegeben werden:
            REFRESH_NONE: Das Objekt wird nur beim allerersten mal
                  erzeugt, und dann nie wieder (erst beim reboot)
            REFRESH_DESTRUCT: Ein neues Objekt wird erst erzeugt, 
                  wenn das alte zerstoert ist. So kann man sicher
                  gehen, dass nur ein Exemplar im Spiel ist.
            REFRESH_REMOVE: Beim reset wird ein neues Objekt erzeugt,
                  wenn sich das alte nicht mehr im Raum befindet.
            REFRESH_ALWAYS: Bei jedem reset wird ein neues Objekt 
                  erzeugt. VORSICHT: Kann zu riesigen Mengen von
                  Objekten fuehren, wenn ein Raum lange nicht be-
                  sucht wird.
            Die Konstanten REFRESH_* sind in  definiert.

      Auf die Properties P_EXITS, P_SPECIAL_EXITS, P_DETAILS, 
      P_SPECIAL_DETAILS, P_READ_DETAILS, P_COMMANDS und P_ITEMS
      sollte NICHT direkt zugegriffen werden.


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.