Code: Valider NPC für das AnderLand (Properties)

Im AnderLand müssen NPCs bestimmte Properties enthalten. Leider werden immer wieder welche vergessen. Hier folgt ein NPC, den man als Vorlage benutzen kann, der die Properties enthält, die auf jeden Fall IMMER gesetzt werden müssen:

// npc.c - Ein minimaler NPC

#pragma strong_types

#include <properties.h>
#include <language.h>
#include <combat.h>
#include <moving.h>

inherit "/std/npc";

void create()
{
  if (!clonep())
  {
    set_next_reset(-1);
    return;
  }
  ::create();
  
// Folgende Dinge MUESSEN IMMER gesetzt sein:

  // Setzt schonmal alle Grundwerte für einen NPC mit Level 5
  create_default_npc(5); 

  // Die ID des Hasen, mit der man ihn bei 'untersuche', 'toete' etc
  // ansprechen kann.  
  AddId(({"hase","meister lampe","tier"}));

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

  // Das Geschlecht: NEUTER, MALE oder FEMALE
  SetProp(P_GENDER,MALE); 

  // Die Kurzbeschreibung, sieht man, wenn man im Raum 'schau' eingibt.
  SetProp(P_SHORT, "Ein Hase"); 

  // Die Langbeschreibung, sieht man, wenn man 'untersuche Monster'
  SetProp(P_LONG,"Ein grauer Hase."); 

  // Die Groesse in Zentimeter
  SetProp(P_SIZE,40);

  // Das Gewicht in Gramm
  SetProp(P_WEIGHT,3000);
  
  // Die Klassen, bitte richtig und möglichst komplett setzen, 
  // da sie im Spiel an vielen Stellen benutzt werden! Alle 
  // Klassen findet man in /sys/class.h
  // Bedeutungen: CL_FUR -> Hase hat Fell, 
  //              CL_ANIMAL -> Hase ist ein Tier,
  //              CL_WALKING -> Hase bewegt sie gehend fort,  
  //              CL_MAMMAL -> Hase ist ein Saeugetier, 
  //              CL_MAMMAL_LAND -> Hase ist ein Landsaeuger, 
  //              CL_RABBIT -> Hase ist ein Hase 🙂

  AddClass(({CL_FUR,CL_ANIMAL,CL_MAMMAL,CL_WALKING,CL_MAMMAL_LAND, 
             CL_RABBIT}));

  // Die Rasse des Hasen
  SetProp(P_RACE,CL_RABBIT);

// Folgende Dinge sollten gesetzt werden.
 
  // Die Details des Hasen 
  AddDetail({"ohr","ohren"}),"Die Ohren sind enorm lang.");

  AddDetail(({"fell","hasenfell"}),"Das Fell ist grau.");

  // Womit greift der Hase an und wieviel Schaden macht er:
  // DT_WHIP -> Peitschender Schaden.
  // Alle Schaeden, die es gibt, kann man in /sys/combat.h
  // nachlesen.
  SetProp(P_HANDS,({ " mit seinen Ohren",30, DT_WHIP }));

  // Die Gesinnung des Hasen. Bei NPCs vom -1500 (satanisch)
  // bis +1500 (heilig)
  SetProp(P_ALIGN,300);

// Folgendes Sachen waeren schoen:
  // Die In-/Out- Medlungen

    // Meldungen bei 'normaler' Bewegung
  SetProp(P_MSGIN,    "hoppelt herein");
  SetProp(P_MSGOUT,   "hoppelt");

    // Bei Teleport, wo es keine Richtungen bei der Bewegung gibt
  SetProp(P_MMSGOUT,  "hoppelt davon");
  SetProp(P_MMSGIN,   "hoppelt herein");

  // Die Kampfpunkte, die ein Npc gibt. Muss man normalerweise
  // nicht setzen, da dies automatisch berechnet wird. Moechte
  // man aber eine Bonus darauf geben, geht das wie folgt (und
  // zwar IMMER GANZ AM ENDE VON CREATE! Im Beispiel: 1000
  // Bonus fuer den Kill.
  SetProp(P_XP,suggest_xp(1000));
}

Natürlich kann man noch viel viel mehr in einem NPC setzen. Wenn Du nicht weißt, wie etwas geht oder was noch möglich ist, einfach mal einen Magier Deiner Wahl im AnderLand fragen!

Gruß,

– It –