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"}));
+}