Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/beispiele/ssp/mon/dosenoeffner.c b/doc/beispiele/ssp/mon/dosenoeffner.c
new file mode 100644
index 0000000..46d627c
--- /dev/null
+++ b/doc/beispiele/ssp/mon/dosenoeffner.c
@@ -0,0 +1,24 @@
+#include <properties.h>
+#include "../files.h"
+
+inherit MMONST;
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ AddId(({"dosenoeffner", "oeffner"}));
+ AddAdjective(({"mobiler", "mobilen"}));
+ SetProp(P_SHORT, "Ein mobiler Dosenoeffner");
+ SetProp(P_LONG, "Der Dosenoeffner moechte Dir sicherlich den Kopf mit seinen scharfen\nSchneideraedern oeffnen.\n");
+ SetProp(P_NAME, "Dosenoeffner");
+ SetProp(P_GENDER, 1);
+ SetProp(P_LEVEL, 12);
+ SetProp(P_MAX_HP, 120);
+ SetProp(P_ALIGN, -123);
+ SetProp(P_BODY, 80);
+ SetProp(P_HANDS, ({" mit scharfen Schneideraedern", 50}));
+ SetProp(P_XP, 30000);
+ SetProp(P_SIZE, random(20)+40);
+ set_living_name("dosenoeffner");
+}
diff --git a/doc/beispiele/ssp/mon/eisenfresser.c b/doc/beispiele/ssp/mon/eisenfresser.c
new file mode 100644
index 0000000..ba7b041
--- /dev/null
+++ b/doc/beispiele/ssp/mon/eisenfresser.c
@@ -0,0 +1,28 @@
+#include <properties.h>
+#include "../files.h"
+
+inherit MMONST;
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ AddId(({"eisenfresser", "fresser"}));
+ SetProp(P_SHORT, "Ein Eisenfresser");
+ SetProp(P_LONG,
+ "Eisenfresser ernaehren sich ausschliesslich von Eisen, allerdings sind\n"+
+ "sie so kurzsichtig, dass sie erstmal in alles reinbeissen, was sie\n"+
+ "irgendwie wahrnehmen.\n");
+ SetProp(P_NAME, "Eisenfresser");
+ SetProp(P_GENDER, 1);
+ SetProp(P_LEVEL, 14);
+ SetProp(P_MAX_HP, 150);
+ SetProp(P_ALIGN, -215);
+ SetProp(P_BODY, 75);
+ SetProp(P_HANDS, ({" mit eisenbeschlagenen Zaehnen", 55}));
+ SetProp(P_XP, 42000);
+ SetProp(P_AGGRESSIVE, 1);
+ SetProp(P_SIZE, random(200)+50); /* Naja, kurzsichtig halt... ;-) */
+ set_living_name("eisenfresser");
+ AddItem( OBJ("eisenklumpen") );
+}
diff --git a/doc/beispiele/ssp/mon/kampfblech.c b/doc/beispiele/ssp/mon/kampfblech.c
new file mode 100644
index 0000000..e218d01
--- /dev/null
+++ b/doc/beispiele/ssp/mon/kampfblech.c
@@ -0,0 +1,36 @@
+#include <properties.h>
+#include <combat.h>
+#include "../files.h"
+
+inherit "std/npc";
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_SHORT, "Ein Kampfblech");
+ SetProp(P_LONG,
+ "Das Kampfblech sieht irgendwie aus wie ein normales Backblech, nur\n"+
+ "viel gefaehrlicher!\n");
+ SetProp(P_NAME, "Kampfblech");
+ SetProp(P_GENDER, 0);
+ AddId(({"blech", "kampfblech","\nkampfblech"}));
+ SetProp(P_LEVEL, 8);
+ SetProp(P_MAX_HP, 100);
+ SetProp(P_ALIGN, -33);
+ SetProp(P_BODY, 70);
+ SetProp(P_HANDS, ({" mit eisenharten Schlaegen", 60}));
+ SetProp(P_XP, 30000);
+ SetProp(P_SIZE, 40);
+ SetProp(P_RACE, "Metallmonster");
+ SetProp(P_VULNERABILITY, ({ DT_WATER }));
+ SetProp(P_NOCORPSE, 1);
+ SetProp(P_DIE_MSG, " faellt laut scheppernd um.\n");
+ set_living_name("kampfblech");
+}
+
+die()
+{
+ clone_object(OBJ("kampfblech"))->move(environment());
+ ::die();
+}
diff --git a/doc/beispiele/ssp/mon/knochenschaeler.c b/doc/beispiele/ssp/mon/knochenschaeler.c
new file mode 100644
index 0000000..84c1e3b
--- /dev/null
+++ b/doc/beispiele/ssp/mon/knochenschaeler.c
@@ -0,0 +1,43 @@
+#include <properties.h>
+#include <combat.h>
+#include "../files.h"
+
+inherit MMONST;
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_SHORT, "Der Knochenschaeler");
+ SetProp(P_LONG,
+ "Der Knochenschaeler geht um, geht um\n"+
+ "Der Knochenschaeler geht um, geht um\n"+
+ "Sein Messer so lang, wie tausend grosse Zaehne\n"+
+ "Wie tausend grosse Zaehne, sein Messer so lang\n"+
+ "Er schneidet Dich in Stuecke, portionsgerecht und fein\n"+
+ "Er schneidet Dich in Stuecke, und keiner tuts ihm gleich\n"+
+ "Er schaelt die Knochen, er quaelt Deinen Geist\n"+
+ "Er schaelt die Knochen, er quaelt Deinen Geist\n"+
+ "Habet acht, habet acht! Seiet vorsichtig, habet Acht!\n"+
+ "Schau Dich um, schau Dich um\n"+
+ "Schau Dich um, Du wirst der naechste sein\n");
+ SetProp(P_NAME, "Knochenschaeler");
+ SetProp(P_GENDER, 1);
+ AddId(({"schaeler", "knochenschaeler"}));
+ SetProp(P_LEVEL, 18);
+ SetProp(P_MAX_HP, 300);
+ SetProp(P_ALIGN, -789);
+ SetProp(P_HANDS, ({" mit seinem langen Messer", 145}) );
+ SetProp(P_BODY, 110);
+ SetProp(P_XP, 220000);
+ SetProp(P_AGGRESSIVE, 1);
+ SetProp(P_SIZE, 220);
+ set_living_name("knochenschaeler");
+ clone_object(OBJ("schaelmesser"))->move(this_object());
+ command("zuecke messer");
+}
+
+QueryArticle(c, d, f)
+{
+ return ::QueryArticle(c, 1, f);
+}
diff --git a/doc/beispiele/ssp/mon/metallmonster.c b/doc/beispiele/ssp/mon/metallmonster.c
new file mode 100644
index 0000000..5482186
--- /dev/null
+++ b/doc/beispiele/ssp/mon/metallmonster.c
@@ -0,0 +1,28 @@
+inherit "std/npc";
+
+#include <properties.h>
+#include <combat.h>
+#include "../files.h"
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_NOCORPSE, 1);
+ SetProp(P_RACE, "Metallmonster");
+ SetProp(P_DIE_MSG, " zerfaellt in seine Bestandteile.\n");
+ SetProp(P_VULNERABILITY, ({ DT_WATER }));
+}
+
+die()
+{
+ create_blech();
+ ::die();
+}
+
+create_blech()
+{
+ object b;
+ b = clone_object(OBJ("blech"));
+ b->move(environment(this_object()));
+}
diff --git a/doc/beispiele/ssp/mon/ork.c b/doc/beispiele/ssp/mon/ork.c
new file mode 100644
index 0000000..975e596
--- /dev/null
+++ b/doc/beispiele/ssp/mon/ork.c
@@ -0,0 +1,26 @@
+#include <properties.h>
+#include "../files.h"
+
+inherit "std/npc";
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_SHORT, "Ein grimmiger Ork");
+ SetProp(P_LONG, "Der Ork schaut Dich unfreundlich an und wedelt mit seinem Krummschwert.\n");
+ SetProp(P_NAME, "Ork");
+ SetProp(P_GENDER, 1);
+ AddId("ork");
+ SetProp(P_RACE, "Ork");
+ SetProp(P_LEVEL, 10);
+ SetProp(P_MAX_HP, 130);
+ SetProp(P_ALIGN, -250);
+ SetProp(P_XP, 90000);
+ SetProp(P_BODY, 50);
+ SetProp(P_SIZE, random(20)+110);
+ set_living_name("ork");
+ seteuid(getuid(this_object()));
+ AddItem(OBJ("krummschwert"),CLONE_WIELD);
+ AddItem(OBJ("orkhose"),CLONE_WEAR);
+}
diff --git a/doc/beispiele/ssp/mon/orkchef.c b/doc/beispiele/ssp/mon/orkchef.c
new file mode 100644
index 0000000..2d6e6cd
--- /dev/null
+++ b/doc/beispiele/ssp/mon/orkchef.c
@@ -0,0 +1,29 @@
+inherit "std/npc";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_SHORT, "Ein Anfuehrer der Orks");
+ SetProp(P_LONG, "Dies ist ein fetter, stinkender Ork-Haeuptling, der Dir alles \nandere als freundlich gesonnen ist.\n");
+ SetProp(P_NAME, "Ork");
+ SetProp(P_GENDER, 1);
+ AddId(({"ork", "anfuehrer", "haeuptling"}));
+ SetProp(P_RACE, "Ork");
+ SetProp(P_LEVEL, 16);
+ SetProp(P_MAX_HP, 220);
+ SetProp(P_ALIGN, -280);
+ SetProp(P_XP, 160000);
+ SetProp(P_BODY, 60);
+ SetProp(P_SIZE, random(20)+130);
+ set_living_name("orkchef");
+ seteuid(getuid(this_object()));
+ AddItem(OBJ("saebel"),CLONE_WIELD);
+ AddItem(OBJ("orkhose"),CLONE_WEAR);
+ AddItem(OBJ("orkhelm"),CLONE_WEAR);
+}
+
+
diff --git a/doc/beispiele/ssp/mon/stahldrache.c b/doc/beispiele/ssp/mon/stahldrache.c
new file mode 100644
index 0000000..b4efcac
--- /dev/null
+++ b/doc/beispiele/ssp/mon/stahldrache.c
@@ -0,0 +1,39 @@
+#include <properties.h>
+#include <combat.h>
+#include "../files.h"
+
+inherit MMONST;
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_SHORT, "Ein Stahldrache");
+ SetProp(P_LONG,
+ "Der Stahldrache ist ein ernstzunehmender Gegner, gepanzert mit Platten\n"+
+ "aus reinem Stahl ist es schwer, ihm irgendwie Schaden zuzufuegen.\n");
+ SetProp(P_NAME, ({"Stahldrache", "Stahldrachen", "Stahldrachen", "Stahldrachen"}));
+ SetProp(P_GENDER, 1);
+ AddId(({"drache", "stahldrache", "drachen", "stahldrachen"}));
+ SetProp(P_RACE, "Drache");
+ SetProp(P_LEVEL, 20);
+ SetProp(P_MAX_HP, 400);
+ SetProp(P_ALIGN, -250);
+ SetProp(P_HANDS, ({" mit staehlernen Klauen", 150}));
+ SetProp(P_BODY, 130);
+ SetProp(P_XP, 300000);
+ SetProp(P_SIZE, random(50)+250);
+ SetChats(40, ({
+ "Der Stahldrache schnaubt laut.\n",
+ "Der Stahldrache schaut Dich mit staehlernem Blick an.\n",
+ "Der Stahldrache waelzt sich herum.\n",
+ "Der Stahldrache spuckt etwas stahlblaues Feuer.\n",
+ }) );
+ AddSpell(1, 115, "Der Stahldrache spuckt stahlblaues Feuer auf Dich.\n",
+ "Der Stahldrache spuckt stahlblaues Feuer auf @WEN.\n",
+ DT_FIRE);
+ SetProp(P_SPELLRATE,20);
+ clone_object(OBJ("gummistiefel"))->move(this_object());
+ clone_object(OBJ("stahlschwert"))->move(this_object());
+ set_living_name("stahldrache");
+}
diff --git a/doc/beispiele/ssp/mon/titanwalze.c b/doc/beispiele/ssp/mon/titanwalze.c
new file mode 100644
index 0000000..23113e6
--- /dev/null
+++ b/doc/beispiele/ssp/mon/titanwalze.c
@@ -0,0 +1,30 @@
+#include <properties.h>
+#include <combat.h>
+#include "../files.h"
+
+inherit MMONST;
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_SHORT, "Eine Titanwalze");
+ SetProp(P_LONG, "Pass nur auf, dass diese Titanwalze Dir nicht ueber die Zehen rollt.\nBei diesem Gewicht koennte das auesserst unangenehme Folgen haben.\n");
+ SetProp(P_NAME, "Titanwalze");
+ SetProp(P_GENDER, 2);
+ AddId(({"walze", "titanwalze"}));
+ SetProp(P_LEVEL, 14);
+ SetProp(P_MAX_HP, 170);
+ SetProp(P_ALIGN, 120);
+ SetProp(P_XP, 51000);
+ SetProp(P_BODY, 90);
+ SetProp(P_HANDS, ({" mit wuchtigen Schlaegen", 60}));
+ SetProp(P_SIZE, 210);
+ SetProp(P_DIE_MSG, " zerfaellt in ihre Bestandteile.\n");
+ SetAttackChats(30, ({
+ "Die Titanwalze versucht Dich platt zu walzen.\n",
+ "Die Titanwalze macht: Rumpel, polter ...\n",
+ "Die Titanwalze roehrt.\n"}));
+ set_living_name("titanwalze");
+ AddItem(OBJ("titanring"));
+}
diff --git a/doc/beispiele/ssp/mon/troll.c b/doc/beispiele/ssp/mon/troll.c
new file mode 100644
index 0000000..8eb1043
--- /dev/null
+++ b/doc/beispiele/ssp/mon/troll.c
@@ -0,0 +1,28 @@
+#include <properties.h>
+#include "../files.h"
+
+inherit "std/npc";
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_SHORT, "Ein Troll");
+ SetProp(P_LONG, "Ein Troll wie aus dem Bilderbuch: Gross, haesslich und dumm.\n");
+ SetProp(P_NAME, "Troll");
+ SetProp(P_GENDER, 1);
+ SetProp(P_RACE, "Troll");
+ AddId("troll");
+ SetProp(P_LEVEL, 15);
+ SetProp(P_MAX_HP, 200);
+ SetProp(P_ALIGN, -417);
+ SetProp(P_XP, 120000);
+ SetProp(P_BODY, 35);
+ SetProp(P_SIZE, random(40)+199);
+ set_living_name("troll");
+ seteuid(getuid(this_object()));
+ AddItem(OBJ("trolldolch"),CLONE_WIELD);
+ AddItem(OBJ("steinring"),CLONE_WEAR);
+ AddItem(OBJ("lkhemd"),CLONE_WEAR);
+}
+
diff --git a/doc/beispiele/ssp/mon/trollmops.c b/doc/beispiele/ssp/mon/trollmops.c
new file mode 100644
index 0000000..5830796
--- /dev/null
+++ b/doc/beispiele/ssp/mon/trollmops.c
@@ -0,0 +1,31 @@
+#include <properties.h>
+#include "../files.h"
+
+inherit "std/npc";
+
+create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_SHORT, "Ein Trollmops");
+ SetProp(P_LONG,
+ "Dies ist einer der sagenumwobenen, blutruenstigen Trollmoepse. Hervor-\n"+
+ "gegangen aus der misslungenen Kreuzung zwischen einem Troll und einem\n"+
+ "Mops, terrorisieren diese grausamen Bestien jetzt die Welt. Flieh, so-\n"+
+ "lange Du noch kannst.\n");
+ SetProp(P_NAME, "Trollmops");
+ SetProp(P_GENDER, 1);
+ AddId("trollmops");
+ AddId("troll");
+ AddId("mops");
+ SetProp(P_RACE, "Troll");
+ SetProp(P_LEVEL, 20);
+ SetProp(P_MAX_HP, 350);
+ SetProp(P_ALIGN, -735 - random(100));
+ SetProp(P_HANDS, ({" mit blutverschmierten Krallen", 200 +random(10)}));
+ SetProp(P_XP, 350000);
+ SetProp(P_BODY, 140 + random(40));
+ SetProp(P_SIZE, random(20)+105); /* Da sind die Groessen der Eltern drin */
+ set_living_name("trollmops");
+ SetProp(P_AGGRESSIVE, 1);
+}