// Ein ganz normaler Moving-NPC (nach Hund aus Kogia)
// Die Standardsachen sind in allen Objekten gleich. Bitte
// zuerst den Hasen dafür ansehen. (Dort ist mehr kommentiert)
//
// 05.08.99 Holger@Wunderland
// 09.04.01 Archon - Anpassungen
inherit "std/npc"; // den Standard-NPC erben
#include <properties.h> // Allgemeine Properties
#include <npc/walking.h> // Wir wollen, daß der NPC umherläuft
void create()
{
if (!clonep()) return;
::create();
SetProp(P_LONG,
"Du siehst einen grossen schwarzen Hund. Wahrscheinlich der Wachhund "
"von Prem Kokus. Er sieht eigentlich ganz friedlich aus. Er freut sich "
"Dich zu sehen und bellt und wedelt mit seinem Schwanz.");
SetProp(P_NAME, "Hund");
SetProp(P_PLURAL, "Hunde");
SetProp(P_GENDER, MALE);
// Default-NPC Level 7
create_default_npc(7);
// Hunde haben vier Beine, Koerper, Kopf, Schwanz ... aehnlich einer Katze.
CreateBody(BODYTYPE_CAT);
// Das Gewicht des Hundes - der Spieler sieht das mit dem Kommando "prüfe"
SetProp(P_WEIGHT, 25000);
// er ist ganz lieb
SetProp(P_ALIGN, 200);
// aber nicht ganz wehrlos :-)
SetProp(P_HANDS, ({ " mit seinen scharfen Zaehnen", 70 }));
// IDs
AddId(({ "hund", "wachhund"}), ({"hunde", "wachhunde"}));
// Jetzt die MNPC-spezifischen Properties
// Das Gebiet in dem sich der Hund bewegen soll. Es kann ein Array
// aus Pfadbestandteilen angegeben werden. Es werden alle Räume
// betreten, deren Pfad mit den Teilpfaden in P_MNPC_AREA überein-
// stimmen. Also hier sind das folgende Räume:
// /doc/beispiele/raum1.c
// /doc/beispiele/raum2.c
// /doc/beispiele/raum3.c
// /doc/beispiele/raum4.c
// In diesen Räumen bewegt sich der Hund völlig frei.
SetProp(P_MNPC_AREA, ({ "/doc/beispiele/raum" }));
// Wenn der Hund in eine Sackgasse kommt, dann braucht er einen
// Ausweg. Ein Raum der keine Sackgasse ist!
SetProp(P_MNPC_HOME, "/doc/beispiele/raum1");
// Wie schnell soll der MNPC rennen? Ca. alle 40 Sekunden einmal
SetProp(P_MNPC_DELAY, 40);
// Der MNPC soll herumlaufen und im Kampf stehenbleiben und benutzt als
// Move-Methode nie M_TPORT (sondern M_GO)
SetProp(P_MNPC_FLAGS, MNPC_WALK|MNPC_NO_TPORT );
// Der MNPC soll keine Specialexits benutzen!
SetProp(P_MNPC_SPECIAL_EXITS, 0);
// Die nächsten Properties sind eigentlich für alle NPCs setzbar,
// nur macht es nur bei NPCs Sinn, die sich auch selbst bewegen. Also
// nur für MNPCs, Spieler und anderen 'Automaten' :-)
// Die Meldung, wenn er in einen Raum läuft (Satzteil)
SetProp(P_MSGIN,"kommt schwanzwedelnd herein");
// Die Meldung, wenn er in einen Raum teleportiert wird (Satzteil)
SetProp(P_MMSGIN,"kommt schwanzwedelnd herein");
// Die Meldung, wenn er einen Raum laufend verläßt (Satzteil)
SetProp(P_MSGOUT, "rennt schnueffelnd");
// Die Meldung, wenn er aus einem Raum teleportiert wird (Satzteil)
SetProp(P_MMSGOUT, "rennt schnueffelnd");
// So jetzt noch ein paar Details und Infos und Schnörkel :-)
AddDetail(({"schwanz","rute"}),
"Der Hund hat einen langen schwarzen Schwanz.");
AddDetail(({"zaehne","zahn"}),
"Der Hund hat sehr scharfe Zaehne.");
AddDetail(({"ohr","ohren"}),
"Der Hund hat sehr gute Ohren.");
AddInfo( "\ndefault",
"Wuff. Wuff. Ich weiss gar nichts. Wuff!",
"laesst die Ohren haengen und sagt:");
AddInfo( "kokus|prem|premkokus",
"Wuff. Wuff. Das ist mein Herrchen. Wuff! Wuff! WUFF!!!",
"wedelt mit dem Schwanz und sagt:");
// Ein paar Chats
SetChats( 10, ({
"Der Hund klaefft.",
"WUFF..., WUFF..., WUFF WUFF WUFF....",
"KLAEFF..." }) );
}
|