Ein paar Blumen (Pluralobjekt)
![]()
// Sie veraendern ihr Aussehen zeitabhaengig und verwelken nach einiger // Zeit ganz. // Sie treten als "einige Butterblumen" auf. Auch wenn es mehrere von ihnen // in einem Raum gibt, sind es immer noch "einige Butterblumen". // 17.11.2004 by Sunrise inherit "thing"; #include <combat.h> #include <properties.h> string GetLong(); // Funktionen deklarieren string blueten(); void create() { if(!clonep()) return; ::create(); AddId(({"butterblume", "blume"}), ({"butterblumen", "blumen"})); SetProp(P_NAME, "Butterblumen"); SetProp(P_GENDER, FEMALE); SetProp(P_PLURAL, "Butterblumen"); // Man kann angeben, ob ein Objekt mehrere repraesentieren soll. Eine allgemeine // Information mit einigen Beispielen: name_usage SetProp(P_NAME_AMOUNT, "einig"); SetProp(P_NAME_FLAG, NAME_AMOUNT_INDEF|NAME_PLURALOBJ); // Diese Funktionalitaet erlaubt es uns, eine Funktion anzulegen, // die bei jedem Aufruf erneut ausgefuehrt wird und sich somit selbst // staendig aktualisiert. // Wir nennen dies Query-Methode (von F_QUERY_METHOD) Set(P_LONG, #'GetLong, F_QUERY_METHOD); // Ein selbst festgelegtes Property enthaelt die Zeit time(), // zu der das Objekt erzeugt, also die Blumen gepflueckt wurden. SetProp("gepflueckt", time()); SetProp(P_SMELL, "Die Butterblumen riechen fast gar nicht. Aber dafuer " "sind sie sehr schoen und leuchtend gelb."); // Das einzige Detail ist veraenderbar und ruft eine Funktion auf AddDetail(({"blueten", "bluete"}), #'blueten); } string GetLong() { string str = "Ein paar zarte gelbe Butterblumen. " "So wie sie oft liebende Kinder ihren Eltern pfluecken."; // Wieviel Zeit ist seit dem Pfluecken vergangen? switch(time()-QueryProp("gepflueckt")) { case 0..400: str +=" Sie sind frisch gepflueckt."; break; case 401..800: str += " Die Butterblumen lassen schon die Koepfe " "haengen."; break; case 801..1200: str += " Die Butterblumen sind schon ganz verwelkt."; break; default: // wenn sie zu alt sind, verwelken sie call_out("remove", 1, 1); str += " Sie sind schon so verwelkt, dass Du sie " "frustriert wegwirfst."; break; } return str; } string blueten() { switch(time()-QueryProp("gepflueckt")) { case 0..400: return "Die zarten Blueten der Butterblumen sind noch " "ganz offen und leuchtend. Offenbar sind die " "Blumen frisch gepflueckt."; case 401..800: return "Die zarten Butterblumen lassen schon die Koepfe " "haengen. Sie sind einfach zu zart, um gepflueckt zu " "werden."; case 801..1200: return "Die Butterblumen sind schon ganz verwelkt. Sie " "sind einfach zu zart, um gepflueckt zu werden."; default: call_out("remove", 1, 1); return "Die Butterblumen sind derart lasch und verwelkt, " "dass Du sie traurig wegwirft. Butterblumen sind halt " "einfach zu zart, um gepflueckt zu werden."; } } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Blumen | |
|
| |