Einfache Räume
![]()
// 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); } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Raum1 | |
|
| |