// Der gleiche Hase noch einmal - nur netter
// Etwas mehr dokumentiert und nicht ganz so umfangreich ist der Hase hier.
inherit "std/npc"; // Standard interaktiven NPC erben.
#include <properties.h> // allgemeine Properties
#include <living/body.h> // für den Körperbau
#include <npc/react.h> // Wir wollen, dass der NPC reagiert
// Die Reaktion des NPC kann man mit
// AddReaction() verändern. Wir setzen hier
// aber keine, um das Beispiel einfach zu
// halten. Es sind nur die Standardreaktionen
// aktiv.
void create()
{
if (!clonep()) return;
::create();
//die Standardrectionen werden gesetzt
SetStandardReactions();
// Singular/Plural Namen setzen
SetProp(P_NAME, "Hase");
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);
// Der Hase ist grammatikalisch maennlich
SetProp(P_GENDER, MALE );
SetProp(P_LONG,
"Ein kleiner Hase mit langen Ohren und langen Beinen.");
// IDs
AddId(({"hase", "haeschen"}), ({"hasen", "haeschen"}));
// Das Gewicht des Hasen - der Spieler sieht das mit dem Kommando "prüfe"
SetProp(P_WEIGHT, 4000);
// NPC spezifische Sachen
// standardmaessig einen NPC vom Level 4 erzeugen.
// dabei werden alle Werte automatisch gesetzt
create_default_npc(4);
// Hasen haben vier Beine, Koerper, Kopf, Schwanz ... aehnlich einer Katze.
CreateBody(BODYTYPE_CAT);
// Die (Tier-)Rasse des NPCs
SetProp(P_RACE "Hase");
// die Widerstandskraft erhoehen wir ein wenig
SetProp(P_BODY, 5);
// der Hase kann keine Waffe zuecken, also nur die Kraft der 'Haende' setzen
// Der String wird beim Kampf als Satzteil benoetigt.
SetProp(P_HANDS, ({ " mit seinen kleinen Pfoetchen", 35 }) );
// Die Gesinnung des Monsters zwischen -1000 (satanisch) und 1000 (heilig)
// Im Kampf beeinflusst das Align des NPCs das Align des Spielers. Toetet
// er 'gute' Monster, wird sein Align schlecht und umgedreht
SetProp(P_ALIGN, 100); // der Hase ist ein bisschen nett
// die Erfahrungspunkte, die der Spieler beim Tode des Monsters bekommt,
// dabei ist zu beachten, dass der Spieler 1/100 des Wertes bekommt und auch
// waehrend des Kampfes schon Erfahrungspunktes bekommt
SetProp(P_XP, 60000);
// Der Hase macht ein paar Chats in den Raum. Mit einer Chance von
// 2% gibt er eine Meldung aus (pro Heartbeat).
SetChats( 2, ({
"Der Hase muemmelt vor sich hin.",
"Der Hase verputzt ein paar Grashalme.",
"Der Hase beobachtet Dich aengstlich.",
"Der Hase verliert ein paar schwarze Kugeln." }) );
// Der Hase spricht, aber er weiss fast nichts. "\ndefault" wird
// immer ausgegeben, wenn man den Hase etwas fragt, was er nicht weiss
AddInfo( "\ndefault", "Ich weiff garnichtf!", "lispelt:");
AddInfo( "beispiel", "Ja genau. Daf bin ich! Schau Dir doch mal "
__FILE__" etwaf genauer an!", "erklaert lispelnd:");
// Jetzt koennte oder sollte man noch Reaktionen fuer den Netti setzen
// Nur ein kleines Beispiel, den Rest nehmen wir vom Standard-Netti.
// Ein Spieler weint im Raum. Darauf reagiert der Hase. Vorher entfernen
// wir noch die Standardreaktion. Alle Standardreaktionen entfernt man
// am schnellsten mit: SetProp(P_REACTIONS, ([]) ); Dabei ist aber zu
// beachten, dass man "frage" unbedingt wieder setzen muss, weil der NPC
// sonst nichtmehr auf Fragen reagiert. (man P_REACTIONS)
RemoveReaction("weine", R_NOONE);
AddReaction("weine", R_NOONE, ({
1, "sag Ooch &Name!", // nach 1 Sekunde sag etwas
2, "umarme &name /troestend", // nach 2 Sekunden umarmen
4, "50%seufz /schwer" }) ); // und eventuell seufzen (50% Chance)
}
// Hier noch ein paar Zusatzfunktionen speziell fuer Nettis. Wenn man
// verhindern will, dass man dem Hase die Haare wuschelt oder ihn unterm
// Kinn kitzelt oder ihn die Haende schuettelt, sollte man diese benutzen
// Der Spieler wuschelt dem Hase die Ohren
mixed* PlayerTousles(object pl) {
return ({"Ohren", PLURAL});
}
// Der Spieler kitzelt den Hase am Bauch
mixed* PlayerTickles(object pl) {
return ({"an","Bauch", MALE, SINGULAR});
}
// Der Hase hat keine Haende. Und Pfoten schuetteln is wohl auch nich
// das Gelbe vom Ei...
int PlayerShakes(object pl) {
return -1;
}
|