Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/beispiele/rotaugenvampire/rotaugenvampir.c b/doc/beispiele/rotaugenvampire/rotaugenvampir.c
new file mode 100644
index 0000000..ca464d5
--- /dev/null
+++ b/doc/beispiele/rotaugenvampire/rotaugenvampir.c
@@ -0,0 +1,135 @@
+/*
+   Ein Beispiel-NPC (von Zesstra, angelehnt an Boings bspmon1.c)
+*/
+
+// Diese Pragmas sorgen dafuer, dass der Driver darauf achtet, dass bei
+// Funktionsargumenten, -Rueckgabewerten und teilweise bei Zuweisung von
+// Werten an Variablen der richtige Datentyp verwendet wird (z.b. kein string
+// anstelle eines int verwendet wird). Sollte in keinem Objekt fehlen.
+#pragma strong_types, save_types, rtt_checks
+// Einige Warnungen werden als Fehler betrachtet (empfohlen)
+#pragma pedantic, range_check
+// Schaltet bestimmte Warnungen ein (empfohlen)
+#pragma warn_deprecated, warn_empty_casts, warn_missing_return
+#pragma warn_function_inconsistent
+
+// Erbt den Standard-NPC / das Standard-Monster
+inherit "/std/npc";
+
+// Inkludiert Definitionen fuer Properties und einige Konstanten
+#include <properties.h>
+#include <language.h>
+#include <class.h> // Konstanten fuer AddClass()
+
+// create() wird beim Erzeugen des Objekt vom Driver gerufen und initialisiert
+// diesen NPC. Es bekommt kein Argument, gibt keinen Wert zurueck (Typ: void)
+// und kann nicht von ausserhalb des Objektes gerufen werden (protected).
+protected void create()
+{
+  // Nicht vergessen, ohne das geht nichts. Fuehrt das create() des geerbten
+  // /std/npc aus und initialisiert den Standard-NPC.
+  ::create();
+
+/* Die Kurzbeschreibung wird zum Beispiel angezeigt wenn man in einen Raum
+   mit dem Monster reinlaeuft */
+  SetProp(P_SHORT, "Rotaugenvampir");
+
+/* Beim Anschauen des Monsters wird die long-description angezeigt,
+ * Zeilenumbruch nach Bedarf nach 78 Zeichen. */
+  SetProp(P_LONG, break_string(
+    "Ein finster aussehender Rotaugenvampir.",78));
+
+/* Ein Name muss sein, da sonst z.B. im Todesfall 'Leiche von 0' daliegt */
+  SetProp(P_NAME, "Rotaugenvampir");
+  SetProp(P_NAME_ADJ,"ausgemergelt");
+  
+/* Das Geschlecht des Monsters. Als Geschlechter sind */
+/* die in <language.h> definierten Symbole NEUTER, MALE   */
+/* und FEMALE zulaessig.                                  */
+  SetProp(P_GENDER, MALE);
+
+/* Ein Monster braucht mindestens eine ID, unter der man es ansprechen kann */
+/* Es kann aber auch mehrere verschiedene ID's haben.                       */
+  AddId( ({"vampir","rotaugenvampir"}) );
+
+/* Zuerst sollte man dem Monster einen Grundlevel geben. */
+/* Setzt Standardwerte fuer P_LEVEL, P_MAX_HP (Lebenspunkte), P_MAX_SP
+ * (Magiepunkte), P_HANDS, P_BODY, P_XP und die Attribute A_STR, A_INT, A_DEX
+ * und A_CON. Alle koennen spaeter noch geaendert werden.
+ */
+  create_default_npc( 25 );
+
+/* Nun machen wir es etwas widerstandsfaehiger, indem wir P_BODY setzen.  */
+/* Nie P_TOTAL_AC oder P_AC setzen, P_TOTAL_AC wird automatisch berechnet */
+/* und P_AC ist nur fuer Ruestungen da.                                   */
+  SetProp(P_BODY, 55);
+
+/* Das Monster schlaegt mit blossen Haenden zu, also wird P_HANDS gesetzt.   */
+/* Auch hier weder P_TOTAL_WC noch P_WC setzen.                              */
+  SetProp(P_HANDS, ({" mit seinen Haenden", 135}));
+/*                    ^ dieses Leerzeichen ist wichtig                       */
+/* Beim Kampf erscheint nun: 'Das Monster greift Dich mit seinen Haenden an' */
+/* 135 entspricht der Waffenklasse                                            */
+
+/* Gesinnung des Monsters, 0 ist neutral, negativ boese und positiv gut */
+  SetProp(P_ALIGN, -100);  /* etwas boese, aber nichts besonderes */
+
+/* Die Rasse des Monsters */
+  SetProp(P_RACE, "Vampir");
+
+/* Erfahrungspunkte des Monsters, beim Tod erhaelt der 'Killer' ein   */
+/* hundertstel dieses Wertes. Schon im Kampf erhaelt man bei jedem    */
+/* Schlag weapon_class*schaden/10 punkte (weapon_class hier 55), also */
+/* insgesamt weapon_class*hit_points/10.                              */
+/* Ab 200000 gibt der NPC einen Stufenpunkt, ab 600000 2 Stufenpunkte */
+  SetProp(P_XP, 130000);
+  
+/* Die Groesse des Monsters in cm. Dies wird bei einigen Kampfbefehlen */
+/* ausgewertet, sowie bei einigen Identifikationsspruechen von Gilden.
+ * Irgendwas zwischen 170 und 190 cm.  */
+  SetProp(P_SIZE, 170 + random(21));
+
+/* Ein Gewicht (in Gramm) sollte der NPC haben, irgendwas zwischen 40 und 48
+ * kg.
+ */
+  SetProp(P_WEIGHT, 40000 + random(8000));
+
+/* Weitere Werte: P_(MAX)_FOOD, P_(MAX)_DRINK, P_(MAX)_ALCOHOL,       */
+/* P_MSGIN, P_MSGOUT, P_MMSGIN, P_MMSGOUT, P_MAX_HANDS                */
+
+/* Spezielle Infos (fuer den Identifiziere-Spruch) */
+  SetProp(P_INFO, break_string(
+    "Der Rotaugenvampir laesst sich vielleicht mit Knoblauch vertreiben.",
+    78));
+
+/* NPC koennen einer Klasse angehoeren und Waffen koennten z.B. gegen
+ * bestimmte Klassen/Rassen besonders (in)effektiv sein.
+ */
+  AddClass(({CL_VAMPIRE,CL_UNDEAD}));
+
+/* Resistenzen (negativ) und Anfaelligkeiten (positiv) */
+  SetProp(P_RESISTANCE_STRENGTHS, ([
+        DT_BLUDGEON:0.2,DT_RIP:0.2,
+        DT_MAGIC: -0.2, DT_COLD: -0.1, DT_TERROR: -0.8 ]) );
+  
+// Wer hat den Spieler gekillt und was sagt man dann?
+  SetProp(P_KILL_NAME,"Ein Rotaugenvampir");
+  SetProp(P_KILL_MSG,({"Grossartig %s! Ein weiteres Opfer fuer Zesstra!", 
+                       MSG_SAY}));
+
+  // beschwerde auf -moerder
+  SetProp(P_MURDER_MSG,"Du steckst doch mit Jof im Bunde, %s!");
+  SetProp(P_DIE_MSG," bricht stoehnend zusammen.\n");
+
+  // Auch NPC sollten Details haben:
+  AddDetail( ({"augen","augenlider","lider"}), break_string(
+    "Der Rotaugenvampir schaut Dich mit weit aufgerissenen, rot "
+    "schimmernden Augen wild an.",78));
+  // ...
+
+  // riecht der nach was? -> AddSmells()
+  
+  // Kann man den nach was fragen? -> AddInfo().
+
+}
+