Beispieldateien

Ein einfaches Monster

----------


// Ein ganz normales Monster - naja Monster ist übertrieben, es ist ja nur ein Hase.
// Dieser Hase enthält nur die wichtigsten Funktionen. Besser und schöner
// ist der Beispiel-Hase2.

// Wir erben von der Standardklasse "npc"
inherit "std/npc";

#include <properties.h>
#include <living/body.h>              // fuer den Koerperbau

void create()
{
  // Speicher sparen
  // d.h. wenn es kein Clone ist (nur unsere Blueprint bzw. Vorlage), dann 
  // wird der Rest des create() nicht ausgeführt
  if (!clonep()) return;       

  ::create();    // MUSS SEIN! Das ererbte create() vom NPC wird aufgerufen

  // Wir erzeugen standardmäßig einen NPC vom Level 4. Dabei werden die Werte
  // von P_BODY, P_LEVEL, P_HANDS, P_MAX_HP, P_MAX_SP und P_XP 
  // automatisch gesetzt
  create_default_npc(4);

  // Hasen haben vier Beine, Koerper, Kopf, Schwanz ... aehnlich einer Katze.
  CreateBody(BODYTYPE_CAT);

  // Der Name des Hasen:
  SetProp(P_NAME, "Hase");       

  // Die Pluralform des Namens (für die Zusammenfassung gleicher):
  SetProp(P_PLURAL, "Hasen");       

  // Hase wird schwach gebeugt, daher hier die entsprechende Information
  // an die Lib. (Sonst gibt es z.B. "Die Leiche eines Hase.")
  SetProp(P_NAME_FLAG, NAME_WEAK_DECL);

  // Mit diesen Begriffen kann man das Monster ansprechen:
  AddId(({"hase", "haeschen"}), ({"hasen", "haeschen"}));
  
  // Die Langbeschreibung wird angezeigt, wenn man das Monster untersucht:
  SetProp(P_LONG,                           
    "Ein kleiner Hase mit langen Ohren und langen Beinen.");

  SetProp(P_GENDER, MALE);   // das Geschlecht ist maennlich, wird auch benoetigt

  // Der Hase hat keine Waffe. Wir müssen die Kraft der 'Hände' und den Angriffstext setzen.
  // (Zwar wird durch create_default_npc() schon P_HANDS vorbelegt, allerdings 
  // mit dem Text: " mit blossen Haenden" und das paßt bei dem Hasen ja nicht. :-))
  SetProp(P_HANDS, ({" mit seinen langen Ohren", 35}));

  // Gesinnung des Monsters, diese bekommt der Spieler nach dem Tod hinzugezählt
  SetProp(P_ALIGN, 100);        // der Hase ist ein bisschen nett

  // Das Gewicht des Hasen - der Spieler sieht das mit dem Kommando "prüfe"
  SetProp(P_WEIGHT, 4000);

  // Auch Monster können Details haben:
  AddDetail(({"ohr", "ohren", "loeffel", "hasenohr", "hasenohren"}),
    "Der Hase hat lange Loeffel, mit denen er sich auch zu verteidigen weiss.");

  AddDetail(({"bein", "beine"}),
    "Mit den langen Beinen kann der Hase schnell laufen und springen.");

}