Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc//std/roomSTANDARDOBJEKT 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