Ein essbarer Apfel
![]()
// Ein recht komplexer Beispiel-Apfel zum Essen // (nach Original "apfel.c" in Kogida) // // 05.08.99 Holger@Wunderland inherit "std/food"; // Wir erben das Standardessen #include <defines.h> // ein paar nuetzliches Defines #include <properties.h> // die wichtigen Properties #include <food.h> // die properties des Essens // Prototypen string ess_msg(); // Funktionen, die wir erst benutzen und string beiss_msg(); // erst danach definieren, brauchen einen // Prototyp, sonst bricht der Compiler ab, // weil er die Funktion noch nicht kennt. // Prototypen bestehen aus der Funktions- // definition, gefolgt durch Semikolon // Das create() wird immer gleich nach dem Clonen aufgerufen void create() { // Bin ich kein Klon? -> Dann brich das create() gleich ab! if (!clonep()) return; // auch die Mutterklasse (food) braucht ihre create() // NIEMALS VERGESSEN! ::create(); // Langbeschreibung setzen SetProp(P_LONG, "Ein aussergewoehnlich grosser Apfel. Er ist ganz gelb und hat ein " "rotes Baeckchen. Dir laeuft das Wasser im Mund zusammen."); // den Singular-Name setzen SetProp(P_NAME, "Apfel"); // den Plural-Name setzen SetProp(P_PLURAL, "Aepfel"); // Das Geschlecht setzen (maennlich) SetProp(P_GENDER, MALE); // Singular und Plural Id setzen (damit spricht man das Objekt an) AddId("apfel","aepfel"); // einen gewissen Wert setzen SetProp(P_VALUE, 20); // die 'Sperrigkeit' bzw 'Unhandlichkeit' setzen SetProp(P_BULKINESS, 50); // das Gewicht setzen in Gramm SetProp(P_WEIGHT, 200); // jetzt die Werte die Essen-spezifisch sind // aus 5 Stuecken besteht der Apfel SetProp(P_PIECES, 5); // insgesamt heilt der frische Apfel 10 Lebenspunkte SetProp(P_HEAL, 10); // wie saettigt der Apfel? SetProp(P_FILL, 10); // der Apfel vergammelt 14400 Sekunden = 4 Stunden = 1 WL-tag SetProp(P_ROTT, 14400); // der Geschmack des Apfels (fuers Essen und Kosten) SetProp(P_TASTE, "Er schmeckt fruchtig frisch und vitaminreich." ); // Der Geruch des Apfels SetProp(P_SMELL, "Der Apfel duftet ganz wunderbar frisch und fruchtig."); // Wir aendern die Meldungen die beim Essen ausgegeben werden und // geben dafuer 2 Closures an (siehe Prototypen oberhalb und Funktionen // unterhalb von create() // Wenn man die Zeile weglaesst werden die Standardmeldungen erzeugt. SetProp(P_EAT, ({ #'ess_msg, 0, #'beiss_msg, 0 }) ); // Wir setzen eigene Meldungen, wenn der Apfel vergammelt. // Wenn man die weglaesst, kommen Standardmeldungen. SetProp(P_ROTT_MSG, ({ "Der schoene grosse gelbe Apfel in Deiner Tasche ist mittlerweile " "schon ganz fleckig und matschig geworden. Du entschliesst Dich, das " "Ding zu entsorgen, ehe er noch anfaengt zu wegzulaufen. Du aergerst " "Dich, dass Du den Apfel nicht eher gegessen hast und wirfst ihn weg.", "Du siehst, wie &&WER&& einen uralten braunen vergammelten Apfel " "aus seiner Tasche zieht und angwidert wegwirft.", "Der Apfel verschimmelt und die Ameisen machen sich darueber her. " "Nach kurzer Zeit schon ist er verschwunden."}) ); // Jetzt setzen wir noch ein paar details, die die Spieler am Apfel // untersuchen koennen AddDetail(({"stiel","apfelstiel"}), "Der Apfel hat eine ganz normalen braunen Apfelstiel."); AddDetail(({"bluete","apfelbluete"}), "Der Apfel hat eine kleine braune vertrocknete Bluete."); AddDetail(({"farbe"}), "Der Apfel ist ganz gelb und hat auf einer Seite einen roten Fleck."); AddDetail(({"fleck","seite","baeckchen"}), "Der Apfel hat ein rotes Baeckchen. Du bekommst Lust hineinzubeissen."); } // Jetzt kommen noch die beiden Funktionen, die wir bei P_EAT angegeben // haben. Sie geben den String zurueck der ausgegeben werden soll. Wenn man // P_EAT nicht setzt, kann man die Funktionen hier und die Prototypen oben // weglassen string ess_msg() { return "Du beisst hemmungslos in den wunderbaren gelben " "saftigen Apfel hinein. Er schmeckt einfach phantastisch. Der suesse " "Fruchtsaft laeuft Dir rechts und links am Mundwinkel herunter. Du " "kannst Dich einfach nicht zuegeln und innerhalb kuerzester Zeit hast " "Du den ganzen Apfel aufgegessen. Den uebrig gebliebenen Stiel " "schnippst Du einfach weg."; } string beiss_msg() { return "Du beisst hemmungslos ein Stueck aus dem wunderbaren " "gelben saftigen Apfel. Er schmeckt einfach phantastisch. Der suesse " "Fruchtsaft laeuft Dir rechts und links am Mundwinkel herunter."; } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Apfel | |
|
| |