MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | /* /doc/beispiele/misc/bspraum1.c von Rumata */ |
| 2 | |
| 3 | // Diese Pragmas sorgen dafuer, dass der Driver darauf achtet, dass bei |
| 4 | // Funktionsargumenten, -Rueckgabewerten und teilweise bei Zuweisung von |
| 5 | // Werten an Variablen der richtige Datentyp verwendet wird (z.b. kein string |
| 6 | // anstelle eines int verwendet wird). Sollte in keinem Objekt fehlen. |
| 7 | #pragma strong_types, save_types, rtt_checks |
| 8 | |
| 9 | inherit "/std/room"; |
| 10 | |
| 11 | #include <properties.h> |
| 12 | #include <language.h> |
| 13 | |
| 14 | protected void create() |
| 15 | { |
| 16 | ::create(); |
| 17 | |
| 18 | SetProp( P_INT_SHORT, "Ein kleines Schreibzimmer" ); |
| 19 | SetProp( P_INT_LONG, |
| 20 | "Du stehst in einem kleinen Schreibzimmer.\n" |
| 21 | "Es gehoerte wohl irgendwann einmal einem Magier, aber nun\n" |
| 22 | "ist dieser Raum verwaist und rottet vor sich hin.\n" |
| 23 | "Ein grosser Schreibtisch in der Mitte des Raumes scheint\n" |
| 24 | "noch einigermassen gut erhalten zu sein. Durch die Tuer\n" |
| 25 | "im Norden faellt etwas Licht hinein.\n" |
| 26 | ); |
| 27 | SetProp( P_LIGHT, 1 ); |
| 28 | SetProp( P_INDOORS, 1 ); |
| 29 | |
| 30 | AddDetail( ({ "schreibtisch", "tisch" }), |
| 31 | "Auf dem Tisch liegt eine dicke Staubschicht.\n" |
| 32 | "Eine Schublade findest Du ebenfalls.\n" |
| 33 | ); |
| 34 | AddDetail( ({ "staub", "staubschicht", "schicht" }), |
| 35 | "Du malst gelangweilt einige Kreise in den Staub.\n" |
| 36 | ); |
| 37 | AddDetail( "schublade", |
| 38 | "So sehr Du Dich anstrengst; Du kannst sie nicht bewegen.\n" |
| 39 | ); |
| 40 | AddDetail( "tuer" , |
| 41 | "Sie steht seit Jahren offen und ist in dieser Lage\n" |
| 42 | "hoffnungslos festgerostet.\n" |
| 43 | ); |
| 44 | |
| 45 | AddCmd( ({ "schliesse", "oeffne", "bewege", "schliess", "beweg" }), |
| 46 | "beweg_etwas" ); |
| 47 | AddExit( "norden", "players/rumata/workroom" ); |
| 48 | } |
| 49 | |
| 50 | public int beweg_etwas( string str ) |
| 51 | { |
| 52 | notify_fail( "Was willst Du denn bewegen ?" ); |
| 53 | if( str == "tuer" ) |
| 54 | { |
| 55 | write( "Die Tuer ist hoffnungslos festgerostet.\n" ); |
| 56 | return 1; |
| 57 | } |
| 58 | if ( str == "lade" || str == "schublade" ) |
| 59 | { |
| 60 | write( "Die Schublade klemmt einfach nur.\n" ); |
| 61 | return 1; |
| 62 | } |
| 63 | if ( query_verb() == "bewege" && |
| 64 | ( str == "tisch" || str == "schreibtisch" ) ) |
| 65 | { |
| 66 | tell_object(this_player(), |
| 67 | "Der Tisch scheint am Boden festgeschraubt zu sein.\n" |
| 68 | ); |
| 69 | tell_room(this_object(), |
| 70 | this_player()->name(WER,2)+" zerrt am Schreibtisch.\n" |
| 71 | ); |
| 72 | return 1; |
| 73 | } |
| 74 | // offenbar passte nix, Kommando nicht erfolgreich abgearbeitet. Ggf. weitere |
| 75 | // versuchen und/oder die notify_fail-Meldung ausgeben. |
| 76 | return 0; |
| 77 | } |
| 78 | |