Ein umherlaufendes Monster
![]()
// 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..." }) ); } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Umherlaufender Hund | |
|
| |