blob: 34830952c915e01d585f68dcba37144bbcef068c [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001/* /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
9inherit "/std/room";
10
11#include <properties.h>
12#include <language.h>
13
14protected 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
50public 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