Bisher verwendete Typen: Fuer alle Typen ist der Default 0, sofern nichts anderes angegeben ist. mixed kaempfen_verboten Wird von /i/living/hands benutzt, um festzustellen, ob in diesem Raum gekaempft werden darf. Dies gilt sowohl fuer Spieler als auch fuer Monster Wenn 1 returned wird, wird die Standardmeldung ausgegeben, bei allem anderen, wird dieses ausgegeben. int sperrgebiet Sollte 1 sein, wenn der Raum nicht von allen Spielern erreichbar ist. mixed stehlen_verboten Wird vom Diebesgilden-Rucksack benutzt, um das stehlen in diesen Raeumen zu verbieten. mixed graben_verboten Wird von /obj/schaufel verwendet, um zu entscheiden, ob hier eine Truhe vergraben werden darf. Bei Angabe eines Strings wird dieser ausgegeben, sonst die Standardmeldung. int kein_totengraeber Verhindert, dass ein Totengraeber kommt und die Leiche wegschleppt. int schiff_erlaubt Diese drei Typen werden von let_not_in() in /i/room int s-bahn_erlaubt verwendet um zu entscheiden, ob ein Fahrzeug der int ballon_erlaubt jeweiligen Art in diesen Raum herein darf. int nocleanup Dies verhindert, dass der Raum automatisch gecleaned wird, wenn er lange Zeit nicht betreten wurde mixed repraesentant Gegenstand, welcher diesen Raum logisch enthaelt. (Beispiel: Bootsraum -> Boot) Kann Objekt oder V-Item sein. object umgebung Raum, welcher diesen Raum logisch enthaelt. Wenn repraesentant ein Objekt ist, dann ist diese Angabe freiwillig. mixed kompass Kann ein String sein, der ausgegeben wird wenn jemand in diesem Raum einen Kompass benutzt. Kommen in den Strings %g oder %sm vor, so werden diese durch Grad bzw. Seemeilen des Raumes ersetzt. In dem String koennen Pseudoclosures verwendet werden. Bsp: "Die Nadel von $deinem('kompass) pendelt sich " "ganz langsam bei %g Grad ein." int kompass_defekt Liefert ein Raum darauf 1 zurueck, so dreht sich die Nadel eines Kompasses wie verrueckt und erlaubt keine Positionsbestimmung. string hafen Wird von den Kapitaenen der Schiffe benutzt, um festzustellen in welchem Hafen sie sich befinden int kunstlicht Liefert ein Raum darauf 1 zurueck, so wird kein Tageslicht angezeigt oder gesetzt, d.h. man kann das Licht selbst setzen. int change_daylight Wenn man in einem Raum kunstlicht gesetzt hat, kann man durch setzen von change_daylight trotzdem Dunkelheit und Helligkeit erzeugen lassen, es wird aber nicht der Sonnenstand in der Langbeschreibung ausgegeben. int x_koordinate Damit kann man Nicht-Map-Raeumen ein Koordinaten- int y_koordinate Paar der Map zuordnen. /i/compass_logic benutzt diese Koordinaten zur Standortbestimmung. Sind keine Koordinaten gesetzt, so sucht die Kompass-Logik auf dem Pfad des Raumes nach Dateien namens KOORDINATEN. Wird eine solche Datei gefunden werden die dort eingetragenen Koordinaten verwendet. (Nach anlegen einer solchen Datei ist ein zern /apps/koordinaten notwendig) Wird auch keine solche Datei gefunden, so benutzt die Kompass-Logik die Mittelpunkts-Koordinaten der Domain, in der der Raum liegt, was bei grossen Domains unter Umstaenden zu unerwuenschten Kompass-Missweisungen fuehren kann. (Beispiel: /d/Kokosinsel/Knossos/Hafen/hafen1.c) int temperatur Wird in /i/player/player verwendet. Liefert die Raum-Temperatur in Grad Celsius zurueck. Default ist 20 Grad. Mit sinkender Raum-Temperatur steigt der Nahrungs-Verbrauch, mit wachsender Temperatur der Wasser-Verbrauch der Spieler, es sei denn, sie benutzen angepasste Kleidung. float wasserverbrauch Wird in /i/player/player verwendet. Liefert den Faktor des Wasser-Verbrauchs der Spieler zurueck. 1.0 heisst also normaler Verbrauch, 2.0 doppelter Verbrauch usw. Werte kleiner gleich 0.0 werden als 1.0 interpretiert. Dieser Wert ist zB fuer unwegsames Gelaende gedacht... float nahrungsverbrauch Verhaelt sich wie wasserverbrauch. int kein_verbrauch Wird von /i/player/player verwendet. Liefert ein Raum hierauf 1 zurueck, so werden den Spielern in diesem Raum keine Wasser- oder Nahrungspunkte abgezogen. Dies ist fuer den Bereich der Universitaet gedacht. mixed startraum String "/pfad/zum/raum" oder object_name(ob): Login in diesem Raum. Der Raum wird ggf. geladen. Pfade muessen absolut sein. String "notouch#/pfad/zum/raum": Wie oben, Login aber nur, wenn Raum gerade geladen ist. Objekt Login nur, wenn das Objekt noch existiert. Login nicht, wenn Objekt zerstoert oder erneuert wurde. Array Man kann mehrere Startraeume angeben. Das Array wird der Reihe nach durchprobiert. Bei "notouch" oder Objekt-Raum ist es sinnvoll, mindestens einen festen Startraum als Alternative anzugeben, ansonsten ist die Chance hoch, dass der Spieler im Domainstartraum endet. Bei Raeumen mit Repraesentant/Umgebung (z.B. Schiffe) werden die Startraeume der Umgebung hinzuaddiert. Existiert der Innenraum (das Schiff) beim Login nicht mehr, landet man so in der Umgebung bzw. in der von der Umgebung gesetzten Startraum. int kein_startraum Setzt ein Raum diesen Typ auf 1, dann landet der Spieler nach einem 'ende' befehl beim naechsten Einloggen, dort wo er mit ende stadt gelandet waere. Weiterhin verhindert der Raumtyp, dass sich Spieler in diesem Raum einloggen. string kirche Der Raum, in welchem man wieder aufersteht, falls man in diesem Raum stirbt. int|string teleport_rein_verboten int|string teleport_raus_verboten int|string versand_rein_verboten int|string versand_raus_verboten Wenn gesetzt, sind entsprechende Teleports verboten. Alle Tools und Zaubersprueche zum Teleportieren muessen diese Typen beachten. Zur genaueren Verwendung siehe /doc/richtlinien/teleport. int|string keine_magie Setzt ein Raum diesen Typ auf einen Wert ungleich null, dann darf in diesem Raum keine Magie, insbesondere Gildenmagie mehr funktionieren. Ist der Wert ein String, so erklaert er fuer den Spieler warum hier keine Magie funktioniert. Ein numerischer Wert zeigt lediglich an, DASS Magie hier verboten ist. (Die Gilde muss also eine Defaultmeldung ausgeben.) ALLE GILDENTOOLS MUESSEN SICH DARAN HALTEN! Bsp: 1 oder "Alle magische Kraft wird vom schwarzen Loch " "in der Mitte des Raumes aufgesaugt." int|string kein_handwerk Funktioniert wie der Raumtyp "keine_magie", nur gilt er fuer alle nicht magischen Fertigkeiten einer Gilde. ALLE GILDENFAEHIGKEITEN muessen durch eine dieser beiden Typen "ausgeschaltet" werden koennen!!! (NUR Kommunikationsfaehigkeiten koennen ausgenommen werden.) Die letzen beiden Typen sollten nur in Raeumen verwendet werden, bei denen dies auch fuer den Spieler "verstaendlich" ist. Sprich es muss eine spielerverstaendliche Ursache fuer den Magie/Handwerksmangel da sein! int tempel Ist ein Raum mit dem Type tempel versehen, dann kann man sich dort als Engel heilen. int arena Ist in einem Raum der Raumtyp arena gesetzt, so koennen sich hier Spieler angreifen, ohne dass es eine Meldung auf dem Ueberfallkanal gibt. int ruhe Damit kann man einen Raum in eine Art "Ruheraum" verwandeln. Die Kurier - Meldungen erreichen dann den Spieler nicht. Beispiel: Eimer in Tadmorer Post, Ohnmacht eines Spielers, der Sarg in der Vamp - Gilde, ... Nach dem Verlassen des Raumes kann dem Spieler mit spieler->flush_puffer() der Pufferinhalt explizit angezeigt werden, wenn man das nicht macht, wird der beim naechsten Event eh automatisch angezeigt. int raumhoehe Die maximale Koerpergroesse, mit welcher man den Raum betreten kann. int landschaft Beschreibt die Landschaft des Raumes. Diese Landschaft ergibt sich durch eine Ver-Oder-ung der in landschaft.h definierten Konstanten. Zunaechst ein paar Beispiele: #include add_type (LANDSCHAFT, L_WASSER | L_STEG); fuer den Tadmorer Hafen. add_type (LANDSCHAFT, L_WASSER | L_FLIESSEND) fuer einen Fluss. add_type (LANDSCHAFT, L_DRINNEN | L_SIEDLUNG | L_HAUS) fuer ein Haus in einer Siedlung. L_DRINNEN Drinnen bedeutet halt "drinnen", also zum Beispiel Hoehle, Haus, Zelt, Miene, usw. L_WASSER Wasser, das ist alles, was nass ist, vom Rinnsal bis zum Tuempel, See, Strom, Ozean. L_FLIESSEND Fluesse, Baeche im Gegensatz zu Seen, Pfuetzen L_FLACH flacher Bach, flacher See oder Meeresufer L_UNTERWASSER Unterwasserstadt, in einem Brunnen unter der Brunnenoberflaeche L_STEG Bruecken (zwischen Kreta und Ephesos), Steg am Hafen oder aehnliches L_STRAND Begegnungsstaette zwischen Wasser und Boden L_WIESE Gras, Blumen, vereinzelte Bueche oder Baeume L_WALD Viele Baeume L_WUESTE wuest, oed und heiss. L_STEPPE spaerlich bewachsene Landschaft L_BERG Berg, Huegel L_SUMPF Morastige Gegend, die viele kleine und grosse Wasserflaechen hat, die teilweise freiliegen. Oft treten Sumpfgase und aehnliches auf, was den Pflanzenbewuchs schmaelert. L_MOOR Ein Moor ist eine mehr oder weniger trockene Landschaft, die keine oder sehr wenige Wasserflaechen beinhaltet. Ein Moor ist meist mit winzigen Huegeln durchzogen und matschig. Vereinzelt ist es von 1 - 2 Meter hohen Huegeln durchzogen, auf dennen Linden oder aehnliche kleine Baeume wachsen. Farne, Gras und Schilf sind nicht selten anzutreffen. Alles in allem ist ein Moor eine Gegend, in der man sich entspannen kann, wobei ein Sumpf etwas ist, wo man sich gruselt, wo die Stimmung gedrueckt ist, Finsternis und Duesterkeit herrschen vor. L_EIS Eis- Schnee - Landschaft, Arktis. L_DSCHUNGEL Viele verschiedene Pflanzen, viele verschiedene Tiere, in der Regel heiss, feucht, unwegsam. L_WEG Pfad, Weg, Strasse, egal, ob kuenstlich angelegt oder natuerlich (Trampelpfad, Felsenpfad) L_SIEDLUNG Haeuser, die zusammenstehen, Dorf, Stadt. L_HAUS Behausung, unnatuerlich, Haus, Zelt, Gebaeude. Fast immer duerfte L_HAUS mit L_DRINNEN verknuepft sein. L_KANALISATION Kanalisation halt; auch hier duerfte fast immer L_DRINNEN dabei sein. L_SIEDLUNG nicht. L_LUFT Flug-, Fall-, Schwebe-, Wolkenraeume und so, wo man keinen festen Boden unter den Fuessen hat. Ausserdem gibt's in /i/tools/room_types.c noch Funktionen die schwierige Kombinationen von Raumtypen testen: query_innenraum( raum) query_im_wasser( raum) string landeplatz Ein Engel kann in einem Raum nicht landen, wenn - der Raum "teleport_rein_verboten" ist, - let_not_in dies verbietet - ein Waechter (per add_guard hinzugefuegt) dies verbietet - der Raum nicht im Freien ist, es sei denn, der Raum hat den Typ "fliegen_erlaubt". Ein Raum kann aber fuer Engel ein alternatives Landeziel angeben, falls ein Engel da nicht landen kann. Das geht ganz einfach mit add_type ("landeplatz","dateiname"); Der Dateiname kann dabei sowohl absolut sein, beispielsweise bei Franz: add_type ("landeplatz", "/d/Vaniorh/uluji/market_place"); Er kann aber auch relativ sein, wie beispielsweise bei Connor, der sich in /d/Vaniorh/uluji/ausr befindet, dort ist ein Verweis auf /d/Vaniorh/uluji/harbour_street4, der dazu gehoerige add_type sieht so aus: add_type ("landeplatz","harbour_street4"); int fliegen_erlaubt Ein Engel darf in einen Raum, der nicht im Freien liegt, normalerweise weder starten noch landen. Ist jedoch dieser Raumtyp gesetzt, so darf er dies. Beispiel hierfuer waere eine Scheune mit grossem Scheunentor oder ein Tempel. Schliesst man das Scheunentor, so sollte ein add_type("fliegen_erlaubt",0) nicht vergessen werden! In der Regel wird man die beidenfolgenden Raumtypen in so einem Fall ebenfalls einsetzen. string flugstart_meldung Die Meldung, die ein Engel bekommen soll, wenn er losfliegt. Beispiel: Zum Starten trittst Du aus dem Schatten der Baeume hervor. string lande_meldung Die Meldung, die ein Engel bei der Landung bekommen soll, Beispiel: bei der Landung auf dem Eis rutscht Du ganz schoen durch die Gegend und fliegst beinahe auf die Nase. (Arktis) string* fluchtausgaenge Eine Liste von Ausgaengen, die zur Flucht benutzt werden sollen. (Dieser Typ hat Vorrang vor der Abfrage der Raumausgaenge bei der Flucht.)