// raum1.c
// Ein Beispielraum, welcher ein paar Möglichkeiten von Räumen
// wiederspiegelt. Dieser Raum ist draußen.
//
// 05.08.99 Holger@Wunderland
//
inherit "std/room"; // Standard-Raum erben
#include <properties.h> // wichtige Properties holen
void create() {
// Der Standard-Raum braucht auch sein create()
// NIEMALS VERGESSEN!
::create();
// eine Kurzbeschreibung des Raumes
SetProp(P_INT_SHORT, "Im ersten Raum des Beispielgebietes");
// eine ausführliche Beschreibung des Raumes (bei 'schau')
SetProp(P_INT_LONG,
"Du stehst hier in im Beispielgebiet. Dieser Raum hier ist eine kleine "
"Wiese unter freiem Himmel. Nachts wird es nicht voellig dunkel und "
"ab und zu hoert man Voegel zwitschern.");
// Da man auch nachts was sieht, noch eine Beschreibung für die Nacht
SetProp(P_INT_LONG_NIGHT,
"Du stehst hier in im Beispielgebiet. Dieser Raum hier ist eine kleine "
"Wiese unter freiem Himmel. Es ist mittlerweile Nacht geworden und Du "
"kannst trotzdem noch etwas sehen.");
// Der Raum ist im Freien. (ist standardmäßig 0 - könnte also
// auch weggelassen werden) Nur für die Vollständigkeit.
SetProp(P_INDOORS, 0);
// Wir setzen das Lichtlevel hier auf 2. Nachts wird es um 1 reduziert,
// Lichtquellen erhoehen es um je 1. Wenn das Level 0 ist, herrscht
// Finsternis. Da wir aber eine Nachtbeschreibung haben wollen -> 2
SetProp(P_LIGHT, 2);
// Nun kommen Sachen, die der Spieler untersuchen kann, dabei sollte man
// nicht zu sparsam mit Details umgehen, da diese das Spielen
// abwechslungsreich machen. Zeilenumbrüche koennen wie bei den meisten
// properties weggelassen werden! (automatisch)
AddDetail(({"beispiele", "beispiel"}),
"Ja genau hier um dich herum sind jede Menge Beispiele.");
AddDetail(({"beispielraum", "raum", "umgebung"}),
"Du stehst in einem Beispielraum. Schau Dir doch mal "__FILE__" an!");
//( __FILE__ gibt hierbei den Pfad dieses Raumes zurück.)
// Jetzt ein Detail mit Tag und Nachtbeschreibung (3. Argument)
AddDetail(({"wiese", "schemen"}),
// tagsüber
"Du stehst hier auf einer Wiese. Die Sonne scheint und die Voegel "
"zwitschern.",
// nachts scheint keine Sonne!
"Du stehst hier auf einer Wiese. Der Mond scheint hell und Du kannst "
"Deine Umgebung schemenhaft wahrnehmen.");
// Details 'Sonne', 'Mond' und 'Sterne' sind in Räumen die draußen sind
// immer schon vorhanden. Sie zeigen Tage oder Nacht an und können auch
// überschrieben werden.
AddDetail("sonne",
"Die Sonne scheint hell und lacht Dich an.", // tagsüber
"Die Sonne hat dem Mond Platz gemacht!"); // nachts
AddDetail(({"mond", "nacht"}),
"Den Mond kannst Du bei Tage nicht sehen.", // tagsüber
"Der Mond erhellt die dunkle Nacht"); // nachts
// Auch wenn es nicht in der Langbeschreibung steht, jeder Raum
// sollte einen Boden haben. Indoors-Räume sollten Wände+Decke haben!
AddDetail("boden",
"Auf dem Boden waechst Gras, wie sich das fuer eine Wiese gehoert!");
AddDetail("gras",
"Das Gras sieht gruen und saftig aus.",
"Im Dunkel der Nacht siehst Du das Gras kaum.");
AddDetail(({"vogel", "voegel"}),
"Die Voegel kann man nicht sehen, nur hoeren!",
"Auch nachts gibt es noch ein paar Voegel hier. Man kann sie aber "
"nur hoeren.");
// eine Beschreibung, die man 'hören' kann
AddSoundDetail(({"voegel","vogel", "gezwitscher","zwitschern"}),
"Die Voegel zwitschern vor sich hin. Klingt schoen!");
// eine unspezifische Geräuschkulisse (bei 'lausche')
SetProp(P_SOUND, "Um Dich herum zwitschern Voegel.");
// Zufällige Raummeldungen alle 30 Sekunden (etwas Leben) ;-)
AddRoomMessage(({
"Ein paar Voegel zwitschern in der Ferne.",
"Hinter Dir kraechzt etwas.",
"Ueber Dir schreit ein Vogel."}), 30);
// drei ganz normale Ausgänge, die Spieler benutzen können
AddExit("westen", "/doc/beispiele/vorwagen");
AddExit("norden", "/doc/beispiele/raum3");
AddExit("sueden", "/doc/beispiele/raum4");
// Ein Ausgang nach unten. Wir setzen eigene Bewegungsmeldungen
AddExit("unten", "/doc/beispiele/raum2", "nach unten", ({
"Du kletterst nach unten.", // Meldung an den Spieler
"&Name klettert nach unten.", // Meldung an den Raum
"&Name kommt herabgestiegen."})); // meldung an den Zielraum
// Wir legen einen Maiskolben hierher. Wenn er weggenommen wird,
// wird er beim Raumreset neu hingelegt (REFRESH_REMOVE)
AddItem("/doc/beispiele/maiskolben", REFRESH_REMOVE );
// Und eine Fackel für den Weg nach unten
AddItem("/obj/fackel", REFRESH_REMOVE);
}
|