notstrom | ac00278 | 2019-08-19 15:49:47 +0200 | [diff] [blame^] | 1 | inherit "/std/room"; |
| 2 | |
| 3 | #include __PATH__(1)"defs.h" |
| 4 | #include <questmaster.h> |
| 5 | |
| 6 | int cmd_hebel(); |
| 7 | |
| 8 | |
| 9 | protected 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 | |
| 34 | int 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 | |