Eine Kneipe
![]()
// Beispiel-Kneipe // überarbeitet 06.06.2007 by Largo@Wunderland inherit "pub"; // wir erben vom std-pub #include <coineage.h> // hierher kommt das Makro CT_WUNDERLAND #include <defines.h> // hier sind Makros wie PL (als this_player()) definiert #include <properties.h> void create() { ::create(); // auch das create vom std-pub aufrufen! SetProp(P_CURRENCY, CT_WUNDERLAND); // in welcher waehrung kassieren wir? SetProp(P_INDOORS, 1); SetProp(P_INT_SHORT, "Eine Bar"); SetProp(P_INT_LONG, "Du befindest Dich in einer Beispielbar. Der Barkeeper ist nur in der " "Beschreibung vorhanden. Mit dem Kommando 'menue' bekommst Du eine " "Uebersicht ueber das Speisen- und Getraenkeangebot."); AddDetail(({"menue","getraenk","getraenke", "speisen"}), "Tipp einfach 'menue' ein."); AddDetail("boden", "Ein ganz normaler Boden."); AddDetail(({"decke","dach","kopf"}), "Sei froh, dass Du hier ein Dach ueber dem Kopf hast."); AddDetail(({"wand","waende"}), "An den Waenden kannst Du nichts besonderes sehen."); AddDetail(({"barkeeper"}), "Der Barkeeper ist nur als Detail hier."); // Speisen und Getraenke werden mittels AddFoodOrDrink eingebunden // Dazu geben wir die Rohwerte der Speisen und Getraenke an (siehe dazu // die Hilfe von AddFoodOrDrink) // (ml bzw. g des Essens/Getraenks, Alkohol in %, Heilfaktoren fuer // LP und MP dienen als Grundlage fuer die Berechnung des endgueltigen // Heilwertes.) // Beim whiskey und beim brot geben wir texte aus, die der Spieler beim // bestellen bekommt. Beim Wasser soll kein Text ausgegeben werden. // Dazu benennen wir jeweils den Namen einer Funktion, die vorm Verzehr // ausgefuehrt werden soll // Wir geben keinen Festpreis an, der Preis wird automatisch berechnet. // Ein alkoholisches Getraenk AddFoodOrDrink("Whiskey", ({"whiskey"}), 40, 0, 10, 1.0, 1.0, 0, "whiskey", 0, 0); // Ein antialkoholisches Getraenk AddFoodOrDrink("Wasser", ({"wasser"}), 200, 0, 0, 1.0, 1.0); // Eine Speise AddFoodOrDrink("Brot", ({"brot"}), 0, 30, 0, 1.0, 1.0, 0, "brot", 0, 0); // noch ein Getraenk - hier geben wir die Meldungen gleich mit an AddFoodOrDrink("Drachenblut",({"drachenblut","blut"}), 600, 0, 3, 1.1, 0.9, 0, ({"Der Barkeeper stellt Dir ein Glas Drachenblut hin.", "Der Barkeeper stellt &&WEM&& ein Glas Drachenblut hin."}), 0, 0); } void brot(string Name, int ok) { switch (ok) { // Das Essen/Trinken hat geklappt, der Spieler lebt noch ;-) case 1: write(break_string("Der Barkeeper knallt Dir eine trockene Scheibe " "Brot hin, die Du sofort isst.")); say(break_string("Der Barkeeper knallt "+ PL->name(WEM, NAME_DEF)+" eine trockene Scheibe Brot hin, " "die "+this_player()->QueryPronoun(WER)+" sofort isst.")); break; // Der Spieler konnte nix essen/trinken aus irgendeinem Grund case 0: write("Oh, Du magst nicht? Das Brot wird wieder weggeraeumt.\n"); break; // Das Essen/Trinken hat geklappt, der Spieler ist daran gestorben case -1: say("Das ist "+PL->name(WEM, NAME_DEF)+" wohl nicht gut bekommen.\n", PL); if (PL) write("Du hoerst den Barkeeper in der Ferne lachen.\n"); break; default: break; } } void whiskey(string Name, int ok) { switch (ok) { case 1: write(break_string("Der Barkeeper stellt Dir ein kleines Glas billigen " "Whiskey hin. Du trinkst ihn, obwohl er nicht schmeckt.")); say(break_string("Der Barkeeper stellt "+ PL->name(WEM, NAME_DEF)+" ein Glas billigen Whiskey hin.")); break; case 0: write("Oh, Du magst nicht? Der Whiskey wird wieder weggeraeumt.\n"); break; case -1: say("Das ist "+PL->name(WEM, NAME_DEF)+" wohl nicht gut bekommen.\n", PL); if (PL) write("Du hoerst den Barkeeper in der Ferne lachen.\n"); break; default: break; } } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Kneipe | |
|
| |