blob: d3e5302c559c85f937e9b87507133d43f8613edf [file] [log] [blame]
notstromac002782019-08-19 15:49:47 +02001inherit "/std/room";
2
3#include __PATH__(1)"defs.h"
4#include <questmaster.h>
5
6int cmd_hebel();
7
8
9protected void create() {
10 ::create();
11
12 SetProp(P_INT_SHORT, "Eine Huette mit Hebel");
13 SetProp(P_INT_LONG, BSLF(
14 "Diese Huette ist komplett leer. Na sowas. Nur an einer Stelle ragt ein "
15 "Hebel aus der Wand. Ein kleines Schild haengt darunter."));
16
17 SetProp(P_LIGHT, 1);
18 SetProp(P_INDOORS, 1);
19 SetProp(P_LIGHT_TYPE, LT_GLOWING);
20
21 AddDetail("hebel", BSLF(
22 "Da kannst Du dran ziehen."));
23 AddDetail("schild", BSLF(
24 "Das kannst Du lesen (wenn Du lesen kannst.)"));
25
26 AddReadDetail("schild", BSLF(
27 "\"Zum Loesen der Miniquest hier ziehen\".\n"
28 "(Steht da. Was fuer eine Miniquest?)"));
29
30 AddCmd("zieh|ziehe&hebel", #'cmd_hebel,
31 "Wen oder was willst Du @verben?^");
32}
33
34int cmd_hebel() {
35 /* Miniquest erfolgreich absolviert - bitte lies "man GiveMiniQuest".
36 Wenn Du in Deinem Code pruefen willst, ob der Spieler die Miniquest
37 bereits absolviert hat, lies bitte "man HasMiniQuest". */
38 int err = QM->GiveMiniQuest(TP);
39
40 /* Fuer die Infos, die der Questerzmagier zum Eintragen Deiner Miniquest
41 braucht, lies bitte "man AddMiniQuest". Du kannst ihm normalerweise
42 einfach eine Mail schreiben, die Eintraege fuer alle Argumente auf
43 der Manpage enthaelt. */
44
45 if (err == 1) {
46 SetProp(P_NAME_ADJ, 0);
47 SetProp(P_ARTICLE, 0);
48 SetProp(P_NAME, "Ein Hebel");
49
50 // Ausgaben auf der Abenteuer-Ebene:
51 CHMASTER->join("Abenteuer", TO);
52 CHMASTER->send("Abenteuer", TO,
53 sprintf("Juchu! Ich werde doch so gern gezogen! Danke, %s!", TPN),
54 MSG_SAY);
55 CHMASTER->leave("Abenteuer", TO);
56 } else {
57 string msg;
58 switch (err) {
59 case -1:
60 msg = "Du hattest die Miniquest bereits zuvor geloest.";
61 break;
62 case -2:
63 case -4:
64 /* Diese Meldung sollte hier nicht ueberraschen, denn dieses
65 Beispiel ist hoffentlich nicht im Questmaster eingetragen: */
66 msg = "Seltsam. Die Miniquest scheint nicht eingetragen zu sein.";
67 break;
68 case -5:
69 msg = "Du bist mit einem Gastspieler eingeloggt. Gastspieler "+
70 "bekommen keine Miniquests gutgeschrieben. Hat es trotzdem "+
71 "Spass gemacht?";
72 break;
73 default:
74 msg = "Irgendetwas ist schiefgegangen. Ein Magier waere vermutlich "+
75 "sehr daran interessiert, was Du gemacht hast. Bitte sei so "+
76 "nett und verstaendige einen. Danke!";
77 }
78 tell_object(TP, BSLF(msg));
79 }
80 return 1;
81}
82