Ein nettes Monster
![]()
// 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; } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Netter Hase | |
|
| |