Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/beispiele/ssp/README b/doc/beispiele/ssp/README
new file mode 100644
index 0000000..bd1cad1
--- /dev/null
+++ b/doc/beispiele/ssp/README
@@ -0,0 +1,3 @@
+Diese Dateien sind nur als Beispiele zu verwenden und nicht in einem
+anderen Mud als dem MorgenGrauen fuer Spieler zugaenglich zu machen.
+  Boing
diff --git a/doc/beispiele/ssp/files.h b/doc/beispiele/ssp/files.h
new file mode 100644
index 0000000..8c5951a
--- /dev/null
+++ b/doc/beispiele/ssp/files.h
@@ -0,0 +1,13 @@
+#define SM(x) ("/doc/beispiele/ssp/"+x)
+#define L1(x) (SM("l1/"+x))
+#define L2(x) (SM("l2/"+x))
+#define L3(x) (SM("l3/"+x))
+#define L4(x) (SM("l4/"+x))
+#define L5(x) (SM("l5/"+x))
+#define L6(x) (SM("l6/"+x))
+#define MON(x) (SM("mon/"+x))
+#define OBJ(x) (SM("obj/"+x))
+
+#define LOG_OBJ "/players/boing/obj/logobj"
+#define PFLANZE "/doc/beispiele/ssp/mon/pflanze"
+#define MMONST "/doc/beispiele/ssp/mon/metallmonster"
diff --git a/doc/beispiele/ssp/l1/m1x1.c b/doc/beispiele/ssp/l1/m1x1.c
new file mode 100644
index 0000000..f954372
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x1.c
@@ -0,0 +1,30 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der Raum ist gefuellt\n"+
+  "mit grau-blauem Rauch, der von dem grossen Drachen stammt, der ihn be-\n"+
+  "wohnt. Es ist sehr warm hier drin und an den Waenden und an der Decke\n"+
+  "kondensiert der Dampf zu kleinen Tropfen. Der einzige Ausgang liegt im\n"+
+  "Osten.\n");
+  AddDetail("raum", "Ein Drache wohnt hier normalerweise.\n");
+  AddDetail(({"drache", "drachen"}), "Er scheint gerade nicht da zu sein.\n");
+  AddDetail("rauch", "Der Rauch zieht zum Ausgang im Osten hinaus.\n");
+  AddDetail(({"wand", "waende", "boden", "decke", "metall", "stahl"}), "Alles hier ist aus reinem Stahl.\n");
+  AddDetail("dampf", "Er kondensiert an den Waenden.\n");
+  AddDetail(({"wasser", "kondenswasser"}), "Es tropft zu Boden.\n");
+  AddDetail("tropfen", "Sie tropfen auf den Boden.\n");
+  AddDetail("ausgang", "Er liegt im Osten.\n");
+  AddItem(MON("stahldrache"), REFRESH_REMOVE);
+  AddExit("osten",L1("m2x1"));
+}
diff --git a/doc/beispiele/ssp/l1/m1x2.c b/doc/beispiele/ssp/l1/m1x2.c
new file mode 100644
index 0000000..c91355a
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x2.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. In dieser gemuetlichen\n"+
+  "Ecke (natuerlich nur fuer Metall liebende Lebewesen) hat sich wohl eine\n"+
+  "der merkwuerdigen Titanwalzen eingenistet, auf jeden Fall ist der Boden\n"+
+  "dermassen plattgewalzt, wie es nur diese Art schaffen kann. Der Gang\n"+
+  "selbst fuehrt hier nach Sueden und Osten.\n");
+  AddDetail("ecke", "Richtig nett hier ...\n");
+  AddDetail(({"wand", "waende", "decke", "metall"}), "Alles hier ist aus Metall.\n");
+  AddDetail(({"walze", "titanwalze"}), "Die Titanwalze scheint gerade nicht daheim zu sein.\n");
+  AddDetail("boden", "Der Boden ist absolut platt.\n");
+  AddDetail("gang", "Ein aus Metall gearbeiteter Gang.\n");
+  AddExit("sueden",L1("m1x3"));
+  AddExit("osten",L1("m2x2"));
+  AddItem(MON("titanwalze"), REFRESH_REMOVE);
+}
diff --git a/doc/beispiele/ssp/l1/m1x3.c b/doc/beispiele/ssp/l1/m1x3.c
new file mode 100644
index 0000000..6093029
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x3.c
@@ -0,0 +1,24 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Eine lange Metallroehre\n"+
+  "fuehrt weiter von Sueden nach Norden und scheint kein Ende zu nehmen. Deine\n"+
+  "Schritte hallen blechern durch die Gaenge und informieren deren Bewohner\n"+
+  "ueber Deine Anwesenheit.\n");
+  AddDetail(({"metallroehre", "roehre", "gang", "gaenge"}), "Du befindest Dich in einer langen Metallroehre.\n");
+  AddDetail("metall", "Das Metall sieht sehr stabil aus.\n");
+  AddDetail(({"boden", "decke", "wand", "waende"}), "Alles ist aus Metall.\n");
+  AddDetail("bewohner", "Hier scheinen keine zu sein.\n");
+  AddExit("norden",L1("m1x2"));
+  AddExit("sueden",L1("m1x4"));
+}
diff --git a/doc/beispiele/ssp/l1/m1x4.c b/doc/beispiele/ssp/l1/m1x4.c
new file mode 100644
index 0000000..a279aad
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x4.c
@@ -0,0 +1,24 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Die Metallroehre, in der\n"+
+  "Du Dich befindest fuehrt von Sueden nach Norden. Auch hier klingt der Boden\n"+
+  "unter Deinen Fuessen recht hohl, es ist wohl wirklich etwas Besonderes\n"+
+  "darunter. Allerdings sind keinerlei Anzeichen fuer einen Zugang zu sehen.\n");
+  AddDetail(({"gang", "roehre", "metallroehre"}), "Der Gang fuehrt nach Norden und Sueden.\n");
+  AddDetail("metall", "Hartes, glaenzendes Metall.\n");
+  AddDetail(({"wand", "waende", "boden", "decke"}), "Alles ist aus Metall.\n");
+  AddDetail("zugang", "Es ist keiner zu sehen.\n");
+  AddExit("norden",L1("m1x3"));
+  AddExit("sueden",L1("m1x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m1x5.c b/doc/beispiele/ssp/l1/m1x5.c
new file mode 100644
index 0000000..694fb6a
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x5.c
@@ -0,0 +1,31 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include <moving.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der voellig mit Metall\n"+
+  "verkleidete Gang macht hier eine Biegung von Osten nach Norden, wo er\n"+
+  "in die schwarze Dunkelheit fuehrt. Deine Schritte hallen hier leicht nach,\n"+
+  "es scheint sich wohl ein Hohlraum unter dem Boden zu befinden.\n");
+  AddDetail("metall", "Es scheint Eisen oder Stahl zu sein.\n");
+  AddDetail(({"eisen", "stahl"}), "Du weisst nicht genau, ob es Eisen oder Stahl ist.\n");
+  AddDetail(({"gang", "roehre"}), "Der Gang macht einen Knick.\n");
+  AddDetail("dunkelheit", "Sie verschlingt alles.\n");
+  AddDetail(({"wand", "waende", "boden", "decke"}), "Alles ist aus Metall.\n");
+  AddDetail("hohlraum", "Du kannst keine Hinweise auf einen Zugang finden.\n");
+  AddDetail("zugang", "Du siehst keinen.\n");
+  AddDetail(({"knick", "biegung"}), "So nennt sich sowas halt ... ich kann nix dafuer!\n");
+  AddItem(MON("kampfblech"), REFRESH_REMOVE);
+  
+  AddExit("norden", L1("m1x4"));
+  AddExit("osten",L1("m2x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m2x1.c b/doc/beispiele/ssp/l1/m2x1.c
new file mode 100644
index 0000000..d4e7ae7
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x1.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Dieser Gang hier ist aus\n"+
+  "reinstem Stahl gefertigt, der in Deinem Licht matt funkelt. Aus einer\n"+
+  "Kammer im Westen dringen Rauchschwaden hervor und ein Schnauben ist zu\n"+
+  "hoeren. Du kannst es allerdings auch vorziehen, nach Sueden dem Unheil\n"+
+  "zu entgehen.\n");
+  AddDetail(({"gang", "gaenge", "roehre", "roehren"}), "Der Gang macht eine Biegung von Sueden nach Westen.\n");
+  AddDetail(({"boden", "decke", "wand", "waende", "metall", "stahl"}), "Alles hier ist aus hartem Stahl.\n");
+  AddDetail("kammer", "Im Westen liegt eine Kammer.\n");
+  AddDetail(({"rauchschwaden", "rauch", "schwaden"}), "Der Rauch zieht durch ein paar Ritzen in der Decke ab.\n");
+  AddDetail(({"ritze", "ritzen"}), "Die Ritzen haben nichts Bemerkenswertes an sich.\n");
+  AddDetail("schnauben", "Von wem wohl das Schnauben kommt?\n");
+  AddExit("westen",L1("m1x1"));
+  AddExit("sueden",L1("m2x2"));
+}
diff --git a/doc/beispiele/ssp/l1/m2x2.c b/doc/beispiele/ssp/l1/m2x2.c
new file mode 100644
index 0000000..8cefccd
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x2.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Hier verzweigt sich der\n"+
+  "Gang in verschiedene Metallroehren, die nach Norden, Sueden und Westen\n"+
+  "fuehren. Ausserdem ist in der Decke ein kleines Loch, durch das eine\n"+
+  "Leiter nach oben fuehrt.\n");
+  AddDetail(({"gang", "gaenge", "metallroehre", "metallroehren", "roehre", "roehren"}), "Gaenge fuehren in die verschiedensten Richtungen.\n");
+  AddDetail(({"wand", "waende", "boden", "metall"}), "Hier ist einfach alles aus Metall.\n");
+  AddDetail("leiter", "Die Leiter fuehrt durch ein Loch in der Decke nach oben.\n");
+  AddDetail(({"loch", "decke"}), "In der Decke ist ein Loch.\n");
+  AddExit("sueden",L1("m2x3"));
+  AddExit("norden",L1("m2x1"));
+  AddExit("westen",L1("m1x2"));
+  AddExit("oben", L1("oben"));
+}
diff --git a/doc/beispiele/ssp/l1/m2x3.c b/doc/beispiele/ssp/l1/m2x3.c
new file mode 100644
index 0000000..f291ac2
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x3.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der Gang, in dem Du\n"+
+  "Dich befindest fuehrt schnurgerade von Norden nach Sueden. Die Waende\n"+
+  "reflektieren das Licht und Deine Schritte erzeugen einen metallischen\n"+
+  "Klang auf dem Boden.\n"); 
+  AddDetail(({"boden", "wand", "waende", "decke", "metall"}), "Alles ist aus Metall.\n");
+  AddDetail("gang", "Er fuehrt nach Norden und Sueden.\n");
+  AddDetail("licht", "Es kommt irgendwoher.\n");
+  AddDetail("schritte", "Wenn Du laeufst, machst Du Schritte, das wusstest Du aber, oder?\n");
+  AddDetail("klang", "Der Klang ist nicht sonderlich interessant, aber zweifellos vorhanden.\n");
+  AddExit("norden",L1("m2x2"));
+  AddExit("sueden",L1("m2x4"));
+  AddItem(MON("dosenoeffner"), REFRESH_REMOVE);
+}
diff --git a/doc/beispiele/ssp/l1/m2x4.c b/doc/beispiele/ssp/l1/m2x4.c
new file mode 100644
index 0000000..674b44e
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x4.c
@@ -0,0 +1,22 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der voellig mit Metall\n"+
+  "ausgeschlagene Gang macht hier einen scharfen Knick von Norden nach Osten\n"+
+  "und verschwindet dort in der Dunkelheit.\n");
+  AddDetail(({"wand", "waende", "boden", "decke", "metall"}), "Alles hier ist aus Metall.\n");
+  AddDetail("gang", "Der Gang fuehrt nach Norden und Osten.\n");
+  AddDetail("dunkelheit", "Du kannst hingehen und schauen, ob sie dann noch da ist.\n");
+  AddExit("norden",L1("m2x3"));
+  AddExit("osten",L1("m3x4"));
+}
diff --git a/doc/beispiele/ssp/l1/m2x5.c b/doc/beispiele/ssp/l1/m2x5.c
new file mode 100644
index 0000000..95b0c3d
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x5.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <rooms.h>
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Die Waende des Ganges,\n"+
+  "der von Osten nach Westen (oder andersrum) verlaeuft, sind mit glaenzendem\n"+
+  "Metall ausgekleidet. Irgendwie kommt Dir diese Umgebung ziemlich seltsam\n"+
+  "vor, aber keine Sorge, es kommt noch viel schlimmer!\n");
+  AddDetail(({"gang", "roehre"}), "Der Gang verlaeuft von Osten nach Westen.\n");
+  AddDetail(({"wand", "waende", "decke", "boden"}), "Alles ist aus glaenzendem Metall.\n");
+  AddDetail("metall", "Das Metall ist an einer Stelle leicht eingedellt.\n");
+  AddDetail(({"delle", "stelle", "beule"}), "Da wollte wohl jemand mit dem Kopf durch die Wand.\n");
+  AddExit("osten",L1("m3x5"));
+  AddExit("westen",L1("m1x5"));
+  AddItem(MON("dosenoeffner"), REFRESH_REMOVE);
+  AddItem(MON("dosenoeffner"), REFRESH_REMOVE);
+}
diff --git a/doc/beispiele/ssp/l1/m3x1.c b/doc/beispiele/ssp/l1/m3x1.c
new file mode 100644
index 0000000..30022f4
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x1.c
@@ -0,0 +1,31 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist am Eingang zum Hoehlenlabyrinth der Schreckensspitze. Etwas Licht\n"+
+  "dringt vom Ausgang im Norden herein, doch im Sueden lauert die pechschwarze\n"+
+  "Dunkelheit.\n");
+  AddDetail("eingang", "Es ist der Eingang zu mehr, als Du denkst.\n");
+  AddDetail("boden", "Der Boden besteht aus grauem Fels.\n");
+  AddDetail("fels", "Der Fels ist nicht besonders interessant, nur grau.\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind von Orkblut beschmutzt.\n");
+  AddDetail(({"orkblut", "blut"}), "Orks werden hier wohl zum Spass gemetzelt.\n");
+  AddDetail("decke", "Ueber Deinem Kopf, das wird Dir hier noch oefters passieren.\n");
+  AddDetail(({"hoehlenlabyrinth", "labyrinth", "hoehlen"}), "Diese Labyrinth erstreckt sich ueber etliche Ebenen, viel Spass beim\nErkunden.\n");
+  AddDetail("licht", "Das letzte Tageslicht.\n");
+  AddDetail("ausgang", "Der Ausgang aus der Dunkelheit.\n");
+  AddDetail("dunkelheit", "Das wird Dir dort unten noch oefters begegnen.\n");
+  AddItem(MON("ork"), REFRESH_REMOVE);
+  AddItem(MON("ork"), REFRESH_REMOVE);
+  AddExit("norden", "/d/gebirge/room/spitze4");
+  AddExit("sueden",L1("m3x2"));
+}
diff --git a/doc/beispiele/ssp/l1/m3x2.c b/doc/beispiele/ssp/l1/m3x2.c
new file mode 100644
index 0000000..d913527
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x2.c
@@ -0,0 +1,29 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Ein schmaler Gang, der\n"+
+  "von Norden nach Sueden fuehrt, ist hier durch den harten Fels gehauen.\n"+
+  "Der Gang ist nur grob behauen, ein Zeichen dafuer, dass hier nicht Zwerge\n"+
+  "am Werk waren, sondern boese Wesen, wahrscheinlich Orks.\n");
+  AddDetail("fels", "Der Fels ist hart und nur grob behauen.\n");
+  AddDetail(({"gang", "gaenge"}), "Der Gang fuehrt von Norden nach Sueden.\n");
+  AddDetail("boden", "Auf dem Boden siehst Du zahlreiche Ueberreste von Abenteurern, die nicht\nvorsichtig genug waren.\n");
+  AddDetail(({"rest", "ueberrest", "reste", "ueberreste", "abenteurer"}),
+  "Uhoh ... blutige Sache ...\n");
+  AddDetail("blut", "Weia ...\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind aus Fels und nicht sonderlich interessant.\n");
+  AddDetail("decke", "Wenn Du ueberlegst, was da alles ueber Deinem Kopf schwebt ... ohoh!\n");
+  AddDetail(({"ork", "orks"}), "Davon hat es sicher einige in der Naehe.\n");
+  AddDetail(({"zwerg", "zwerge"}), "Zwerge haben hiermit nichts zu tun!\n");
+  AddExit("sueden",L1("m3x3"));
+  AddExit("norden",L1("m3x1"));
+}
diff --git a/doc/beispiele/ssp/l1/m3x3.c b/doc/beispiele/ssp/l1/m3x3.c
new file mode 100644
index 0000000..f84fce5
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x3.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der schmale Gang macht\n"+
+  "hier eine Biegung von Norden nach Osten, wo er jeweils in die Dunkelheit\n"+
+  "fuehrt.\n");
+  AddDetail("gang", "Der Gang macht eine Biegung.\n");
+  AddDetail("dunkelheit", "Schwarze Dunkelheit.\n");
+  AddDetail("boden", "Auf dem Boden ist nichts Besonderes zu sehen.\n");
+  AddDetail("decke", "Die Decke ist total langweilig.\n");
+  AddDetail(({"wand", "waende"}), "An der Wand haengt eine Hand.\n");
+  AddDetail("hand", "Ach nee, hat sich nur gereimt.\n");
+  AddDetail("biegung", "Sie fuehrt nach Norden und Osten.\n");
+  AddExit("norden",L1("m3x2"));
+  AddExit("osten",L1("m4x3"));
+  AddItem(MON("ork"), REFRESH_REMOVE);
+}
diff --git a/doc/beispiele/ssp/l1/m3x4.c b/doc/beispiele/ssp/l1/m3x4.c
new file mode 100644
index 0000000..549492a
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x4.c
@@ -0,0 +1,39 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include <moving.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Metallbeschlagene Waende\n"+
+  "umringen Dich im Norden, Osten und Sueden waehrend ein roehrenartiger Gang\n"+
+  "nach Westen fuehrt. Ausserdem befindet sich im Boden ein Loch, durch das\n"+
+  "eine Leiter nach unten fuehrt.\n");
+  AddDetail("loch", "Was einen da unten wohl erwarten mag?\n");
+  AddDetail("leiter", "Die Leiter fuehrt nach unten.\n");
+  AddDetail("boden", "Im Boden ist ein Loch.\n");
+  AddDetail(({"wand", "waende", "decke", "metall"}), "Alles ist aus Metall.\n");
+  AddDetail(({"roehre", "gang"}), "Der Gang fuehrt nach Westen.\n");
+  AddItem(MON("titanwalze"), REFRESH_REMOVE);
+  AddExit("westen",L1("m2x4"));
+  AddSpecialExit("unten", "unten");
+}
+
+unten()
+{
+  if (present("titanwalze"))
+  {
+    write("Die Titanwalze laesst Dich nicht vorbei.\n");
+    return 1;
+  }
+  this_player()->move(L2("m3x4"), M_GO, "nach unten");
+  this_player()->SetProp("boing:drom_marker", 1);
+  return 1;
+}
diff --git a/doc/beispiele/ssp/l1/m3x5.c b/doc/beispiele/ssp/l1/m3x5.c
new file mode 100644
index 0000000..69c58fa
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x5.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der roehrenartige Gang\n"+
+  "fuehrt von Osten nach Westen durch die Dunkelheit, nur hier glaenzt das\n"+
+  "Metall in Deinem Licht.\n");
+  AddDetail(({"gang", "roehre"}), "Wer wohl diesen Gang angelegt hat?\n");
+  AddDetail("dunkelheit", "Du kannst sie nicht erreichen, solange Du Dein Licht an laesst.\n");
+  AddDetail("metall", "Alles hier ist aus blankem Metall.\n");
+  AddDetail("boden", "Ziemlich uninteressant.\n");
+  AddDetail(({"wand", "waende"}), "Hey! Da ist eine Inschrift!\n");
+  AddDetail("inschrift", "Das ist etwas, was man lesen kann.\n");
+  AddReadDetail("inschrift", "Du liest: Boing war hier.\n");
+  AddDetail("decke", "Ist sie nicht huebsch?\n");
+  AddExit("osten",L1("m4x5"));
+  AddExit("westen",L1("m2x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m4x1.c b/doc/beispiele/ssp/l1/m4x1.c
new file mode 100644
index 0000000..a64351e
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x1.c
@@ -0,0 +1,38 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Du hast die Hoehle eines\n"+
+  "schrecklichen Untiers erreicht. Der Gestank ist wirklich grauenerregend\n"+
+  "und der Anblick rumliegender Knochen und halb verwester Koerperteile von\n"+
+  "armen Opfern tut sein Uebriges, um Dir den Appetit zu verderben. Der\n"+
+  "einzige Ausgang aus diesem Loch befindet sich im Osten.\n");
+  AddDetail(({"hoehle", "loch"}), "Ein uebles Loch, in das Du hier geraten bist.\n");
+  AddDetail("gestank", "Dir wird beinahe schlecht.\n");
+  AddDetail(({"teile", "koerperteile"}), "Buah, das ist ja widerlich.\n");
+  AddDetail("ausgang", "Der Ausgang ist im Osten.\n");
+  AddSpecialDetail("knochen", "knochen");
+  AddDetail(({"wand", "waende"}), "Die Waende sind langweilig und grau.\n");
+  AddDetail("decke", "Die Decke ist uninteressant.\n");
+  AddDetail("boden", "Die verwesenden Koerperteile auf dem Boden sind kein schoener Anblick.\n");
+  AddExit("osten",L1("m5x1"));
+  AddItem(MON("trollmops"), REFRESH_REMOVE);
+}
+
+knochen()
+{
+   if (present("trollmops"))
+      return "Der Trollmops laesst nicht zu, dass Du sein Abendessen durchwuehlst.\n";
+
+   if (this_player()->FindPotion("Du wuehlst in den Knochen herum und findest einen Zaubertrank.\n"))
+      return "";
+   return "Du wuehlst in den Knochen herum, findest aber nichts.\n";
+}
diff --git a/doc/beispiele/ssp/l1/m4x2.c b/doc/beispiele/ssp/l1/m4x2.c
new file mode 100644
index 0000000..1456ef2
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x2.c
@@ -0,0 +1,41 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Das hier scheint wohl\n"+
+  "der Aufenthaltsraum von ein paar stinkenden Trollen zu sein. Eine Menge\n"+
+  "alter Knochen liegen auf dem Boden rum und in der Ecke stinkt ein grosser\n"+
+  "Haufen Trollkot vor sich hin. Alles in allem kein gemuetlicher Ort,\n"+
+  "vielleicht solltest Du ihn nach Sueden verlassen.\n");
+  AddDetail("knochen", "Die Knochen wurden von Trollen abgenagt.\n");
+  AddDetail("boden", "Auf dem Boden liegen Knochen.\n");
+  AddDetail("decke", "Die Decke hier ist nicht so grauenhaft interessant, ich wette es wird\ninteressanter, wenn Du ein paar Ebenen tiefer vordringst.\n");
+  AddDetail(({"ebene", "ebenen"}), "Tja, wenn Du wuesstest wieviele Hohlraeume sich unter Dir befinden, dann\nwuerdest Du hier nicht so ruhig stehen.\n");
+  AddDetail(({"hohlraum", "hohlraeume"}), "Erkunde sie! Sofort!\n");
+  AddDetail(({"wand", "waende"}), "Sie sind verschmiert und ekelhaft.\n");
+  AddDetail("troll", "Keiner da! Aetschbaetsch!\n");
+  AddDetail("ecke", "Wuerg!\n");
+  AddDetail(({"trollkot", "kot", "haufen"}), "Igitt! Das stinkt ja erbaermlich.\n");
+  AddExit("sueden",L1("m4x3"));
+  AddItem(MON("troll"), REFRESH_REMOVE);
+  AddItem(MON("troll"), REFRESH_REMOVE);
+  AddCmd("erkunde", "erkunden");
+}
+
+erkunden(str)
+{ 
+   notify_fail("Was moechtest Du erkunden?\n");
+   if (!str || (str!="hohlraum" && str !="hohlraeume"))
+      return 0;
+   write("Also ein bisschen mehr musst Du da schon fuer tun.\n");
+   return 1;
+}
diff --git a/doc/beispiele/ssp/l1/m4x3.c b/doc/beispiele/ssp/l1/m4x3.c
new file mode 100644
index 0000000..37472a9
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x3.c
@@ -0,0 +1,31 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der durch den harten\n"+
+  "Fels gehauene Gang verzweigt sich hier nach Norden, Osten und Westen.\n"+
+  "Du stellst fest, dass vom Norden her ein ziemlich unangenehmer Geruch\n"+
+  "kommt.\n");
+  AddDetail("fels", "Der Fels wurde von Orks oder Trollen bearbeitet, und das ziemlich schlecht.\n");
+  AddDetail(({"gang", "gaenge"}), "Der Gang verzweigt sich hier.\n");
+  AddDetail("geruch", "Man koennte es auch Gestank nennen.\n");
+  AddDetail("gestank", "Wenn der Himmel hier sichtbar waere, wuerde es zu ihm stinken.\n");
+  AddDetail("boden", "Auf dem Boden findest Du nichts von Bedeutung.\n");
+  AddDetail("decke", "Grauer Fels.\n");
+  AddDetail(({"wand", "waende"}), "An der Wand siehst Du eine Inschrift.\n");
+  AddDetail("inschrift", "Du kannst sie lesen.\n");
+  AddReadDetail("inschrift", "Du liest: Nicht alles, was man nicht sieht, ist auch wichtig.\n");
+  AddDetail(({"orks", "trolle"}), "Die laufen hier irgendwo rum ... oder liegen tot in der Ecke.\n");
+  AddDetail("ecke", "In dieser Ecke sind jedenfalls keine.\n");
+  AddExit("norden",L1("m4x2"));
+  AddExit("osten",L1("m5x3"));
+  AddExit("westen",L1("m3x3"));
+}
diff --git a/doc/beispiele/ssp/l1/m4x4.c b/doc/beispiele/ssp/l1/m4x4.c
new file mode 100644
index 0000000..be0485f
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x4.c
@@ -0,0 +1,28 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Dies ist zweifellos die\n"+
+  "Heimat eines der beruechtigten Eisenfresser, die Waende sehen auch schon\n"+
+  "ganz zernagt aus. Der einzige Ausgang fuehrt nach Sueden.\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind aus reinem Eisen und wurden von einem Eisenfresser schon\nziemlich stark misshandelt.\n");
+  AddDetail("boden", "Der Boden ist aus Metall und funkelt im Licht. Solltest Du natuerlich Nacht-\nsicht haben, dann funkelt es nur in Deiner Einbildung.\n");
+  AddDetail("decke", "Die Decke hat eine gewaltige Last zu tragen.\n");
+  AddDetail("last", "Frag mich nicht wieviele Tonnen Gestein sich ueber Dir befinden.\n");
+  AddDetail("gestein", "Sowas gibt es im Gebirge, wenn es auch hier nicht so offensichtlich ist.\n");
+  AddDetail("gebirge", "Ach hoer doch auf ...\n");
+  AddDetail("eisenfresser", "Der hat sich wohl zu Tode gefressen.\n");
+  AddDetail(({"metall", "eisen"}), "Es glaenzt matt.\n");
+  AddDetail("ausgang", "Er liegt im Sueden.\n");
+  AddItem(MON("eisenfresser"), REFRESH_REMOVE);
+  AddExit("sueden",L1("m4x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m4x5.c b/doc/beispiele/ssp/l1/m4x5.c
new file mode 100644
index 0000000..d64774b
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x5.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Die metallischen Roehren\n"+
+  "verzweigen sich hier nach Norden, Osten und Westen. Im Norden scheint etwas\n"+
+  "Unangenehmes zu lauern, merkwuerdige Geraeusche dringen von dort hierher.\n");
+  AddDetail(({"wand", "waende", "roehre", "roehren", "gaenge", "gang"}), "Die Gaenge sind voellig mit Metall ausgekleidet.\n");
+  AddDetail("metall", "Das Metall glaenzt silbern.\n");
+  AddDetail("unangenehmes", "Wer weiss, was sich dort verbirgt ...\n");
+  AddDetail("boden", "Du bist froh, dass es hier einen Boden gibt, sonst wuerdest Du tief fallen.\n");
+  AddDetail("decke", "Die Decke ist metallisch und glaenzt.\n");
+  AddDetail(({"geraeusch", "geraeusche"}), "Es quietscht.\n");
+  AddExit("norden",L1("m4x4"));
+  AddExit("osten",L1("m5x5"));
+  AddExit("westen",L1("m3x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m5x1.c b/doc/beispiele/ssp/l1/m5x1.c
new file mode 100644
index 0000000..5865a91
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x1.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der grob behauene Gang\n"+
+  "macht hier eine Biegung von Sueden nach Westen, wo er in einem schwarzen\n"+
+  "Loch verschwindet, aus dem ein fuerchterlicher Gestank dringt.\n"); 
+  AddDetail("gang", "Der Gang fuehrt in die Dunkelheit.\n");
+  AddDetail("dunkelheit", "Schwarze, lichtlose Dunkelheit.\n");
+  AddDetail("loch", "Hier lauert irgend etwas Schreckliches.\n");
+  AddDetail("gestank", "Der Gestank ist wirklich grauenhaft.\n");
+  AddDetail("boden", "Hoppla, hier liegen Fleischfetzen rum, im Westen scheint wohl was zu wueten.\n");
+  AddDetail(({"fleischfetzen", "fetzen", "fleisch"}), "Ist ja eklig!\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind verschmiert.\n");
+  AddDetail("decke", "Gaehn.\n");
+  AddExit("westen",L1("m4x1"));
+  AddExit("sueden",L1("m5x2"));
+}
diff --git a/doc/beispiele/ssp/l1/m5x2.c b/doc/beispiele/ssp/l1/m5x2.c
new file mode 100644
index 0000000..75f6a5f
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x2.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Ein mit roher Gewalt in\n"+
+  "den Fels genagter Gang fuehrt von Sueden nach Norden. Du spuerst, dass\n"+
+  "hinter jeder Ecke Orks oder anderes uebles Gezuecht lauern koennen.\n");
+  AddDetail(({"gang", "gaenge"}), "Der Gang fuehrt von Sueden nach Norden.\n");
+  AddDetail("fels", "Es ist ein harter Fels, der von boesen Wesen durchbohrt wurde.\n");
+  AddDetail(({"ork", "orks", "gezuecht"}), "Momentan siehst Du keine Orks, aber das kann sich ja schnell aendern.\n");
+  AddDetail("boden", "Blanker Fels.\n");
+  AddDetail("fels", "Das wird allmaehlich langweilig.\n");
+  AddDetail("decke", "An der Decke haengt eine bunte Girlande.\n");
+  AddDetail("girlande", "Wer die wohl da aufgehaengt hat?\n");
+  AddDetail(({"wand", "waende"}), "Da gibt es nichts interessantes zu sehen.\n");
+  AddExit("norden",L1("m5x1"));
+  AddExit("sueden",L1("m5x3"));
+}
diff --git a/doc/beispiele/ssp/l1/m5x3.c b/doc/beispiele/ssp/l1/m5x3.c
new file mode 100644
index 0000000..b7d4ce7
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x3.c
@@ -0,0 +1,32 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <moving.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Dunkle Gaenge fuehren\n"+
+  "nach Norden, Sueden und Westen. Der suedliche Gang ist etwas merkwuerdig,\n"+
+  "denn sein Eingang ist mit glaenzendem Metall seltsam beschlagen.\n");
+  AddDetail(({"felsboden", "boden"}), "Der blanke Felsboden geht im Sueden in Metall ueber.\n");
+  AddDetail(({"gang", "gaenge"}), "Es sind Gaenge der Orks.\n");
+  AddDetail("eingang", "Im Sueden glaenzen die Waende, die mit Metall beschlagen sind.\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind da ... wie immer.\n");
+  AddDetail("decke", "Die Decke ist nicht interessant.\n");
+  AddDetail("fels", "Grauer Fels.\n");
+  AddDetail("metall", "Es scheint Eisen zu sein.\n");
+  AddDetail("eisen", "Ja, zweifellos, es ist Eisen.\n");
+  AddExit("westen",L1("m4x3"));
+  AddExit("norden",L1("m5x2"));
+  AddExit("sueden",L1("m5x4"));
+
+  AddItem(MON("orkchef"), REFRESH_REMOVE);
+}
+
diff --git a/doc/beispiele/ssp/l1/m5x4.c b/doc/beispiele/ssp/l1/m5x4.c
new file mode 100644
index 0000000..b95d15e
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x4.c
@@ -0,0 +1,25 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der Gang, der hier von\n"+
+  "Norden nach Sueden fuehrt, aehnelt mehr einer Roehre, denn alles ist voll-\n"+
+  "staendig aus einem glaenzenden Metall. Du fragst Dich, wer wohl diese\n"+
+  "Gaenge angelegt hat.\n");
+  AddDetail(({"gang", "gaenge", "roehre", "rohr"}), "Die Gaenge sind voellig mit Metall ausgekleidet.\n");
+  AddDetail("metall", "Das Metall glaenzt silbern.\n");
+  AddDetail(({"wand", "waende"}), "Die Waende glaenzen silbern.\n");
+  AddDetail("boden", "Sei froh, dass er da ist.\n");
+  AddDetail("decke", "Die Decke ist wirklich ziemlich langweilig.\n");
+  AddExit("norden",L1("m5x3"));
+  AddExit("sueden",L1("m5x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m5x5.c b/doc/beispiele/ssp/l1/m5x5.c
new file mode 100644
index 0000000..4f99ba1
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x5.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Eigentlich koennte man\n"+
+  "es auch fast Roehrenlabyrinth nennen, denn Du befindest Dich in einer\n"+
+  "solchen, die hier eine Biegung von Norden nach Westen macht. Die Waende\n"+
+  "sind aus einem glaenzenden Metall gefertigt, was Dir ziemlich merkwuerdig\n"+
+  "vorkommt.\n");
+  AddDetail(({"wand", "waende", "roehre", "roehren", "gaenge", "gang"}), "Die Gaenge sind voellig mit Metall ausgekleidet.\n");
+  AddDetail("metall", "Das Metall glaenzt silbern.\n");
+  AddDetail("boden", "Der Boden ist aus Metall.\n");
+  AddDetail("decke", "Selbst die Decke glaenzt metallisch, Du fragst Dich, wer das angelegt hat.\n");
+  AddDetail("biegung", "Die Biegung fuehrt von Norden nach Westen.\n");
+  AddItem(MON("kampfblech"), REFRESH_REMOVE);
+  AddExit("norden",L1("m5x4"));
+  AddExit("westen",L1("m4x5"));
+}
diff --git a/doc/beispiele/ssp/l1/oben.c b/doc/beispiele/ssp/l1/oben.c
new file mode 100644
index 0000000..f3bc039
--- /dev/null
+++ b/doc/beispiele/ssp/l1/oben.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+ 
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+ 
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Beim Knochenschaeler");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Dieser kleine Raum ist\n"+
+  "die Heimat eines fuerchterlichen Ungeheuers, die Heimat des schrecklichen\n"+
+  "Knochenschaelers. Im Boden des Raums ist ein kleines Loch, durch das eine\n"+
+  "Leiter nach unten fuehrt.\n");
+  AddDetail("raum", "Der Raum ist ziemlich klein.\n");
+  AddDetail(({"wand", "decke", "waende", "metall"}), "Alles ist aus Metall.\n");
+  AddDetail(({"boden", "loch"}), "Im Boden ist ein Loch, durch das eine Leiter nach unten fuehrt.\n");
+  AddDetail("leiter", "Die Leiter fuehrt nach unten.\n");
+  AddDetail("ungeheuer", "Der Knochenschaeler ist einfach fuerchterlich.\n");
+  AddDetail("knochenschaeler", "Zum Glueck ist er gerade nicht daheim.\n");
+  AddItem(MON("knochenschaeler"), REFRESH_REMOVE);
+  AddExit("unten", L1("m2x2"));
+}
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);
+}
diff --git a/doc/beispiele/ssp/obj/blech.c b/doc/beispiele/ssp/obj/blech.c
new file mode 100644
index 0000000..5c5c2ec
--- /dev/null
+++ b/doc/beispiele/ssp/obj/blech.c
@@ -0,0 +1,16 @@
+#include <properties.h>
+
+inherit "/std/thing";
+
+create() {
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein altes Blech");
+  SetProp(P_LONG, "Das sind die Ueberreste eines Metallmonsters.\n");
+  SetProp(P_NAME, "Blech");
+  SetProp(P_GENDER, 0);
+  AddId("blech");
+  AddAdjective(({"alt", "altes"}));
+  SetProp(P_WEIGHT, 1100);
+  SetProp(P_VALUE, random(QueryProp(P_MAX_HP))+100);
+}
diff --git a/doc/beispiele/ssp/obj/eisenklumpen.c b/doc/beispiele/ssp/obj/eisenklumpen.c
new file mode 100644
index 0000000..bac122b
--- /dev/null
+++ b/doc/beispiele/ssp/obj/eisenklumpen.c
@@ -0,0 +1,16 @@
+#include <properties.h>
+
+inherit "/std/thing";
+
+create() {
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein Klumpen Eisen");
+  SetProp(P_LONG, "Sieht aus, als haette da schon jemand dran rumgenagt. Derjenige muss\naber sehr stabile Zaehne gehabt haben.\n");
+  SetProp(P_NAME, "Klumpen");
+  SetProp(P_GENDER, 1);
+  AddId(({"klumpen", "eisen", "klumpen eisen"}));
+  SetProp(P_MATERIAL, MAT_IRON);
+  SetProp(P_WEIGHT, 2438);
+  SetProp(P_VALUE, random(750));
+}
diff --git a/doc/beispiele/ssp/obj/gummistiefel.c b/doc/beispiele/ssp/obj/gummistiefel.c
new file mode 100644
index 0000000..ea4728e
--- /dev/null
+++ b/doc/beispiele/ssp/obj/gummistiefel.c
@@ -0,0 +1,37 @@
+#include <properties.h>
+#include <language.h>
+#include <combat.h>
+#include "../files.h"
+ 
+inherit "std/armour";
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+   ::create();
+   SetProp(P_SHORT, "Ein Paar Gummistiefel");
+   SetProp(P_LONG, "Damit bekommt man sicher keine nassen Fuesse.\n");
+   SetProp(P_NAME, "Paar Gummistiefel");
+   SetProp(P_GENDER, 0);
+   AddId(({"stiefel", "gummistiefel", "paar", "paar stiefel"}));
+   SetProp(P_ARMOUR_TYPE, AT_BOOT);
+   SetProp(P_AC, 0);
+   SetProp(P_WEIGHT, 700);
+   SetProp(P_VALUE, 120);
+   SetProp(P_REMOVE_FUNC, this_object());
+}
+
+RemoveFunc()
+{
+   object env;
+   if ((env=environment(QueryProp(P_WORN)))==find_object(L2("m2x1")) ||
+       env==find_object(L2("m1x1")))
+   {
+      write("Das waere keine so tolle Idee hier die Gummistiefel auszuziehen.\n");
+      return 0;
+   }
+   return 1;
+}
+       
+
+
diff --git a/doc/beispiele/ssp/obj/kampfblech.c b/doc/beispiele/ssp/obj/kampfblech.c
new file mode 100644
index 0000000..63c953a
--- /dev/null
+++ b/doc/beispiele/ssp/obj/kampfblech.c
@@ -0,0 +1,22 @@
+#include <properties.h>
+#include <combat.h>
+inherit "std/armour";
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein totes Kampfblech");
+  SetProp(P_LONG, "Sieht aus wie ein normales Kampfblech, nur tot. Ausserdem ueberrascht Dich der merkwuerdige Griff.\n");
+  SetProp(P_NAME, "Kampfblech");
+  SetProp(P_NAME_ADJ, "tot");
+  SetProp(P_GENDER, 0);
+  SetProp(P_ARMOUR_TYPE, AT_SHIELD);
+  SetProp(P_AC, 12);
+  SetProp(P_WEIGHT, 850);
+  SetProp(P_VALUE, 420);
+  SetProp(P_MATERIAL, MAT_MISC_METAL);
+  SetProp(P_INFO, "Ziemlicher Schwachsinn dieses Objekt, oder nicht?\n");
+  AddId(({"schild", "blech", "kampfblech", "totes kampfblech"}));
+  AddDetail("griff", "Mit Hilfe des Griffs kannst Du das tote Kampfblech als Schild benutzen.\n");
+}
diff --git a/doc/beispiele/ssp/obj/krummschwert.c b/doc/beispiele/ssp/obj/krummschwert.c
new file mode 100644
index 0000000..659ff02
--- /dev/null
+++ b/doc/beispiele/ssp/obj/krummschwert.c
@@ -0,0 +1,22 @@
+#include <properties.h>
+#include <combat.h>
+inherit "std/weapon";
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein Krummschwert");
+  SetProp(P_LONG, "Das Krummschwert sieht aus, als haette es einmal einem Ork gehoert.\n");
+  SetProp(P_NAME, "Krummschwert");
+  SetProp(P_GENDER, 0);
+  SetProp(P_WC, 130 + random(15));
+  SetProp(P_VALUE, 1200 + random(200));
+  SetProp(P_WEIGHT, 1100 + random(100));
+  SetProp(P_WEAPON_TYPE, WT_SWORD);
+  SetProp(P_DAM_TYPE, DT_SLASH);
+  SetProp(P_NR_HANDS, 1);
+  SetProp(P_MATERIAL, MAT_MISC_METAL);
+  AddId("schwert");
+  AddId("krummschwert");
+}
diff --git a/doc/beispiele/ssp/obj/lkhemd.c b/doc/beispiele/ssp/obj/lkhemd.c
new file mode 100644
index 0000000..5c381bc
--- /dev/null
+++ b/doc/beispiele/ssp/obj/lkhemd.c
@@ -0,0 +1,19 @@
+#include <properties.h>
+#include <combat.h>
+inherit "std/armour";
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein leichtes Kettenhemd");
+  SetProp(P_LONG, "Ein nicht sonderlich gut gearbeitetes Kettenhemd. Anziehen kann man\nes aber trotzdem.\n");
+  SetProp(P_NAME, "Kettenhemd");
+  SetProp(P_GENDER, 0);
+  SetProp(P_ARMOUR_TYPE, AT_ARMOUR);
+  SetProp(P_AC, 18);
+  SetProp(P_WEIGHT, 1700);
+  SetProp(P_VALUE, 1200 +random(100));
+  SetProp(P_MATERIAL, MAT_MISC_METAL);
+  AddId(({"kettenhemd", "hemd"}));
+}
diff --git a/doc/beispiele/ssp/obj/orkhelm.c b/doc/beispiele/ssp/obj/orkhelm.c
new file mode 100644
index 0000000..36d6a8b
--- /dev/null
+++ b/doc/beispiele/ssp/obj/orkhelm.c
@@ -0,0 +1,20 @@
+inherit "std/armour";
+ 
+#include <properties.h>                    
+#include <combat.h>
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein Orkhelm");
+  SetProp(P_LONG, "Ein stabiler Helm, der schon ausgiebig von einem stinkenden Ork\ngetragen wurde.\n");
+  SetProp(P_NAME, "Orkhelm");
+  SetProp(P_GENDER, 1);
+  SetProp(P_ARMOUR_TYPE, AT_HELMET);
+  SetProp(P_AC, 7);
+  SetProp(P_WEIGHT, 450);
+  SetProp(P_VALUE, 350);
+  SetProp(P_MATERIAL, ([MAT_MISC_METAL:95, MAT_SLIME:5]));
+  AddId(({"helm", "orkhelm"}));
+}
diff --git a/doc/beispiele/ssp/obj/orkhose.c b/doc/beispiele/ssp/obj/orkhose.c
new file mode 100644
index 0000000..8ba0056
--- /dev/null
+++ b/doc/beispiele/ssp/obj/orkhose.c
@@ -0,0 +1,19 @@
+#include <properties.h>
+#include <combat.h>
+inherit "std/armour";
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Eine Orkhose");
+  SetProp(P_LONG, "Die Beinbekleidung von Orks.\n");
+  SetProp(P_NAME, "Hose");
+  SetProp(P_GENDER, 2);
+  SetProp(P_ARMOUR_TYPE, AT_TROUSERS);
+  SetProp(P_AC, 7);
+  SetProp(P_WEIGHT, 555);
+  SetProp(P_VALUE, 480 + random(40));
+  SetProp(P_MATERIAL, ([MAT_CLOTH:99, MAT_SHIT:1]));
+  AddId(({"hose", "hosen", "orkhose", "orkhosen"}));
+}
diff --git a/doc/beispiele/ssp/obj/saebel.c b/doc/beispiele/ssp/obj/saebel.c
new file mode 100644
index 0000000..3aec958
--- /dev/null
+++ b/doc/beispiele/ssp/obj/saebel.c
@@ -0,0 +1,23 @@
+inherit "std/weapon";
+
+#include <properties.h>                    
+#include <combat.h>
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein schartiger Saebel");
+  SetProp(P_LONG, "Der Saebel ist schartig, koennte aber trotzdem recht brauchbar sein.\n");
+  SetProp(P_NAME, "Saebel"); 
+  SetProp(P_GENDER, 1);
+  SetProp(P_WC, 144);
+  SetProp(P_VALUE, 1525);
+  SetProp(P_WEIGHT, 1264);
+  SetProp(P_WEAPON_TYPE, WT_SWORD);
+  SetProp(P_DAM_TYPE, DT_SLASH);
+  SetProp(P_NR_HANDS, 1);
+  SetProp(P_MATERIAL, MAT_MISC_METAL);
+  AddId("saebel");
+  AddAdjective(({"schartig", "schartiger", "schartigen"}));
+}
diff --git a/doc/beispiele/ssp/obj/schaelmesser.c b/doc/beispiele/ssp/obj/schaelmesser.c
new file mode 100644
index 0000000..2b0b686
--- /dev/null
+++ b/doc/beispiele/ssp/obj/schaelmesser.c
@@ -0,0 +1,25 @@
+inherit "std/weapon";
+
+#include <combat.h>
+#include <properties.h>
+
+create()
+{
+  if (!clonep(this_object())) return;
+   ::create();
+   SetProp(P_SHORT, "Ein Knochenschaelmesser");
+   SetProp(P_LONG, 
+	   "Ein Messer so lang, wie tausend grosse Zaehne\n"+
+	   "Wie tausend grosse Zaehne, ein Messer so lang\n"+
+	   "So lang, wie tausend grosse, grosse Zaehne\n");
+   SetProp(P_NAME, "Knochenschaelmesser");
+   SetProp(P_GENDER, 0);
+   AddId(({"knochenschaelmesser", "schaelmesser", "messer"}));
+   SetProp(P_WC, 145);
+   SetProp(P_NR_HANDS, 1),
+   SetProp(P_WEAPON_TYPE, WT_KNIFE);
+   SetProp(P_DAM_TYPE, DT_SLASH);
+   SetProp(P_VALUE, 1610);
+   SetProp(P_WEIGHT, 1150);
+   SetProp(P_MATERIAL, MAT_MISC_METAL);
+}
diff --git a/doc/beispiele/ssp/obj/stahlschwert.c b/doc/beispiele/ssp/obj/stahlschwert.c
new file mode 100644
index 0000000..4446898
--- /dev/null
+++ b/doc/beispiele/ssp/obj/stahlschwert.c
@@ -0,0 +1,21 @@
+#include <properties.h>
+#include <combat.h>
+inherit "std/weapon";
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein Stahlschwert");
+  SetProp(P_LONG, "Dieses Schwert hat eine Klinge aus reinem Stahl, mit der man seine Gegner\nwohl ziemlich gut niedermachen kann. Das Schwert ist recht schwer und\nlaesst sich nur mit zwei Haenden fuehren.\n");
+  SetProp(P_NAME, "Stahlschwert");
+  SetProp(P_GENDER, 0);
+  SetProp(P_WC, 175);
+  SetProp(P_VALUE, 1750 + random(100));
+  SetProp(P_WEIGHT, 2926);
+  SetProp(P_WEAPON_TYPE, WT_SWORD);
+  SetProp(P_DAM_TYPE, DT_SLASH);
+  SetProp(P_NR_HANDS, 2);
+  SetProp(P_MATERIAL, MAT_STEEL);
+  AddId(({"schwert", "stahlschwert", "\nsspstahlschwert"}));
+}
diff --git a/doc/beispiele/ssp/obj/steinring.c b/doc/beispiele/ssp/obj/steinring.c
new file mode 100644
index 0000000..5da09a7
--- /dev/null
+++ b/doc/beispiele/ssp/obj/steinring.c
@@ -0,0 +1,19 @@
+#include <properties.h>
+#include <combat.h>
+inherit "std/armour";
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein Steinring");
+  SetProp(P_LONG, "Ein kleiner Ring, voellig aus einem grauen Stein.\n");
+  SetProp(P_NAME, "Steinring");
+  SetProp(P_GENDER, 1);
+  SetProp(P_ARMOUR_TYPE, AT_RING);
+  SetProp(P_AC, 2);
+  SetProp(P_WEIGHT, 270);
+  SetProp(P_VALUE, 300 +random(150));
+  SetProp(P_MATERIAL, MAT_MISC_STONE);
+  AddId(({"ring", "steinring"}));
+}
diff --git a/doc/beispiele/ssp/obj/titanring.c b/doc/beispiele/ssp/obj/titanring.c
new file mode 100644
index 0000000..389de66
--- /dev/null
+++ b/doc/beispiele/ssp/obj/titanring.c
@@ -0,0 +1,18 @@
+inherit "std/armour";
+
+#include <properties.h>
+#include <combat.h>
+
+create()
+{
+  ::create();
+  SetProp(P_SHORT, "Ein Titanring");
+  SetProp(P_LONG, "Ein Ring aus Titan.\n");
+  SetProp(P_NAME, "Titanring");
+  SetProp(P_GENDER, 1);
+  AddId(({"titanring", "ring"}));
+  SetProp(P_ARMOUR_TYPE, AT_RING);
+  SetProp(P_AC, 2);
+  SetProp(P_WEIGHT, 280);
+  SetProp(P_VALUE, 520);
+}
diff --git a/doc/beispiele/ssp/obj/trolldolch.c b/doc/beispiele/ssp/obj/trolldolch.c
new file mode 100644
index 0000000..fd06092
--- /dev/null
+++ b/doc/beispiele/ssp/obj/trolldolch.c
@@ -0,0 +1,21 @@
+#include <properties.h>
+#include <combat.h>
+inherit "std/weapon";
+ 
+create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, "Ein Trolldolch");
+  SetProp(P_LONG, "Ein langer, scharfer Dolch, dem Gestank nach muss er einem Troll\ngehoert haben.\n");
+  SetProp(P_NAME, "Trolldolch");
+  SetProp(P_GENDER, 1);
+  SetProp(P_WC, 119);
+  SetProp(P_VALUE, 1000 +random(400));
+  SetProp(P_WEIGHT, 500 +random(50));
+  SetProp(P_WEAPON_TYPE, WT_KNIFE);
+  SetProp(P_DAM_TYPE, DT_PIERCE);
+  SetProp(P_NR_HANDS, 1);
+  SetProp(P_MATERIAL, MAT_MISC_METAL);
+  AddId(({"dolch", "trolldolch"}));
+}