blob: d3e5302c559c85f937e9b87507133d43f8613edf [file] [log] [blame]
inherit "/std/room";
#include __PATH__(1)"defs.h"
#include <questmaster.h>
int cmd_hebel();
protected void create() {
::create();
SetProp(P_INT_SHORT, "Eine Huette mit Hebel");
SetProp(P_INT_LONG, BSLF(
"Diese Huette ist komplett leer. Na sowas. Nur an einer Stelle ragt ein "
"Hebel aus der Wand. Ein kleines Schild haengt darunter."));
SetProp(P_LIGHT, 1);
SetProp(P_INDOORS, 1);
SetProp(P_LIGHT_TYPE, LT_GLOWING);
AddDetail("hebel", BSLF(
"Da kannst Du dran ziehen."));
AddDetail("schild", BSLF(
"Das kannst Du lesen (wenn Du lesen kannst.)"));
AddReadDetail("schild", BSLF(
"\"Zum Loesen der Miniquest hier ziehen\".\n"
"(Steht da. Was fuer eine Miniquest?)"));
AddCmd("zieh|ziehe&hebel", #'cmd_hebel,
"Wen oder was willst Du @verben?^");
}
int cmd_hebel() {
/* Miniquest erfolgreich absolviert - bitte lies "man GiveMiniQuest".
Wenn Du in Deinem Code pruefen willst, ob der Spieler die Miniquest
bereits absolviert hat, lies bitte "man HasMiniQuest". */
int err = QM->GiveMiniQuest(TP);
/* Fuer die Infos, die der Questerzmagier zum Eintragen Deiner Miniquest
braucht, lies bitte "man AddMiniQuest". Du kannst ihm normalerweise
einfach eine Mail schreiben, die Eintraege fuer alle Argumente auf
der Manpage enthaelt. */
if (err == 1) {
SetProp(P_NAME_ADJ, 0);
SetProp(P_ARTICLE, 0);
SetProp(P_NAME, "Ein Hebel");
// Ausgaben auf der Abenteuer-Ebene:
CHMASTER->join("Abenteuer", TO);
CHMASTER->send("Abenteuer", TO,
sprintf("Juchu! Ich werde doch so gern gezogen! Danke, %s!", TPN),
MSG_SAY);
CHMASTER->leave("Abenteuer", TO);
} else {
string msg;
switch (err) {
case -1:
msg = "Du hattest die Miniquest bereits zuvor geloest.";
break;
case -2:
case -4:
/* Diese Meldung sollte hier nicht ueberraschen, denn dieses
Beispiel ist hoffentlich nicht im Questmaster eingetragen: */
msg = "Seltsam. Die Miniquest scheint nicht eingetragen zu sein.";
break;
case -5:
msg = "Du bist mit einem Gastspieler eingeloggt. Gastspieler "+
"bekommen keine Miniquests gutgeschrieben. Hat es trotzdem "+
"Spass gemacht?";
break;
default:
msg = "Irgendetwas ist schiefgegangen. Ein Magier waere vermutlich "+
"sehr daran interessiert, was Du gemacht hast. Bitte sei so "+
"nett und verstaendige einen. Danke!";
}
tell_object(TP, BSLF(msg));
}
return 1;
}