MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | // (c) by Padreic (Padreic@mg.mud.de) |
| 2 | |
| 3 | // Dieses ist ein erstes Objekt das so oder aehnlich tatsaechlich im |
| 4 | // MorgenGrauen vorkommen koennte. |
| 5 | |
| 6 | // Jedes Objekt im MorgenGrauen braucht bereits eine solche Vielzahl von |
| 7 | // Standardfunktionen, dass es ziemlich unmoeglich ist, diese alle in jedem |
| 8 | // Objekt zu definieren. Daher "erbt" man diese Funktionen von einem |
| 9 | // Standardobjekt. |
| 10 | // "Erben" bedeutet hierbei, das man auf alle Funktionen, die bereits im |
| 11 | // Standardobjekt definiert sind, zugreifen kann. |
| 12 | // |
| 13 | // Die folgende Zeile erklaert, dass man das Objekt an der Position |
| 14 | // /std/thing.c "erben" moechte. |
| 15 | inherit "/std/thing"; |
| 16 | |
| 17 | |
| 18 | // Die Funktion folgender Zeile kann man sich recht einfach wie folgt |
| 19 | // vorstellen: Wenn der Game-Driver dieses Objekt hier compiliert, dann |
| 20 | // tut er so, als wuerde die Datei /sys/properties.h genau an dieser Stelle |
| 21 | // hier im Code stehen. |
| 22 | // |
| 23 | // Die Datei properties.h beinhaltet einfach nur haufenweise Defines fuer |
| 24 | // die haufenweise Properties. |
| 25 | // |
| 26 | // Anmerkung: Alle Defines in dieser Datei starten uebrigens mit einem 'P_'. |
| 27 | // Am Besten solltest Du einfach mal kurz in /doc/properties.h reinsehn |
| 28 | // und ein bisschen rumlesen |
| 29 | // (keine Angst, die muss man nicht alle kennen :). |
| 30 | #include <properties.h> |
| 31 | |
| 32 | protected void create() |
| 33 | { |
| 34 | // Die Funktion create() wurde naemlich bereits in /std/thing.c |
| 35 | // beschrieben, kann aber nicht mehr ueber create() aufgerufen werden, da |
| 36 | // dann ja wieder diese Funktion hier aufgerufen wuerde |
| 37 | // (wodurch wir dann eine Endlos-Rekursion haetten). |
| 38 | // Kurzschreibweise waere ::create(); wenn man nur von einem Objekt erbt. |
| 39 | thing::create(); // oder auch einfach ::create(); |
| 40 | |
| 41 | // Auch diese Funktion wurde aus /std/thing geerbt. |
| 42 | // SetProp() ist eine der wichtigsten Funktionen ueberhaupt, wenn es darum |
| 43 | // geht, ein Objekt zu beschreiben. Mit dieser Funktion kannst Du naemlich |
| 44 | // zahlreiche Eigenschaften (engl. properties) des Objektes festlegen. |
| 45 | SetProp(P_SHORT, "Einige wertvolle Juwelen"); // die Kurzbeschreibung |
| 46 | SetProp(P_LONG, "Die Juwelen glitzern verlockend.\n"); // Langbeschreibung |
| 47 | SetProp(P_NAME, "Juwelen"); // der eigentliche Name |
| 48 | SetProp(P_NAME_ADJ, "wertvoll"); // das Adjektiv vor dem Namen |
| 49 | SetProp(P_GENDER, FEMALE); // Geschlecht (kann auch MALE oder NEUTER sein) |
| 50 | SetProp(P_WEIGHT, 5000); // dieses Objekt wiegt 5kg |
| 51 | SetProp(P_VALUE, 10000); // das Objekt ist insgesamt 10000 Muenzen Wert |
| 52 | |
| 53 | // Mit dieser Funktion kann man eine id angeben, ueber die das Objekt |
| 54 | // ansprechbar ist. |
| 55 | // Anmerkung: Auch diese Funktion ist wieder von std/thing geerbt, im |
| 56 | // folgenden werde ich dies aber nicht mehr bei jeder Funktion extra |
| 57 | // angeben. Wenn nicht anders angegeben, handelt es sich ab jetzt |
| 58 | // naemlich _immer_ um ererbte Funktionen. |
| 59 | AddId("juwelen"); |
| 60 | |
| 61 | // In diesem Fall benoetigt man noch ein weiteres Adjektiv, da man das |
| 62 | // Objekt ja auch mit wertvolle Juwelen ansprechen koennen moechte. |
| 63 | // z.B.: unt wertvolle juwelen |
| 64 | // gib wertvolle juwelen an padreic |
| 65 | AddAdjective("wertvolle"); |
| 66 | } |