Einfache Räume
![]()
// Ein einfacher Raum mit einer ebenso einfachen Aktion // ---------------------------------------------------- // 05.06.2007 Sunrise@Wunderland inherit "std/room"; // Standard-Raum erben #include <properties.h> // wichtige Properties holen #include <defines.h> // praktische Makros holen, z.B. PL fuer this_player() // das spart uns spaeter Schreibarbeit void create() { // Der Standard-Raum braucht auch sein create() // NIEMALS VERGESSEN! ::create(); // Der Raum ist draussen: SetProp(P_INDOORS, 0); // Der Raum ist tagsueber hell, nachts benoetigt man eine Lichtquelle SetProp(P_LIGHT, 1); // die Kurzbeschreibung des Raumes SetProp(P_INT_SHORT, "Auf einer Wiese"); // die Langbeschreibung des Raumes, die man auch via "schau" sieht SetProp(P_INT_LONG, "Eine huebsche bunte Wiese. Die Blumen wiegen " "sich im lauen Sommerwind und die Voegel zwitschern. Ein Sonnenstrahl " "kitzelt Dich an der Nase und laedt Dich zum Traeumen ein."); // ein paar Details AddDetail(({"boden", "gras"}), // Einen Boden sollte es immer geben "Dichtes gruenes Gras waechst hier und dazwischen lauter bunte " "Sommerblumen."); AddDetail(({"sonnenstrahl"}), "Er kitzelt Deine Nase."); AddDetail(({"nase"}), "Hatschi!"); // und weitere Details nach dem gleichen Schema // wir wollen traeumen // Der erste Teil des Kommandos ist quasi das Eingabe-Muster, das // der Spieler erfuellen muss. In diesem Fall kann er entweder // 'traeum' oder 'traeume' angeben. Das | steht fuer 'oder'. // Danach steht die Funktion, die aufgerufen werden soll. Diese // steht dann ausserhalb des 'create()' AddCmd("traeum|traeume", "traeum_funktion"); } // Kommandos, die ueber AddCmd eingebaut werden, erfordern immer eine // Funktion vom Typ int. int traeum_funktion() { // jetzt geben wir einen Text an den Spieler aus // da es ein langer Text ist, lassen wir ihn mit break_string // umbrechen write(break_string( "Du schliesst die Augen und legst Dich ins weiche Gras zurueck. " "Der laue Sommerwind streift ueber Dein Haar und die Hitze flimmert " "rotbunt vor Deinen geschlossenen Augen. Nach einer Weile stehst " "Du wieder auf, bereit zu neuen Abenteuern.")); // und jetzt einen Text an die Umstehenden // PL ist die Abkuerzung fuer this_player(). Das ist in <defines.h> // definiert. this_player() ist das Objekt des agierenden Spielers // name() gibt uns den Namen dessen an // say() hat den Aufbau: say(text, an_wen_soll_der_text_nicht_gehen); say(break_string( PL->name(WER, NAME_DEF|NAME_CAP)+" legt sich ins weiche Gras und " "ruht sich etwas aus."), PL); // jetzt sind wir fertig, die Funktion wird mit return 1; // abgeschlossen } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Raum5 | |
|
| |