Türbeispielraum B
![]()
// Holger@Wunderland 7/99 // inherit "std/room"; #include <properties.h> #include <doors.h> #pragma strict_types void create() { ::create(); SetProp(P_INDOORS, 0); SetProp(P_LIGHT, 2); SetProp(P_INT_SHORT, "Im Tuertestraum B"); SetProp(P_INT_LONG, "Du stehst hier im Tuertestraum B\n" " +---+ +---+ Das Testgebiet erstreckt sich ueber 4 Raeume. In jedem\n" " | a +--+ B | Raum sind andere Tueren mit anderen Verhaltensweisen.\n" " +-+-+ +-+-+ In diesem Raum (draussen) fuehrt eine Holztuer zurueck in\n" " | | Raum A. Sie schliesst sich bei jedem Reset und benoetigt\n" " +-+-+ +-+-+ keinen Schluessel. Nach Sueden fuehrt ein Gartentor in\n" " | d +--+ c | Raum B. Es benoetigt keinen Schluessel und oeffnet sich\n" " +---+ +---+ in jedem Reset automatisch (durch den Wind).\n"); AddDetail(({"boden"}), "Ein gruener Grasboden."); AddDetail("decke", "Sowas kannst Du hier nicht finden."); AddDetail("waende", "Du stehst im Freien. Im Westen fuehrt eine Holztuer. " "zurueck in den Raum A. Im Sueden fuehrt ein Gartentor in Raum B. Es " "benoetigt keinen Schluessel und oeffnet sich in jedem Reset " "automatisch (durch den Wind)."); ///////////////////////////////////////////////////////////////////////// // Zuerst eine Tuer zurueck in Raum A. Die Tuer wird automatisch mit der // Tuer in Raum A 'verbunden'. Oeffnet/Schliesst man diese hier, passiert // das gleiche in Raum A. Zusaetzlich setzen wir hier die Exit-Meldungen. AddDoor("westen", // Tuer nach Westen "/doc/beispiele/doors/raum_a", 0, // Wie gehabt (siehe Raum A) DF_AUTO_CLOSE, // Schliesst im Reset 0, // Properties aendern wir spaeter "in Testraum A", // Die Exit-Richtung ({"Du gehst zurueck in Raum A."}) ); // Die Exit-Messages (man AddExit) // Jetzt machen wir noch ne Holztuer draus. (wie bei einem Object) // "@@" wird durch den Zustand der Tuer ersetzt in P_LONG und P_NAME_ADJ SetDoorProp("westen", P_NAME, "Holztuer"); SetDoorProp("westen", P_NAME_ADJ, "einfach"); SetDoorProp("westen", P_DESCR, "zu Raum A"); SetDoorProp("westen", P_LONG, "Eine einfache Holztuer ohne " "Schnickschnack. Momentan ist sie @@."); SetDoorProp("westen", P_GENDER, FEMALE); SetDoorProp("westen", P_IDS, ({"tuer","holztuer"})); ///////////////////////////////////////////////////////////////////////// // Jetzt das Gartentor nach Sueden. Es ist AUTO_OPEN und wir setzen eigne // Messages beim Oeffnen und Schliessen. Diesmal setzen wir alles gleich // mit AddDoor() (damits schoen unuebersichtlich wird *eg*) AddDoor( "sueden", // nach Sueden "/doc/beispiele/doors/raum_c", // DS_OPEN, // Es steht offen DF_AUTO_OPEN, // Es oeffnet sich bei jedem Reset ([ P_NAME : "Gartentor", // Wir setzen alle Properties P_NAME_ADJ : "knarrend", P_DESCR : "nach Sueden", P_LONG : "Eine @@es Gartentor welches in Testraum C fuehrt.", P_GENDER : NEUTER, P_ARTICLE : ART_AUTO, P_IDS : ({"tor","gartentor"})]), "nach Sueden", ({"Du schlenderst durch das Gartentor", "&Name schlendert nach Sueden.", "Durch das Gartentor kommt &name auf Dich zugeschlendert."})); // Jetzt setzen wir noch eigne Event-Messages fuer das Tor // Die Messages sind in einem 3-elementigen Array. // 0. Element: Meldung an den Spieler (0 oder string) // 1. Element: Meldung an den Raum hier (0, string oder Array) // 2. Element: Meldung an den Zielraum der Tuer (0, string oder Array) // Ist ein Element 0 wird eine Default-Meldung erzeugt // Ist das Element ein String so wird immer dieser ausgegeben. // Ist das Element ein Array wird das 0. Element davon ausgegeben, // wenn jemand das Tor oeffnet. Das 1. Element wird ausgegeben, wenn // das Tor automatisch geoffnet wird (z.B. im Reset). Ist eines der // beiden Sub-Elemente 0 wird eine Default-Meldung erzeugt. // Bei der Meldung an den Spieler ist ein Array natuerlich sinnfrei, // da bei der Automatik keine Meldung an einen Spieler ausgegeben werden // kann SetDoorEventMsgs("sueden", ET_DOOR_OPEN, ({"Du oeffnest das Gartentor. Es quietscht und knarrt.", ({"Das Gartentor quietscht, als &name es oeffnet.", "Ein Windstoss erfasst das Gartentor. Quietschend oeffnet es sich."}), ({"Das Gartentor wird von der anderen Seite geoeffnet.", "Quietschend oeffnet sich das Gartentor."})})); // Das gleiche noch fuer den Schliess-Event SetDoorEventMsgs("sueden", ET_DOOR_CLOSE, ({"Du schliesst das Gartentor. Es quietscht und knarrt.", ({"Das Gartentor quietscht, als &name es schliesst.",0}), ({"Das Gartentor wird von der anderen Seite geschlossen.",0})})); } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Türbeispielraum B | |
|
| |