MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | /* Paracelsus: Eine Krankheit |
| 2 | ** |
| 3 | ** Beispiel fuer die Verwendung von P_X_ATTR_MOD und P_X_HEALTH_MOD |
| 4 | ** |
| 5 | ** Diese Krankheit setzt alle Attribute herab und erniedrigt |
| 6 | ** zusaetzlich P_MAX_HP und P_MAX_SP um jew. 20 (zusaetzlich zu den |
| 7 | ** Auswirkungen der Attributsenkungen). |
| 8 | ** Gestartet wird die Krankheit, indem sie einfach in das Opfer |
| 9 | ** bewegt wird. |
| 10 | ** Man beachte, dass im remove() die P_X_*-Properties ein leeres |
| 11 | ** Mapping zugewiesen bekommen und keine 0. Nur so werden die |
| 12 | ** Krankheitsfolgen rueckgaengig gemacht. |
| 13 | */ |
| 14 | |
| 15 | // Diese Pragmas sorgen dafuer, dass der Driver darauf achtet, dass bei |
| 16 | // Funktionsargumenten, -Rueckgabewerten und teilweise bei Zuweisung von |
| 17 | // Werten an Variablen der richtige Datentyp verwendet wird (z.b. kein string |
| 18 | // anstelle eines int verwendet wird). Sollte in keinem Objekt fehlen. |
| 19 | #pragma strong_types, save_types, rtt_checks |
| 20 | |
| 21 | inherit "/std/thing"; |
| 22 | |
| 23 | #include <properties.h> |
| 24 | #include <moving.h> |
| 25 | #include <language.h> |
| 26 | #include <class.h> |
| 27 | |
| 28 | protected void create() |
| 29 | { |
| 30 | ::create(); |
| 31 | |
| 32 | // ausnahmsweise darf dieses Objekt mal kein P_SHORT+P_LONG haben... |
| 33 | SetProp(P_SHORT,0); |
| 34 | SetProp(P_LONG, 0); |
| 35 | SetProp(P_INVIS, 1); // unsichtbar machen. |
| 36 | SetProp(P_NAME,"Krankheit"); |
| 37 | SetProp(P_GENDER,FEMALE); |
| 38 | // wichtig, sonst wiegt die Krankheit 1kg (Standardgewicht fuer thing) |
| 39 | SetProp(P_WEIGHT,0); |
| 40 | SetProp(P_VALUE,0); |
| 41 | SetProp(P_MATERIAL,MAT_MISC_MAGIC); |
| 42 | SetProp(P_NODROP,1); // Nicht wegwerfbar. |
| 43 | |
| 44 | // ----> Dieser Abschnitt sorgt fuer fiese Statabzuege |
| 45 | |
| 46 | SetProp(P_X_HEALTH_MOD, |
| 47 | ([ |
| 48 | P_HP : -20, // Max. Lebenspunkte um 20 runter |
| 49 | P_SP : -20 // Max. Konzentrationspunkte um 20 runter |
| 50 | ]) ); |
| 51 | SetProp(P_X_ATTR_MOD, |
| 52 | ([ |
| 53 | A_CON : -1, // Ausdauer um 1 runter, reduziert auch max. LP! |
| 54 | A_DEX : -1, // Geschicklichkeit um 1 runter |
| 55 | A_INT : -2, // Intelligenz um 2 runter, reduziert auch max. KP! |
| 56 | A_STR : -4, // Staerke um 4 runter |
| 57 | ]) ); |
| 58 | |
| 59 | // <---- |
| 60 | |
| 61 | AddId( ({"PARA\nSICK\nEXAMPLE"}) ); |
| 62 | |
| 63 | AddClass(CL_DISEASE); // Damit Kleriker helfen koennen. |
| 64 | SetProp(P_LEVEL,15); // Aber nicht ganz so einfach zu entfernen |
| 65 | } |
| 66 | |