diff --git a/doc/sphinx/props/P_ABILITIES.rst b/doc/sphinx/props/P_ABILITIES.rst
new file mode 100644
index 0000000..d84b229
--- /dev/null
+++ b/doc/sphinx/props/P_ABILITIES.rst
@@ -0,0 +1,22 @@
+P_ABILITIES
+===========
+
+NAME
+----
+::
+
+    P_ABILITIES                   "abilities"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+     *** OBSOLET! ***
+     Siehe P_NEWSKILLS.
+
diff --git a/doc/sphinx/props/P_AC.rst b/doc/sphinx/props/P_AC.rst
new file mode 100644
index 0000000..77cdb40
--- /dev/null
+++ b/doc/sphinx/props/P_AC.rst
@@ -0,0 +1,45 @@
+P_AC
+====
+
+NAME
+----
+::
+
+     P_AC "ac"
+
+DEFINIERT IN
+------------
+::
+
+     <armour.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property beschreibt die Ruestungsklasse (engl: armour class),
+     also den Schutz, den die Ruestung dem Traeger verleiht. Je hoeher der
+     Wert (als Zahl), um so besser ist die Ruestung. Negative Werte bewirken
+     negativen Schutz, d.h. der Schaden wird vergroessert statt verringert.
+
+BEMERKUNGEN
+-----------
+::
+
+     Query- und Setmethoden auf P_AC sollten unbedingt vermieden werden. Sie
+     fuehren in der Regel zu massiven Inkonsistenzen im Mechanismus der
+     Ruestungsbeschaedigung und -reparatur.
+     Fuer jeden Ruestungstyp ist in <combat.h> eine Obergrenze definiert,
+     die man nicht ueberschreiten darf.
+     Ruestungen vom Typ AT_MISC haben immer AC 0 und werden mit keinen 
+     hoeheren Werten genemigt.
+
+SIEHE AUCH
+----------
+::
+
+     /std/armour.c, P_DAMAGED, Damage() P_TOTAL_AC
+
+
+02.10.2007, Zesstra
+
diff --git a/doc/sphinx/props/P_ACCEPT_PEACE.rst b/doc/sphinx/props/P_ACCEPT_PEACE.rst
new file mode 100644
index 0000000..5b0c580
--- /dev/null
+++ b/doc/sphinx/props/P_ACCEPT_PEACE.rst
@@ -0,0 +1,37 @@
+P_ACCEPT_PEACE
+==============
+
+PROPERTY
+--------
+::
+
+     P_ACCEPT_PEACE                           "accept_peace"
+
+DEFINIERT IN 
+-------------
+::
+
+	/sys/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+	Mittels setzen Dieser Prop lassen sich leicht NPCs bauen,
+	die von jedem zu befrieden sind. Wenn die Property == 1 ist,
+	ist der NPC immer wieder befriedbar, sonst fuehrt der NPC das
+	uebliche Verhalten aus.
+
+SIEHE AUCH
+----------
+::
+
+  QueryPacify(),
+  P_PEACE_HISTORY
+
+LETZTE AENDERUNG
+----------------
+::
+
+01.05.2008, Zesstra
+
diff --git a/doc/sphinx/props/P_ACHATS.rst b/doc/sphinx/props/P_ACHATS.rst
new file mode 100644
index 0000000..cca00ee
--- /dev/null
+++ b/doc/sphinx/props/P_ACHATS.rst
@@ -0,0 +1,21 @@
+P_ACHATS
+========
+
+NAME
+----
+::
+
+    P_ACHATS                      "achats"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Chats, die das Monster im Kampf ausgibt.
+
diff --git a/doc/sphinx/props/P_ACHAT_CHANCE.rst b/doc/sphinx/props/P_ACHAT_CHANCE.rst
new file mode 100644
index 0000000..68054e6
--- /dev/null
+++ b/doc/sphinx/props/P_ACHAT_CHANCE.rst
@@ -0,0 +1,21 @@
+P_ACHAT_CHANCE
+==============
+
+NAME
+----
+::
+
+    P_ACHAT_CHANCE                "achat_chance"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wahrscheinlichkeit fuer die Attack-Chat-Ausgabe.
+
diff --git a/doc/sphinx/props/P_ACTUAL_NOTIFY_FAIL.rst b/doc/sphinx/props/P_ACTUAL_NOTIFY_FAIL.rst
new file mode 100644
index 0000000..a69d43d
--- /dev/null
+++ b/doc/sphinx/props/P_ACTUAL_NOTIFY_FAIL.rst
@@ -0,0 +1,50 @@
+P_ACTUAL_NOTIFY_FAIL
+====================
+
+********************** VERALTETE PROPERTY *********************************
+
+NAME
+----
+::
+
+     P_ACTUAL_NOTIFY_FAIL          "actual_notify_fail"          
+
+DEFINIERT IN
+------------
+::
+
+     /sys/player.h
+
+ACHTUNG
+-------
+::
+
+     Diese Prop wird nicht mehr gesetzt (und auch nicht mehr abgefragt), da LD
+     eine efun hat, um das Objekt zu ermitteln, was als letztes ein
+     notify_fail() gesetzt hat, ein Speichern im Spieler also voellig
+     ueberfluessig ist.
+
+BESCHREIBUNG
+------------
+::
+
+     Ist im Spielerobjekt  gesetzt und enthaelt das Objekt, welches zuletzt
+     eine Fehlermeldung mit notify_fail()/_notify_fail() erfolgreich
+     waehrend des aktuellen Kommandos abgespeichert hat.
+
+BEMERKUNGEN
+-----------
+::
+
+     Dient dazu, bei _notify_fail() zu ueberpruefen, ob schon vorher eine
+     Fehlermeldung gesetzt wurde.
+
+SIEHE AUCH
+----------
+::
+
+     AddCmd(), add_action()
+     notify_fail(), _notify_fail()
+
+10.03.2007, Zesstra
+
diff --git a/doc/sphinx/props/P_ADJECTIVES.rst b/doc/sphinx/props/P_ADJECTIVES.rst
new file mode 100644
index 0000000..9357c62
--- /dev/null
+++ b/doc/sphinx/props/P_ADJECTIVES.rst
@@ -0,0 +1,39 @@
+P_ADJECTIVES
+============
+
+NAME
+----
+::
+
+     P_ADJECTIVES "adjectives"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/description.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Hier steht ein Array von Strings, welche die Identifizierung des
+     Objektes ergaenzen. Die Verwaltung erfolgt ueber die Funktionen
+     AddAdjective() und RemoveAdjective().
+
+BEMERKUNGEN
+-----------
+::
+
+     Man sollte an dieser Property nicht "von Hand" herumfummeln, sondern
+     immer die zugehoerigen Funktionen benutzen!
+
+SIEHE AUCH
+----------
+::
+
+     /std/thing/description.c, AddAdjective(), RemoveAdjective()
+
+
+Last modified: Sun May 19 20:22:24 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_AERIAL_HELPERS.rst b/doc/sphinx/props/P_AERIAL_HELPERS.rst
new file mode 100644
index 0000000..df12a3b
--- /dev/null
+++ b/doc/sphinx/props/P_AERIAL_HELPERS.rst
@@ -0,0 +1,64 @@
+P_AERIAL_HELPERS
+================
+
+NAME
+----
+::
+
+     P_AERIAL_HELPERS "lib_p_aerial_helpers"
+
+DEFINIERT IN
+------------
+::
+
+     <living/helpers.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property kann in allen Lebewesen abgefragt werden, um die Objekte
+     zu ermitteln, die fuer die Unterstuetzung beim Fliegen/Segeln bei diesem 
+     Lebewesen registriert haben. Die Daten werden als Mapping der folgenden
+     Form zurueckgeliefert:
+     ([ Objekt : Rueckgabewert von dessen Callback-Methode ])
+     Eine Erlaeuterung dazu findet sich in der Dokumentation zu 
+     RegisterHelperObject().
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Property kann nur abgefragt werden.
+     Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche 
+     Helfer akzeptieren, deren Callback-Methode >0 zurueckgibt.
+
+BEISPIEL
+--------
+::
+
+     Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat, das 
+     beim Fliegen hilft, sucht man alle Objekte aus dem Mapping heraus, die
+     einen Wert >0 eingetragen haben und prueft deren Anzahl:
+
+     mapping aerial = this_player()->QueryProp(P_AERIAL_HELPERS);
+     object* helpers = filter( aerial, function int (object h) {
+                         return (aerial[h]>0); });
+     if ( sizeof(helpers) ) {
+       tell_object(this_player(), "Du erhebst Dich mit Hilfe "+
+         helpers[0]->name(WESSEN,1)+" elegant in die Luefte.\n");
+     }
+     else {
+       tell_object(this_player(), "Du hast nichts zum Fliegen bei Dir.\n");
+     }
+
+SIEHE AUCH
+----------
+::
+
+     Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
+     Properties:  P_HELPER_OBJECTS, P_AQUATIC_HELPERS
+
+
+12.03.2016, Arathorn
+
diff --git a/doc/sphinx/props/P_AGE.rst b/doc/sphinx/props/P_AGE.rst
new file mode 100644
index 0000000..b75a773
--- /dev/null
+++ b/doc/sphinx/props/P_AGE.rst
@@ -0,0 +1,21 @@
+P_AGE
+=====
+
+NAME
+----
+::
+
+    P_AGE                         "age"                         
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Alter des Spielers in Heart-Beats (1 HB == 2 Sekunden)
+
diff --git a/doc/sphinx/props/P_AGGRESSIVE.rst b/doc/sphinx/props/P_AGGRESSIVE.rst
new file mode 100644
index 0000000..fc5ee1b
--- /dev/null
+++ b/doc/sphinx/props/P_AGGRESSIVE.rst
@@ -0,0 +1,55 @@
+P_AGGRESSIVE
+============
+
+NAME
+----
+::
+
+    P_AGGRESSIVE                  "aggressive"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+	Gesetzt, wenn das Wesen von sich aus Angriffe startet.
+
+	Ueblicherweise nimmt man als Wert 1, man kann jedoch auch
+	einen kleineren Wert nehmen wenn es nur mit einer bestimmten
+	Wahrscheinlichkeit automatisch angreifen soll.
+
+	Der Wert von Spieler und Monster wird addiert, um zu entscheiden,
+	ob ein Spieler angegriffen werden soll,	man kann P_AGGRESSIVE
+	also auch bei Spielern setzen, so dass sie von allen Monstern
+	angegriffen werden.
+
+	Bei Monstern (und NUR bei diesen) kann man hier auch ein Mapping
+	angeben, das als Keys Namen von Properties des Spielers enthaelt
+	und als Values Mappings, in denen steht welcher Wert bei welchen
+	Wert fuer die Property genommen werden soll (Beispiele folgen).
+	Mit Key 0 kann man einen Default-Wert (sowohl in inneren Mappings
+	wie auch im aeusseren Mapping) festlegen. Default-Werte werden
+	genommen, falls keine anderen gesetzt sind, also Vorsicht mit
+	0-Eintraegen (Tip: 0.0 ist in LPC ungleich 0).
+	Bei mehreren Properties werden alle gesetzten Werte gemittelt.
+
+BEISPIELE
+---------
+::
+
+	SetProp(P_AGGRESSIVE,([P_RACE:(["Zwerg":1, "Elf":0.0, 0:0.5])]))
+	Zwerge werden immer automatisch angegriffen, Elfen nie und
+	alle anderen mit 50% Wahrscheinlichkeit.
+	Man beachte, dass hier 0.0 genommen werden musste anstelle von 0,
+	weil sonst Elfen auch 50% Wahrscheinlichkeit bekommen haetten.
+
+	SetProp(P_AGGRESSIVE,([P_RACE:(["Zwerg":0.3]),
+	                       P_GUILD:(["Chaos":0.7])]))
+	Zwerge werden mit 30% Wahrscheinlichkeit angegriffen,
+	Chaoten mit 70% und Zwerg-Chaoten mit 50%.
+
diff --git a/doc/sphinx/props/P_ALCOHOL.rst b/doc/sphinx/props/P_ALCOHOL.rst
new file mode 100644
index 0000000..7c29af5
--- /dev/null
+++ b/doc/sphinx/props/P_ALCOHOL.rst
@@ -0,0 +1,37 @@
+P_ALCOHOL
+=========
+
+NAME
+----
+::
+
+     P_ALCOHOL			"alcohol"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     - Lebewesen
+       Numerischer Wert fuer den Grad der Betrunkenheit eines Lebewesens.
+       Der maximale Wert steht in P_MAX_ALCOHOL.
+
+     - Speisen/Kneipen
+       Numerischer Wert fuer den Grad, den eine Portion der Speise den
+       Konsumenten betrunken macht
+
+SIEHE AUCH
+----------
+::
+
+	P_MAX_ALCOHOL, P_ALCOHOL_DELAY, consume,
+	P_FOOD, P_DRINK, wiz/food, 
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_ALCOHOL_DELAY.rst b/doc/sphinx/props/P_ALCOHOL_DELAY.rst
new file mode 100644
index 0000000..d0626a5
--- /dev/null
+++ b/doc/sphinx/props/P_ALCOHOL_DELAY.rst
@@ -0,0 +1,23 @@
+P_ALCOHOL_DELAY
+===============
+
+NAME
+----
+::
+
+    P_ALCOHOL_DELAY                 "alcohol_delay"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der heart_beats, bis P_ALCOHOL um einen Punkt sinkt.
+     Aenderungen dieser Property in Spielern beduerfen der 
+     Genehmigung des EM fuer Balance.
+
diff --git a/doc/sphinx/props/P_ALC_FULL_MSG.rst b/doc/sphinx/props/P_ALC_FULL_MSG.rst
new file mode 100644
index 0000000..3d6e160
--- /dev/null
+++ b/doc/sphinx/props/P_ALC_FULL_MSG.rst
@@ -0,0 +1,50 @@
+P_ALC_FULL_MSG
+==============
+
+NAME
+----
+::
+
+     P_ALC_FULL_MSG                "std_food_alc_full_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Konsumenten, wenn Alkohol konsumiert werden soll,
+     obwohl dieser nicht mehr Alkohol vertraegt.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "Soviel Alkohol vertraegst Du nicht mehr."
+
+SIEHE AUCH
+----------
+::
+
+     P_ALCOHOL, P_MAX_ALCOHOL, wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_ALIGN.rst b/doc/sphinx/props/P_ALIGN.rst
new file mode 100644
index 0000000..fd944b2
--- /dev/null
+++ b/doc/sphinx/props/P_ALIGN.rst
@@ -0,0 +1,30 @@
+P_ALIGN
+=======
+
+NAME
+----
+::
+
+    P_ALIGN                       "align"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Numerischer Wert fuer Gut- oder Boesheit des Wesens.
+
+     Kann Werte von -1000 (Boese wie der Teufel hoechstpersoenlich)
+     bis +1000 (Jesus, bist Du's ?) annehmen.
+
+     Werte ausserhalb dieser Skala werden zwar teilweise verwendet,
+     das Setzen derselben sollte jedoch UNBEDINGT unterbleiben.
+
+
+Last modified: Sat Jul 12 17:00:00 by Mandragon
+
diff --git a/doc/sphinx/props/P_ALLOWED_SHADOW.rst b/doc/sphinx/props/P_ALLOWED_SHADOW.rst
new file mode 100644
index 0000000..d6578e4
--- /dev/null
+++ b/doc/sphinx/props/P_ALLOWED_SHADOW.rst
@@ -0,0 +1,38 @@
+P_ALLOWED_SHADOW
+================
+
+NAME
+----
+::
+
+    P_ALLOWED_SHADOW              "allowed_shadow"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Normalerweise koennen nur Shadows an Spieler gebunden werden, die in 
+     /std/player/shadows/ liegen. 
+
+     
+
+     Zu Testzwecken kann in dieser Property der Pfad eines Shadows eingetragen
+     werden. Damit wird die oben beschriebene Regel fuer diesen Spieler und 
+     diesen Shadow ausser Kraft gesetzt.
+
+BEMERKUNG: 
+
+     Der Spieler muss ein Testspieler sein. Ansonsten wird diese Property
+     ignoriert.
+
+     Die Property ist secured gesetzt. Das heisst, nur EM+ koennen
+     diese Property setzen und loeschen.
+
+Last modified: Sun Mar 21 00:27:46 2004 by Vanion
+
diff --git a/doc/sphinx/props/P_AMMUNITION.rst b/doc/sphinx/props/P_AMMUNITION.rst
new file mode 100644
index 0000000..f2a281d
--- /dev/null
+++ b/doc/sphinx/props/P_AMMUNITION.rst
@@ -0,0 +1,62 @@
+P_AMMUNITION
+============
+
+NAME
+----
+::
+
+    P_AMMUNITION     "munition"
+
+DEFINIERT IN
+------------
+::
+
+    <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt die fuer eine Waffe gueltige Munition als String. Die
+    Munition muss diesen String als ID besitzen.
+
+    Fuer die Munitionsobjekte gilt:
+    * es kann ein Skill am Spieler definiert werden, dieser wirkt dann
+      zusaetzlich zum generellen SK_SHOOT-Skill.
+    * sie koennen eine HitFunc besitzten, die beim Schuss abgefragt wird
+
+BEMERKUNGEN
+-----------
+::
+
+    Bitte das #define MUN_MISC(x) benutzen. Munition sollte auch immer
+    in Deutsch und Plural angegeben werden, da P_AMMUNITION direkt
+    fuer Ausgaben an den Spieler ausgewertet wird.
+
+    Momentan sind vier Munitionsarten in der combat.h vordefiniert:
+    MUN_ARROW, MUN_STONE, MUN_BOLT, MUN_MISC
+
+BEISPIELE
+---------
+::
+
+    // fuer ein kleines Blasrohr im Blasrohr
+    SetProp(P_AMMUNITION, MUN_MISC("Erbsen"));
+
+    // Entsprechend in der Munition:
+    AddId(MUN_MISC("Erbsen"));
+
+SIEHE AUCH
+----------
+::
+
+    Generell:  P_SHOOTING_WC, P_STRETCH_TIME
+    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+    Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
+    Waffen:    P_WEAPON_TYPE, P_WC, P_EQUIP_TIME, P_NR_HANDS
+    Kampf:     Attack(L), Defend(L), P_DISABLE_ATTACK, P_ATTACK_BUSY
+    Team:      PresentPosition(L)
+    Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
+
diff --git a/doc/sphinx/props/P_AMOUNT.rst b/doc/sphinx/props/P_AMOUNT.rst
new file mode 100644
index 0000000..632880a
--- /dev/null
+++ b/doc/sphinx/props/P_AMOUNT.rst
@@ -0,0 +1,21 @@
+P_AMOUNT
+========
+
+NAME
+----
+::
+
+    P_AMOUNT                      "amount"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der Objekte, fuer die das Objekt steht.
+
diff --git a/doc/sphinx/props/P_AQUATIC_HELPERS.rst b/doc/sphinx/props/P_AQUATIC_HELPERS.rst
new file mode 100644
index 0000000..6055df9
--- /dev/null
+++ b/doc/sphinx/props/P_AQUATIC_HELPERS.rst
@@ -0,0 +1,65 @@
+P_AQUATIC_HELPERS
+=================
+
+NAME
+----
+::
+
+     P_AQUATIC_HELPERS "lib_p_aquatic_helpers"
+
+DEFINIERT IN
+------------
+::
+
+     <living/helpers.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property kann in allen Lebewesen abgefragt werden, um die Objekte
+     zu ermitteln, die fuer die Unterstuetzung beim Tauchen bei diesem 
+     Lebewesen registriert haben. Die Daten werden als Mapping der folgenden
+     Form zurueckgeliefert:
+     ([ Objekt : Rueckgabewert von dessen Callback-Methode ])
+     Eine Erlaeuterung dazu findet sich in der Dokumentation zu 
+     RegisterHelperObject().
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Property kann nur abgefragt werden.
+     Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche 
+     Helfer akzeptieren, deren Callback-Methode >0 zurueckgibt.
+
+BEISPIEL
+--------
+::
+
+     Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat, das 
+     beim Tauchen hilft, sucht man alle Objekte aus dem Mapping heraus, die
+     einen Wert >0 eingetragen haben und prueft deren Anzahl:
+
+     mapping aquatic = this_player()->QueryProp(P_AQUATIC_HELPERS);
+     object* helpers = filter( aquatic, function int (object h) {
+                         return (aquatic[h]>0); });
+     if ( sizeof(helpers) ) {
+       tell_object(this_player(), "Du stuerzt Dich in die Fluten und "
+         "stellst ueberrascht fest, dass Du mit Hilfe "+
+         helpers[0]->name(WESSEN,1)+" sogar unter Wasser atmen kannst!\n");
+     }
+     else {
+       tell_object(this_player(), "Du hast nichts zum Tauchen bei Dir.\n");
+     }
+
+SIEHE AUCH
+----------
+::
+
+     Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
+     Properties:  P_HELPER_OBJECTS, P_AERIAL_HELPERS
+
+
+06.04.2016, Arathorn
+
diff --git a/doc/sphinx/props/P_ARMOURS.rst b/doc/sphinx/props/P_ARMOURS.rst
new file mode 100644
index 0000000..3268fda
--- /dev/null
+++ b/doc/sphinx/props/P_ARMOURS.rst
@@ -0,0 +1,41 @@
+P_ARMOURS
+=========
+
+NAME
+----
+::
+
+     P_ARMOURS                     "armours"
+
+DEFINIERT IN
+------------
+::
+
+     <living/combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Array mit den getragenen Schutzbekleidungen des Lebewesen.
+
+     Bitte nach Moeglichkeit davon absehen, diese Property zu beschreiben, da
+     es hierbei zu Inkonsistenzen kommen kann.
+
+     
+
+     Falls ihr die Ruestungen des Lebewesens, ggf. mit bestimten Kriterien,
+     ermitteln wollt, benutzt hierfuer bitte die Funktion FilterArmours()
+     statt selber ueber dieses Array zu laufen.
+
+SIEHE AUCH
+----------
+::
+
+     Verwandt:		QueryArmourByType(L), P_WEAPON, FilterClothing(), 
+                  FilterArmours()
+     Ruestungen:	P_AC, P_ARMOUR_TYPE, P_NR_HANDS
+     Sonstiges:		P_EQUIP_TIME, P_LAST_USE
+
+14.03.2009, Zesstra
+
diff --git a/doc/sphinx/props/P_ARMOUR_TYPE.rst b/doc/sphinx/props/P_ARMOUR_TYPE.rst
new file mode 100644
index 0000000..71f1bfb
--- /dev/null
+++ b/doc/sphinx/props/P_ARMOUR_TYPE.rst
@@ -0,0 +1,63 @@
+P_ARMOUR_TYPE
+=============
+
+NAME
+----
+::
+
+     P_ARMOUR_TYPE "armour_type"
+
+DEFINIERT IN
+------------
+::
+
+     <armour.h>
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Property wird der Typ einer Ruestung festgehalten. Man sollte
+     hier nur die in <combat.h> definierten Konstanten verwenden:
+
+        AT_AMULET     Amulett
+        AT_ARMOUR     Ruestung
+        AT_BELT       Guertel
+        AT_BOOT       Schuhe
+        AT_CLOAK      Umhang
+        AT_GLOVE      Handschuhe
+        AT_HELMET     Helm
+        AT_QUIVER     Koecher
+        AT_RING       Ring
+        AT_SHIELD     Schild
+        AT_TROUSERS   Hosen
+        AT_MISC       Sonstiges
+
+     Der Ruestungstyp AT_MISC ist schnoedem Tand und anderem nutzlosen
+     Kram vorbehalten. Auf keinen Fall darf eine AT_MISC-Ruestung ueber
+     eine AC > 0 verfuegen noch irgendwie kampfrelevante Bedeutung be-
+     sitzen. Ruestungen des Typs AT_MISC, die KEINE DefendFunc benoetigen,
+     muessen mittels /std/clothing als einfaches Kleidungsstueck realisiert
+     werden.
+
+BEMERKUNGEN
+-----------
+::
+
+     Die P_AC wird bei AT_MISC-Ruestungen gar nicht erst ausgewertet.
+     DefendFuncs werden zwar ausgewertet, aber bitte ueberlegt euch gut, ob
+     ihr sie braucht (Rechenzeit im Kampf ist kritisch!) und ob sie seitens 
+     der Balance in eurem Fall erlaubt sind.
+
+SIEHE AUCH
+----------
+::
+
+     Verwandt:          QueryArmourByType(L), P_WEAPON
+     Ruestungen:        P_AC, P_NR_HANDS (Schilde)
+     Sonstiges:         P_EQUIP_TIME, P_LAST_USE
+     Code:              /std/armour.c, /std/clothing.c
+     Gildenergaenzung:  P_GLOVE_FINGERLESS
+
+27. Mai 2015, Arathorn
+
diff --git a/doc/sphinx/props/P_ARRIVEMSG.rst b/doc/sphinx/props/P_ARRIVEMSG.rst
new file mode 100644
index 0000000..73b3ac9
--- /dev/null
+++ b/doc/sphinx/props/P_ARRIVEMSG.rst
@@ -0,0 +1,21 @@
+P_ARRIVEMSG
+===========
+
+NAME
+----
+::
+
+    P_ARRIVEMSG                   "arrivemsg"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung, wenn der Transporter anlegt.
+
diff --git a/doc/sphinx/props/P_ARTICLE.rst b/doc/sphinx/props/P_ARTICLE.rst
new file mode 100644
index 0000000..363cd08
--- /dev/null
+++ b/doc/sphinx/props/P_ARTICLE.rst
@@ -0,0 +1,28 @@
+P_ARTICLE
+=========
+
+NAME
+----
+::
+
+    P_ARTICLE                     "article"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/language.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gibt an, ob in der Beschreibung ein Artikel ausgegeben werden soll
+     oder nicht.
+
+     Wenn ein Artikel angegeben werden soll, so wird 1 gesetzt, sonst 0.
+     Diese Property ist aus historischen Gruenden auf 1 voreingestellt
+     und intern invertiert. (d.h., beim Auslesen per Query kommt als 
+     Ergebnis genau das falsche heraus). Bitte beachtet das bei Set- bzw.
+     Query-Funktionen.
+
diff --git a/doc/sphinx/props/P_ATTACK_BUSY.rst b/doc/sphinx/props/P_ATTACK_BUSY.rst
new file mode 100644
index 0000000..3e15aef
--- /dev/null
+++ b/doc/sphinx/props/P_ATTACK_BUSY.rst
@@ -0,0 +1,69 @@
+P_ATTACK_BUSY
+=============
+
+NAME
+----
+::
+
+    P_ATTACK_BUSY                 "attack_busy"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+    Ueber diese Property kann festgestellt werden, ob ein Spieler noch 
+    Spezialwaffen (zB Flammenkugel) einsetzen kann.
+
+    
+
+    Ist der Wert bei Abfrage ungleich 0, dann darf der Spieler in dieser
+    Runde keine Aktion mehr durchfuehren. Mit SetProp(P_ATTACK_BUSY, 1)
+    wird eine Aktion verbraucht.
+
+    Intern wird relativ fein gerechnet, ein SetProp(P_ATTACK_BUSY, x)
+    wird in das Abziehen von x*100 Punkten umgerechnet. Der Wert freier
+    Aktionen pro Runde berechnet sich wie folgt:
+
+    
+
+    Spieler: 100 + QuerySkillAttribute(SA_SPEED)
+    Seher:   Spieler + 200 + QueryProp(P_LEVEL)
+
+    Das Maximum liegt bei 500.
+    Damit betraegt die Anzahl der moeglichen Aktionen pro Runde: Wert/100,
+    also maximal 5 Aktionen pro Runde.
+
+    Zaubersprueche zaehlen im Normalfall auch als eine Aktion.
+
+BEMERKUNGEN
+-----------
+::
+
+    Benutzt man P_ATTACK_BUSY fuer eine sich nicht sofort verbrauchende
+    Sache, kann ein Seher dieses Objekt im Normalfall dreimal pro Runde
+    benutzen. Wenn ungewollt, muss das ueber einen Zeitmarker selbst
+    verhindert werden.
+
+    
+
+BEISPIELE
+---------
+::
+
+    (Code eines Objektes ist in
+     /doc/beispiele/testobjekte/attack_busy_sensitive_testobj.c)
+    // einfacher Test auf ATTACK_BUSY und anschliessendes Setzen
+    if (this_player()->QueryProp(P_ATTACK_BUSY)) {
+      write("Du hast dafuer momentan einfach nicht mehr die Puste.\n");
+      return 1;
+    }
+    this_player()->SetProp(P_ATTACK_BUSY, 1);
+
+7. Mar 2011 Gloinson
+
diff --git a/doc/sphinx/props/P_ATTRIBUTES.rst b/doc/sphinx/props/P_ATTRIBUTES.rst
new file mode 100644
index 0000000..d3bbc0e
--- /dev/null
+++ b/doc/sphinx/props/P_ATTRIBUTES.rst
@@ -0,0 +1,80 @@
+P_ATTRIBUTES
+============
+
+NAME
+----
+::
+
+	P_ATTRIBUTES			"attributes"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property enthaelt ein Mapping mit den Attributen des
+	Lebewesens. Die Schluessel kennzeichnen hierbei das jeweilige
+	Attribut. Die verschiedenen Standardattribute findet man in
+	/sys/living/attributes.h, welche derzeit folgende Moeglichkeiten
+	bieten:	- A_STR (Kraft)
+		- A_INT (Intelligenz)
+		- A_DEX (Geschick)
+		- A_CON (Konstitution)
+	Sie werden automatisch an verschiedenen Stellen in der MUDLib
+	ausgewertet, zum Beispiel bestimmt A_INT die maximal moeglichen
+	Konzentrationspunkte und A_CON die maximal moeglichen Lebenspunkte.
+
+BEMERKUNGEN
+-----------
+::
+
+        Keine echte Property, _query_attributes() und _set_attributes() sind 
+        in /std/living/attributes.c implementiert.
+
+	Es bietet sich an, zum Erfragen der Attributwerte die Funktion
+	QueryAttribute() zu nutzen, da es auch moegliche Offsets gibt,
+	so beispielsweise ueber die Properties P_ATTRIBUTES_OFFSETS bzw.
+	P_ATTRIBUTES_MODIFIER im Lebewesen selbst, oder auch ueber
+	P_X_ATTR_MOD bzw. P_M_ATTR_MOD in Objekten im Lebewesen.
+	Kurzfristige zeit- oder objektgebundene Attributveraenderungen
+	koennen ueber die Property P_TIMED_ATTR_MOD realisiert werden.
+
+	Es gibt auch zahlreiche andere Dienstfunktionen fuer diesen sehr
+	balancekritischen Bereich, siehe unten.
+
+BEISPIEL
+--------
+::
+
+	Ein moegliches Ergebnis fuer einen frischen Level 1 Spieler waere:
+	  QueryProp(P_ATTRIBUTES);
+	  Ergebnis: (["int":1,"con":1,"str":1,"dex":1])
+	Hinzu kommen eventuell moegliche Rassenboni, die mittels
+	P_ATTRIBUTE_OFFSETS realisiert werden, Zwerge sind beispielsweise
+	recht stark:
+	  QueryProp(P_ATTRIBUTES_OFFSETS);
+	  Ergebnis: (["int":1,"con":1,"str":1,"dex":3])
+	Jetzt bekaeme man (sofern keine weiteren Offsets realisiert sind)
+	mittels QueryAttribute() insgesamt:
+	  QueryAttribute(A_DEX);
+	  Ergebnis: 4
+
+SIEHE AUCH
+----------
+::
+
+	QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+	SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+	SetTimedAttrModifier(), QueryTimedAttrModifier(),
+	DeleteTimedAttrModifier(),
+	P_ATTRIBUTES_OFFSETS, P_ATTRIBUTES_MODIFIER,P_TIMED_ATTR_MOD,
+	P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
+
+Last modified: Tue Jul 27 20:00:20 2004 by Muadib
+
diff --git a/doc/sphinx/props/P_ATTRIBUTES_MODIFIER.rst b/doc/sphinx/props/P_ATTRIBUTES_MODIFIER.rst
new file mode 100644
index 0000000..872de97
--- /dev/null
+++ b/doc/sphinx/props/P_ATTRIBUTES_MODIFIER.rst
@@ -0,0 +1,78 @@
+P_ATTRIBUTES_MODIFIER
+=====================
+
+NAME
+----
+::
+
+    P_ATTRIBUTES_MODIFIER         "attributes_modifier"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Property werden Attribut-Modifikatoren gespeichert, die
+    laengere Zeit wirksam sein sollen, tlw. auch ueber einen Reboot
+    hinweg.
+    Intern werden die Modifikatoren in einem Mapping der Form
+
+        ([ Setzer-Key : ([ A_xy : Wert, ... ]) , ... ])
+
+    gespeichert. Das Setzen folg hingegen in der Form
+
+        spieler->SetProp(P_ATTRIBUTES_MODIFIER, ([ A_xy : Wert, ... ]));
+    oder
+        spieler->SetProp(P_ATTRIBUTES_MODIFIER, ({ Setzer-Key, ([ ... ]) }));
+
+    Bei der ersten Variante wird hierbei der Filename des setzenden Objektes
+    als Setzer-Key genommen.
+    Es koennen also durchaus von mehreren Objekten Modifier gesetzt werden.
+    Bekannte Modifier sind:
+
+        #death      Attribut-Abzug durch Todesfolgen      (Mudlib)
+        #drain      Statabzug durch NPCs                  (Paracelsus)
+        #frosch     Staerken-Abzug bei Froeschen          (Mudlib)
+
+BEMERKUNGEN
+-----------
+::
+
+    Keine echte Property, _query_attributes_modifier() und
+    _set_attributes_modifier() sind in /std/living/attributes.c
+    implementiert
+    - SetProp/QueryProp nutzen!
+    - Wenn ein Modifier nicht mehr gebracht wird, nicht die Attributswerte auf
+      0 setzen, sondern den ganzen Eintrag! also:
+      SetProp(P_ATTRIBUTES_MODIFIER, ([]) );
+      oder: SetProp(P_ATTRIBUTES_MODIFIER, 0 ); 
+      aber nicht: SetProp(P_ATTRIBUTES_MODIFIER, ([A_STR:0]));
+
+BEISPIELE
+---------
+::
+
+    // ein Bonus ... 'ende'-fest (muss also per uid gesichert werden)
+    player->SetProp(P_ATTRIBUTES_MODIFIER,
+                    ({"g_klerus_segen", ([A_CON:5, A_INT:5])}));
+    ...
+    player->SetProp(P_ATTRIBUTES_MODIFIER, ({"g_klerus_segen", 0}));
+
+SIEHE AUCH
+----------
+::
+
+	QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+	SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+	SetTimedAttrModifier(), QueryTimedAttrModifier(),
+	DeleteTimedAttrModifier(),
+	P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_TIMED_ATTR_MOD,
+	P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
+Last modified: Tue Jul 27 20:00:20 2004 by Muadib
+
diff --git a/doc/sphinx/props/P_ATTRIBUTES_OFFSETS.rst b/doc/sphinx/props/P_ATTRIBUTES_OFFSETS.rst
new file mode 100644
index 0000000..a17993e
--- /dev/null
+++ b/doc/sphinx/props/P_ATTRIBUTES_OFFSETS.rst
@@ -0,0 +1,46 @@
+P_ATTRIBUTES_OFFSETS
+====================
+
+NAME
+----
+::
+
+	P_ATTRIBUTES_OFFSETS		"attributes_offsets"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property enthaelt ein Mapping mit Offsets, die zu den
+	Attributen eine Lebewesens addiert werden. Diese koennen auch
+	negativ sein! Realisiert werden damit beispielsweise Rassenboni.
+	Es gibt noch weitere Moeglichkeiten, Attributoffsets anzugeben.
+	Fuer weiteres siehe P_ATTRIBUTES.
+
+BEMKERUNGEN
+-----------
+::
+
+        Keine echte Property, _query_attributes_offsets() und 
+        _set_attributes_offsets() sind in /std/living/attributes.c 
+        implementiert.
+
+SIEHE AUCH
+----------
+::
+
+	QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+	SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+	SetTimedAttrModifier(), QueryTimedAttrModifier(),
+	DeleteTimedAttrModifier(),
+	P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_TIMED_ATTR_MOD,
+	P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
+Last modified: Tue Jul 27 20:00:20 2004 by Muadib
+
diff --git a/doc/sphinx/props/P_AUTH_INFO.rst b/doc/sphinx/props/P_AUTH_INFO.rst
new file mode 100644
index 0000000..357fe6d
--- /dev/null
+++ b/doc/sphinx/props/P_AUTH_INFO.rst
@@ -0,0 +1,21 @@
+P_AUTH_INFO
+===========
+
+NAME
+----
+::
+
+    P_AUTH_INFO                   "auth_info"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player.h
+
+BESCHREIBUNG
+------------
+::
+
+     Username des Spielers, wenn bei ihm ein AUTHD laeuft
+
diff --git a/doc/sphinx/props/P_AUTOLOAD.rst b/doc/sphinx/props/P_AUTOLOAD.rst
new file mode 100644
index 0000000..31372c1
--- /dev/null
+++ b/doc/sphinx/props/P_AUTOLOAD.rst
@@ -0,0 +1,31 @@
+P_AUTOLOAD
+==========
+
+NAME
+----
+::
+
+    P_AUTOLOAD                    "autoload"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mapping mit der Menge der Autoloadobjekte und den zugeh.
+     Properties.
+
+BEMERKUNGEN
+-----------
+::
+
+     Funktioniert momentan nicht. Die Methode wurde entfernt. Doku bleibt
+     hier bis der Fall geklaert ist. (Stand 27.Aug 2006)
+
+27.Aug 2006 Gloinson
+
diff --git a/doc/sphinx/props/P_AUTOLOADOBJ.rst b/doc/sphinx/props/P_AUTOLOADOBJ.rst
new file mode 100644
index 0000000..d4a0a00
--- /dev/null
+++ b/doc/sphinx/props/P_AUTOLOADOBJ.rst
@@ -0,0 +1,141 @@
+P_AUTOLOADOBJ
+=============
+
+NAME
+----
+::
+
+    P_AUTOLOADOBJ                 "autoloadobj"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Hiermit kann prinzipiell angegeben werden ob ein Objekt ueber das
+     Ausloggen eines Spielers (Reboot/ende) behalten werden soll.
+
+     Als Inhalt der Property koennen permanente Eigenschaften des Objektes
+     angegeben werden.
+     Beim Einloggen wird das Objekt neu erzeugt und P_AUTOLOADOBJ auf die
+     gespeicherten Werte gesetzt. Die Werte muessen allerdings selbst
+     verwaltet werden.
+
+     Bitte geht nicht davon aus, dass es waehrend des Setzens/Abfragens dieser
+     Prop einen this_player() oder ein this_interactive() geben muss.
+     Speziell ist this_interactive() nicht == /secure/login!
+     Ebenfalls muss das Objekt beim Setzen/Abfragen nicht in einem Spieler
+     sein.
+
+BEMERKUNGEN
+-----------
+::
+
+     Autoloadobjekte werden beim Ausloggen nicht fallengelassen!
+
+BEISPIELE
+---------
+::
+
+     ## Variante 1: simples Objekt, bleibt einfach nur erhalten,
+     ##             Variablen werden nicht gesichert ##
+     void create() {
+      ...
+      SetProp(P_AUTOLOADOBJ,1);
+      ...
+     }
+
+
+     ## Variante 2: Speicherung mehrerer Variablen ueber
+     ##             P_AUTOLOADOBJ (elegante Verwaltung)
+
+     // ein paar #defines fuer die Plaetze in der Speichervariablen
+     #define MY_AL_SHORT    0
+     #define MY_AL_ATTRM    1
+     #define MY_AL_OWNER    2
+     #define MY_AL_DESTRUCT 3
+
+     // die Variablen, die erhalten bleiben sollen
+     static object owner;
+     static int destruct_time;
+
+     // diese hier wird gerufen, wenn der Spieler gespeichert wird,
+     // wir packen also alle aktuellen Variablen in eine und geben die
+     // zum Speichern heraus ... wir nehmen hier ein Array (statt
+     // zB eines Mappings), weil das am wenigsten Platz braucht
+     static mixed* _query_autoloadobj() {
+      mixed *ret;
+      ret=allocate(4);
+      ret[MY_AL_SHORT] = QueryProp(P_SHORT);      // SHORT merken
+      ret[MY_AL_ATTRM] = QueryProp(P_M_ATTR_MOD); // einen Modifikator merken
+      ret[MY_AL_OWNER] = getuid(owner);           // ah, ein Besitzer!
+      ret[MY_AL_DESTRUCT]=destruct_time-time();   // und eine Lebensdauer!
+
+      return ret;
+
+      /*
+      // normalerweise wuerde man das einfach so schreiben:
+      return (({QueryProp(P_SHORT),
+                QueryProp(P_M_ATTR_MOD),
+                getuid(owner),
+                destruct_time-time()}));
+      */
+     }
+
+     // diese hier wird gerufen, wenn das Objekt neu im Spieler
+     // erzeugt wurde (Login), also packen wir das Speicherarray wieder
+     // aus und in alle entsprechenden Variablen
+     static mixed* _set_autoloadobj(mixed *new) {
+      // wenn das Format nicht mit dem oben uebereinstimmt ist was
+      // schiefgelaufen
+      if(pointerp(new) && !owner && sizeof(new)>4 &&
+         (owner=find_player(new[MY_AL_OWNER]))) {
+       // los, zuweisen!
+
+       SetProp(P_SHORT,      new[MY_AL_SHORT]);
+       SetProp(P_M_ATTR_MOD, new[MY_AL_ATTRM]);
+       destruct_time=        time()+new[MY_AL_DESTRUCT];
+
+       call_out(#'remove,new[3]);
+      } else call_out(#'remove,0);
+
+      return new;
+     }
+
+
+     ## Variante 3: und das gleiche mit Set/Querymethoden ##
+     // Prototypen fuer Set und Query-Methoden -> man Set
+     static mixed *my_query_autoloadobj();
+     static mixed *my_set_autoloadobj(mixed *new);
+
+     void create() {
+      // Binden der Methoden
+      Set(P_AUTOLOADOBJ, #'my_query_autoloadobj, F_QUERY_METHOD);
+      Set(P_AUTOLOADOBJ, #'my_set_autoloadobj, F_SET_METHOD);
+
+      // die werden nur von mir veraendert!
+      Set(P_AUTOLOADOBJ, PROTECTED, F_MODE_AS);
+      ...
+     }
+
+     static mixed *my_query_autoloadobj () {
+       // s.o.
+     }
+
+     static mixed *my_set_autoloadobj (mixed *new) {
+       // s.o.
+     }
+
+SIEHE AUCH
+----------
+::
+
+     P_AUTOLOAD, SetProp
+
+24.Aug.2006 Gloinson@MG
+
diff --git a/doc/sphinx/props/P_AVATAR_URI.rst b/doc/sphinx/props/P_AVATAR_URI.rst
new file mode 100644
index 0000000..3657d03
--- /dev/null
+++ b/doc/sphinx/props/P_AVATAR_URI.rst
@@ -0,0 +1,44 @@
+P_AVATAR_URI
+============
+
+NAME
+----
+::
+
+    P_AVATAR_URI                    "p_lib_avataruri"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    Lebewesen speichern in der Prop P_AVATAR_URI eine URI (string), welche auf
+    ein Bild im Netz verweist, welches ein Client fuer dieses Lebewesen
+    anzeigen kann.
+    Spieler koennen diese Avatar-URI mit dem Befehl 'avatar' anzeigen,
+    aendern und loeschen.
+    Avatar-URIs anderer Spieler lassen sich mit 'finger -a' ausgeben.
+
+BEMERKUNGEN
+-----------
+::
+
+    Diese Property kann nur vom Spieler oder einem EM modifiziert werden.
+
+SIEHE AUCH
+----------
+::
+
+    avatar
+
+LETZTER AENDERUNG
+-----------------
+::
+
+    03.9.2011, Zesstra
+
diff --git a/doc/sphinx/props/P_AVERAGE_SIZE.rst b/doc/sphinx/props/P_AVERAGE_SIZE.rst
new file mode 100644
index 0000000..b63f8da
--- /dev/null
+++ b/doc/sphinx/props/P_AVERAGE_SIZE.rst
@@ -0,0 +1,21 @@
+P_AVERAGE_SIZE
+==============
+
+NAME
+----
+::
+
+    P_AVERAGE_SIZE                "average_size"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Durchschnittliche Groesse eines Wesens dieser Rasse (derzeit nur Player)
+
diff --git a/doc/sphinx/props/P_AVERAGE_WEIGHT.rst b/doc/sphinx/props/P_AVERAGE_WEIGHT.rst
new file mode 100644
index 0000000..fbcddeb
--- /dev/null
+++ b/doc/sphinx/props/P_AVERAGE_WEIGHT.rst
@@ -0,0 +1,21 @@
+P_AVERAGE_WEIGHT
+================
+
+NAME
+----
+::
+
+    P_AVERAGE_WEIGHT                "average_weight"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Durchschnittliche Gewicht eines Wesens dieser Rasse (derzeit nur Player)
+
diff --git a/doc/sphinx/props/P_AWAY.rst b/doc/sphinx/props/P_AWAY.rst
new file mode 100644
index 0000000..54ea447
--- /dev/null
+++ b/doc/sphinx/props/P_AWAY.rst
@@ -0,0 +1,21 @@
+P_AWAY
+======
+
+NAME
+----
+::
+
+    P_AWAY                        "away"                        
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     String der ausgegeben wird, wenn man weg ist und eine Mitteilung bekommt.
+
diff --git a/doc/sphinx/props/P_BAD_MSG.rst b/doc/sphinx/props/P_BAD_MSG.rst
new file mode 100644
index 0000000..26f1104
--- /dev/null
+++ b/doc/sphinx/props/P_BAD_MSG.rst
@@ -0,0 +1,53 @@
+P_BAD_MSG
+=========
+
+NAME
+----
+::
+
+     P_BAD_MSG                     "std_food_bad_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung, wenn eine Speise gerade verdirbt.
+     Befindet sich die Speise in einem Spieler, geht die Meldung an genau
+     diesen, liegt die Speise im Raum, geht die Meldung an alle anwesenden
+     Spieler.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "@WER1 verdirbt."
+
+SIEHE AUCH
+----------
+::
+
+     P_LIFETIME, P_RESET_LIFETIME, P_NO_BAD,
+     wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_BLIND.rst b/doc/sphinx/props/P_BLIND.rst
new file mode 100644
index 0000000..2592794
--- /dev/null
+++ b/doc/sphinx/props/P_BLIND.rst
@@ -0,0 +1,57 @@
+P_BLIND
+=======
+
+NAME
+----
+::
+
+    P_BLIND                       "blind"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/viewcmd.h
+
+BESCHREIBUNG
+------------
+::
+
+    1, wenn der Spieler blind ist und nichts mehr sehen kann.
+
+    Wird von CannotSee() bei 'schau' und Betreten von Raeumen 
+    u.ae. ausgewertet.
+
+    P_BLIND kann auch auf einen String gesetzt werden, der 
+    dann statt des 'Du bist blind' ausgegeben wird.
+
+BEISPIELE
+---------
+::
+
+    this_player()->SetProp(P_BLIND,1);
+
+    this_player()->SetProp(P_BLIND,"Du hast Dir vorhin so schoen die "
+                                  +"Augen ausgekratzt ... deswegen "
+                                  +"siehst Du nun nichts mehr.\n");    
+
+BEMERKUNGEN
+-----------
+::
+
+    Um herauszufinden, ob ein Spieler etwas sehen kann oder nicht,
+    sollte man lieber if(this_player()->CannotSee() != 0) pruefen
+    statt if(this_player()->QueryProp(P_BLIND)).
+
+    Denn CannotSee() beruecksichtigt auch Nachtsicht (bzw. hier 
+    eine nicht aktivierte) und die Lichtmodifikatoren.
+
+SIEHE AUCH
+----------
+::
+
+    P_LIGHT_MODIFIER, P_PLAYER_LIGHT, CannotSee
+
+
+Letzte Aenderung: Sa 02.11.02, 00:30:00 Uhr, von Tilly
+
diff --git a/doc/sphinx/props/P_BODY.rst b/doc/sphinx/props/P_BODY.rst
new file mode 100644
index 0000000..5fbb13c
--- /dev/null
+++ b/doc/sphinx/props/P_BODY.rst
@@ -0,0 +1,22 @@
+P_BODY
+======
+
+NAME
+----
+::
+
+    P_BODY                        "body"                        
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Numerischer Wert fuer die Abwehrstaerke des blanken Koerpers
+     des Wesens.
+
diff --git a/doc/sphinx/props/P_BRIEF.rst b/doc/sphinx/props/P_BRIEF.rst
new file mode 100644
index 0000000..d50f389
--- /dev/null
+++ b/doc/sphinx/props/P_BRIEF.rst
@@ -0,0 +1,21 @@
+P_BRIEF
+=======
+
+NAME
+----
+::
+
+    P_BRIEF                       "brief"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/viewcmd.h
+
+BESCHREIBUNG
+------------
+::
+
+     Ist gesetzt, wenn der Spieler nur die Kurzbeschreibung sehen will.
+
diff --git a/doc/sphinx/props/P_BUFFER.rst b/doc/sphinx/props/P_BUFFER.rst
new file mode 100644
index 0000000..dc67f66
--- /dev/null
+++ b/doc/sphinx/props/P_BUFFER.rst
@@ -0,0 +1,21 @@
+P_BUFFER
+========
+
+NAME
+----
+::
+
+    P_BUFFER                      "buffer"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/comm.h
+
+BESCHREIBUNG
+------------
+::
+
+    Zeigt an, ob der Kobold des Spielers aktiv oder nicht aktiv ist.
+
diff --git a/doc/sphinx/props/P_BUY_ONLY_PLANTS.rst b/doc/sphinx/props/P_BUY_ONLY_PLANTS.rst
new file mode 100644
index 0000000..ec9eb9f
--- /dev/null
+++ b/doc/sphinx/props/P_BUY_ONLY_PLANTS.rst
@@ -0,0 +1,31 @@
+P_BUY_ONLY_PLANTS
+=================
+
+NAME
+----
+::
+
+    P_BUY_ONLY_PLANTS              "lib_p_buy_only_plants"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/room/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property kann auf 1 gesetzt werden, wenn ein Laden nur Kraeuter
+    ankaufen darf. Hierzu muss /std/room/kraeuterladen.c geerbt werden,
+    da nur dieses Objekt die Property beruecksichtigt.
+
+SIEHE AUCH
+----------
+::
+
+    /std/room/kraeuterladen.c
+
+Last modified: 02.04.2015 Arathorn 
+
diff --git a/doc/sphinx/props/P_CALLED_FROM_IP.rst b/doc/sphinx/props/P_CALLED_FROM_IP.rst
new file mode 100644
index 0000000..bc2d7f9
--- /dev/null
+++ b/doc/sphinx/props/P_CALLED_FROM_IP.rst
@@ -0,0 +1,21 @@
+P_CALLED_FROM_IP
+================
+
+NAME
+----
+::
+
+    P_CALLED_FROM_IP              "called_from_ip"              
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Letzte IP-Adr, von der aus sich der Spieler eingeloggt hat.
+
diff --git a/doc/sphinx/props/P_CAN_FLAGS.rst b/doc/sphinx/props/P_CAN_FLAGS.rst
new file mode 100644
index 0000000..1a89a92
--- /dev/null
+++ b/doc/sphinx/props/P_CAN_FLAGS.rst
@@ -0,0 +1,22 @@
+P_CAN_FLAGS
+===========
+
+NAME
+----
+::
+
+    P_CAN_FLAGS                   "can_flags"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/can.h
+
+BESCHREIBUNG
+------------
+::
+
+    Flags die bestimmte Befehle freischalten:
+    CAN_EMOTE, CAN_ECHO, CAN_REMOTE, CAN_PRESAY
+
diff --git a/doc/sphinx/props/P_CAP_NAME.rst b/doc/sphinx/props/P_CAP_NAME.rst
new file mode 100644
index 0000000..88277b6
--- /dev/null
+++ b/doc/sphinx/props/P_CAP_NAME.rst
@@ -0,0 +1,22 @@
+P_CAP_NAME
+==========
+
+NAME
+----
+::
+
+    P_CAP_NAME                    "cap_name"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Name des Spielers, der dekliniert und ausgegen wird.
+     NOT YET IMPLEMENTED.
+
diff --git a/doc/sphinx/props/P_CARRIED_VALUE.rst b/doc/sphinx/props/P_CARRIED_VALUE.rst
new file mode 100644
index 0000000..493d6ab
--- /dev/null
+++ b/doc/sphinx/props/P_CARRIED_VALUE.rst
@@ -0,0 +1,21 @@
+P_CARRIED_VALUE
+===============
+
+NAME
+----
+::
+
+    P_CARRIED_VALUE               "carried"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Entschaedigung, die der Spieler beim Einloggen erhaelt.
+
diff --git a/doc/sphinx/props/P_CHATS.rst b/doc/sphinx/props/P_CHATS.rst
new file mode 100644
index 0000000..4eb9f29
--- /dev/null
+++ b/doc/sphinx/props/P_CHATS.rst
@@ -0,0 +1,21 @@
+P_CHATS
+=======
+
+NAME
+----
+::
+
+    P_CHATS                       "chats"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Alist mit Strings, die das Monster zufaellig ausgibt.
+
diff --git a/doc/sphinx/props/P_CHAT_CHANCE.rst b/doc/sphinx/props/P_CHAT_CHANCE.rst
new file mode 100644
index 0000000..237abc5
--- /dev/null
+++ b/doc/sphinx/props/P_CHAT_CHANCE.rst
@@ -0,0 +1,21 @@
+P_CHAT_CHANCE
+=============
+
+NAME
+----
+::
+
+    P_CHAT_CHANCE                 "chat_chance"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wahrscheinlichkeit, mit der die Chats ausgegeben werden.
+
diff --git a/doc/sphinx/props/P_CLASS.rst b/doc/sphinx/props/P_CLASS.rst
new file mode 100644
index 0000000..c66f6d4
--- /dev/null
+++ b/doc/sphinx/props/P_CLASS.rst
@@ -0,0 +1,34 @@
+P_CLASS
+=======
+
+NAME
+----
+::
+
+     P_CLASS						"class"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/description.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Die Klassifizierung eines Objektes, soweit sie nicht schon ueber die 
+     Rasse oder die IDs des Objektes erfolgt ist. Zum Setzen dieser Property 
+     sollte man AddClass() benutzen, zur Klassenabfrage steht 
+     is_class_member() zur Verfuegung.
+     Die moeglichen Klassen findet man in /sys/class.h
+
+SIEHE AUCH
+----------
+::
+
+     AddClass(), RemoveClass(), is_class_member()
+
+
+Last modified: Sun May 19 20:30:09 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_CLOCKMSG.rst b/doc/sphinx/props/P_CLOCKMSG.rst
new file mode 100644
index 0000000..dabf444
--- /dev/null
+++ b/doc/sphinx/props/P_CLOCKMSG.rst
@@ -0,0 +1,21 @@
+P_CLOCKMSG
+==========
+
+NAME
+----
+::
+
+    P_CLOCKMSG                    "clockmsg"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Die Meldung wird zur vollen Stunde ausgegeben
+
diff --git a/doc/sphinx/props/P_CLONER.rst b/doc/sphinx/props/P_CLONER.rst
new file mode 100644
index 0000000..c45bcde
--- /dev/null
+++ b/doc/sphinx/props/P_CLONER.rst
@@ -0,0 +1,28 @@
+P_CLONER
+========
+
+NAME
+----
+::
+
+    P_CLONER                      "cloner"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Enthaelt einen String mit dem Namen desjenigen, der das Objekt gecloned 
+     hat.
+
+SIEHE AUCH
+----------
+::
+
+     P_CLONE_TIME
+
diff --git a/doc/sphinx/props/P_CLONE_MSG.rst b/doc/sphinx/props/P_CLONE_MSG.rst
new file mode 100644
index 0000000..991d2dd
--- /dev/null
+++ b/doc/sphinx/props/P_CLONE_MSG.rst
@@ -0,0 +1,21 @@
+P_CLONE_MSG
+===========
+
+NAME
+----
+::
+
+    P_CLONE_MSG                   "clone_msg"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung, die beim Clonen eines Obj ausgegegen wird (nur Magier)
+
diff --git a/doc/sphinx/props/P_CLONE_TIME.rst b/doc/sphinx/props/P_CLONE_TIME.rst
new file mode 100644
index 0000000..a0f613c
--- /dev/null
+++ b/doc/sphinx/props/P_CLONE_TIME.rst
@@ -0,0 +1,30 @@
+P_CLONE_TIME
+============
+
+NAME
+----
+::
+
+    P_CLONE_TIME                   "clone_time"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Enthaelt die Clone-Time eines Objektes.
+     Heutzutage obsolet, bitte stattdessen lieber die Efun object_time()
+     benutzen.
+
+SIEHE AUCH
+----------
+::
+
+     Verwandt: object_time(E)
+     Aehnlich: program_time(E)
+
diff --git a/doc/sphinx/props/P_CLOTHING.rst b/doc/sphinx/props/P_CLOTHING.rst
new file mode 100644
index 0000000..fc3642e
--- /dev/null
+++ b/doc/sphinx/props/P_CLOTHING.rst
@@ -0,0 +1,44 @@
+P_CLOTHING
+==========
+
+P_CLOTHINGS
+-----------
+::
+
+NAME
+----
+::
+
+     P_CLOTHING                     "std:clothing"
+
+DEFINIERT IN
+------------
+::
+
+     <living/clothing.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Array mit der getragenen nicht-schuetzenden Kleidung des Lebewesen.
+
+     
+
+     Falls ihr die Kleidung des Lebewesens, ggf. mit bestimten Kriterien,
+     ermitteln wollt, benutzt hierfuer bitte die Funktion FilterClothing()
+     statt selber ueber dieses Array zu laufen.
+
+     Diese Property kann nur vom Lebewesen selber beschrieben werden.
+
+     
+
+SIEHE AUCH
+----------
+::
+
+     Verwandt:		QueryArmourByType(L), FilterClothing(), FilterArmours()
+                  Wear(), Unwear(), P_ARMOURS
+
+14.03.2009, Zesstra
+
diff --git a/doc/sphinx/props/P_CMSG.rst b/doc/sphinx/props/P_CMSG.rst
new file mode 100644
index 0000000..90a7819
--- /dev/null
+++ b/doc/sphinx/props/P_CMSG.rst
@@ -0,0 +1,21 @@
+P_CMSG
+======
+
+NAME
+----
+::
+
+    P_CMSG                        "clonemsg"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     *** OBSOLET! *** Siehe P_CLONE_MSG
+
diff --git a/doc/sphinx/props/P_CNT_STATUS.rst b/doc/sphinx/props/P_CNT_STATUS.rst
new file mode 100644
index 0000000..b988681
--- /dev/null
+++ b/doc/sphinx/props/P_CNT_STATUS.rst
@@ -0,0 +1,22 @@
+P_CNT_STATUS
+============
+
+NAME
+----
+::
+
+    P_CNT_STATUS                  "cnt_status"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/container.h
+
+BESCHREIBUNG
+------------
+::
+
+     Status des Containers (offen, geschlossen, abgeschlossen)
+     siehe auch /sys/container.h
+
diff --git a/doc/sphinx/props/P_COMBATCMDS.rst b/doc/sphinx/props/P_COMBATCMDS.rst
new file mode 100644
index 0000000..075d8c4
--- /dev/null
+++ b/doc/sphinx/props/P_COMBATCMDS.rst
@@ -0,0 +1,44 @@
+P_COMBATCMDS
+============
+
+NAME
+----
+::
+
+    P_COMBATCMDS                  "combatcmds"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Fuer den Kampf gebrauchbare Befehle spezieller Objekte (damit auch
+     Monster sie automatisch richtig anwenden koennen)
+     Der Inhalt von P_COMBATCMDS ist ein Mapping, der Key ist das Kommando,
+     um den Gegenstand zu benutzen (also z.B. "wirf flammenkugel"), und der
+     Value ein weiteres Mapping mit Zusatzinfos (definiert in /sys/combat.h).
+     Folgende Keys sind definiert:
+     - C_MIN, C_AVG, C_MAX:
+       minimaler, mittlerer und maximaler Schaden, den das
+       Objekt macht. Alle Angaben in LEBENSPUNKTEN, d.h. Defend-Einheiten/10.
+       Bei einem Aufruf wie 'enemy->Defend(200+random(200), ...)' ist dann
+       C_MIN=20, C_AVG=30, C_MAX=40.
+     - C_DTYPES:
+       Array mit dem Schadenstyp oder den Schadenstypen. Beim Eisstab
+       wuerde der Eintrag dann 'C_DTYPES:({DT_COLD})' lauten.
+     - C_HEAL:
+       Sollte das Kampfobjekt ueber die Moeglichkeit verfuegen, den Anwender
+       irgendwie zu heilen, so wird hier die Heilung in LP/MP eingetragen.
+       Das funktioniert auch bei Objekten, die nur heilen, also sonst
+       nichts mit Kampf zu tun haben.
+       Im Lupinental z.B. gibt es Pfirsiche, die beim Essen 5LP heilen. Da
+       kann man dann 'SetProp(P_COMBATCMDS, (["iss pfirsich":([C_HEAL:5])]))'
+       eintragen.
+     Es sind auch mehrere Kommandos moeglich, z.B. bei Objekten, die sowohl
+     heilen als auch Kampfwirkung haben.
+
diff --git a/doc/sphinx/props/P_COMMANDS.rst b/doc/sphinx/props/P_COMMANDS.rst
new file mode 100644
index 0000000..bc0cb85
--- /dev/null
+++ b/doc/sphinx/props/P_COMMANDS.rst
@@ -0,0 +1,76 @@
+P_COMMANDS
+==========
+
+NAME
+----
+::
+
+     P_COMMANDS "commands"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/commands.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt ein Mapping mit den Befehlen, die dem Objekt
+     zugeordnet sind.
+
+     Sie sollte nicht von Hand manipuliert werden, sondern nur ueber die
+     Funktionen AddCmd() und RemoveCmd().
+
+     Das Mapping hat folgenden Aufbau:
+
+     ([ befehl : ({funktion1,...});
+                 ({flag1,...});
+                 ({regel1,...});
+                 ({id1, ...}),
+                 ({closure auf fun1, ...}),
+        ... ])
+
+     Die Eintraege entsprechen den Parametern des AddCmd()-Aufrufs, sind
+     aber in anderer Form. Als Beispiel:
+
+     AddCmd(verb,fun1,1);
+     AddCmd(verb+syn1a|syn1b&syn2a|syn2b|syn2c, fun2,
+            error1_notify|error2_notify^error2_write);
+     -->
+     ([verb:
+        ({fun1,fun2});                                        // funs
+        ({1,({error1_notify, error2_write^error2_say, 1})});  // flags
+        ({0,({({syn1a,syn1b}),({syn2a,syn2b,syn2c})})});      // rules
+        0;                                                    // IDs
+        ({closure auf fun1, closure auf fun2}) ])             // Cache
+
+     Funs:  ({<fun1> ,...
+              'fun' kann sein: Closure
+                               String: Methodenname - wird etwas geprueft
+                               Objekt: wenn keine Methode, this_object() fuer
+                                       intern, previous_object() fuer extern
+                               0 (erloschenes externes Objekt)
+     Rules: ({<Regelsatz fuer fun1>, ({<1. Synonymgruppe>,
+                                       <2. Synonymgruppe, ...}), ...})
+     Flags: ({<Flag fuer fun1>, ({<Fehlermeldung 1. Synonymgruppe>, ... ,
+                                  [, Index fuer write anstatt notify_fail]}),
+             ... })
+     IDs:   0 oder ({<ID fuer fun1>}) oder ({0, <ID fuer fun2>}) ...
+     Cache: ({<closure fuer fun1>, ...
+
+BEMERKUNGEN
+-----------
+::
+
+     Cache-Closures sind bei Export immer genullt
+
+SIEHE AUCH
+----------
+::
+
+     /std/thing/commands.c, AddCmd(), RemoveCmd()
+
+16. Dez 2016 Gloinson
+
diff --git a/doc/sphinx/props/P_COMPILER_PATH.rst b/doc/sphinx/props/P_COMPILER_PATH.rst
new file mode 100644
index 0000000..1462e46
--- /dev/null
+++ b/doc/sphinx/props/P_COMPILER_PATH.rst
@@ -0,0 +1,40 @@
+P_COMPILER_PATH
+===============
+
+NAME
+----
+::
+
+    P_COMPILER_PATH               "compiler_path"               
+
+DEFINIERT IN
+------------
+::
+
+    /sys/v_compiler.h
+
+BESCHREIBUNG
+------------
+::
+
+    Directory in dem ein Virtual Compiler Objekte erzeugt.
+    Muss im virtual_compiler.c gesetzt werden.
+
+    Der VirtualCompiler muss nicht zwingend in diesem Verzeichnis
+    liegen, um zu funktionieren, sollte es aber, um die Zuordnung des VCs zu
+    "seinen" Objekten zu erleichern.
+
+BEISPIEL
+--------
+::
+
+    SetProp(P_COMPILER_PATH,"/d/region/magier/vc/");
+
+SIEHE AUCH
+----------
+::
+
+    P_STD_OBJECT, virtual_compiler
+
+Letzte Aenderung: 23.10.2007, von Zesstra
+
diff --git a/doc/sphinx/props/P_CONSUME_MSG.rst b/doc/sphinx/props/P_CONSUME_MSG.rst
new file mode 100644
index 0000000..a176e52
--- /dev/null
+++ b/doc/sphinx/props/P_CONSUME_MSG.rst
@@ -0,0 +1,50 @@
+P_CONSUME_MSG
+=============
+
+NAME
+----
+::
+
+     P_CONSUME_MSG                 "std_food_consume_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Raum exklusive Konsument, wenn eine Speise konsumiert
+     wird.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "@WER2 konsumiert @WEN1."
+
+SIEHE AUCH
+----------
+::
+
+     /std/food.c, wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_CONTAINER.rst b/doc/sphinx/props/P_CONTAINER.rst
new file mode 100644
index 0000000..fa1d49d
--- /dev/null
+++ b/doc/sphinx/props/P_CONTAINER.rst
@@ -0,0 +1,21 @@
+P_CONTAINER
+===========
+
+NAME
+----
+::
+
+    P_CONTAINER                   "container"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_CONTENTS.rst b/doc/sphinx/props/P_CONTENTS.rst
new file mode 100644
index 0000000..7c579dc
--- /dev/null
+++ b/doc/sphinx/props/P_CONTENTS.rst
@@ -0,0 +1,21 @@
+P_CONTENTS
+==========
+
+NAME
+----
+::
+
+    P_CONTENTS                    "contents"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/container.h
+
+BESCHREIBUNG
+------------
+::
+
+     *** OBSOLET! ***
+
diff --git a/doc/sphinx/props/P_CORPSE.rst b/doc/sphinx/props/P_CORPSE.rst
new file mode 100644
index 0000000..7cbbb89
--- /dev/null
+++ b/doc/sphinx/props/P_CORPSE.rst
@@ -0,0 +1,44 @@
+P_CORPSE
+========
+
+NAME
+----
+::
+
+    P_CORPSE		"corpse"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Hier kann man angeben, welche Art von Leiche beim Tod des NPCs
+    hinterlassen wird. Damit die Leiche auf dem Moerder-Kanal senden
+    kann, muss das Leichen-Objekt /std/corpse sein oder erben.
+
+BEISPIELE
+---------
+::
+
+    Die uebliche Standardleiche befindet sich unter "/std/corpse.c",
+    welches auch die Defaulteinstellung fuer diese Property darstellt:
+      SetProp(P_CORPSE,"/std/corpse");
+    Man koennte aber auch einen Zombie entstehen lassen:
+      SetProp(P_CORPSE,PATH("zombie"));
+    PATH kennzeichnet hierbei den Pfad, unter welchem "zombie.c" zu
+    finden ist.
+
+SIEHE AUCH
+----------
+::
+
+    P_NOCORPSE, P_ZAP_MSG, P_DIE_MSG, P_MURDER_MSG, P_KILL_MSG
+
+
+Last modified: Mon Apr 07 11:02:06 2003 by Mandragon
+
diff --git a/doc/sphinx/props/P_CURRENTDIR.rst b/doc/sphinx/props/P_CURRENTDIR.rst
new file mode 100644
index 0000000..3cf7421
--- /dev/null
+++ b/doc/sphinx/props/P_CURRENTDIR.rst
@@ -0,0 +1,28 @@
+P_CURRENTDIR
+============
+
+NAME
+----
+::
+
+    P_CURRENTDIR                  "currentdir"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/shells.h
+
+BESCHREIBUNG
+------------
+::
+
+    Momentanes Verzeichnis in dem der Magier ist.
+    (nur fuer Magier von Belang)
+
+Siehe auch:
+    P_CURRENTDIR
+
+Letzte Aenderung:
+    03.06.2015, Bugfix
+
diff --git a/doc/sphinx/props/P_CURSED.rst b/doc/sphinx/props/P_CURSED.rst
new file mode 100644
index 0000000..fb293f7
--- /dev/null
+++ b/doc/sphinx/props/P_CURSED.rst
@@ -0,0 +1,56 @@
+P_CURSED
+========
+
+NAME
+----
+::
+
+     P_CURSED "cursed"
+
+DEFINIERT IN
+------------
+::
+
+     <properties.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Ruestungen und Waffen, die sich, einmal angezogen bzw. gezueckt, nicht
+     wieder entfernen lassen sollen, kann man ueber diese Property
+     realisieren. Die Waffe oder Ruestung hat dann in der Regel negative
+     Auswirkungen auf den Traeger...
+
+     Setzt man diese Property auf eine Zahl ungleich 0, so bekommt man bei
+     dem Versuch, den verfluchten Gegenstand auszuziehen bzw. wegzustecken
+     eine Defaultmeldung.
+
+     Traegt man dagegen einen String ein, so wird dieser beim Versuch, den
+     Gegenstand loszuwerden, ausgegeben.
+
+BEMERKUNGEN
+-----------
+::
+
+     Der 'Fluch' wird erst wirksam, wenn das Opfer die Waffe zueckt bzw. die
+     Ruestung anzieht. Ist dies erst einmal geschehen, helfen nur noch
+     Zaubersprueche oder fluchbrechende Institutionen.
+
+     Moechte man, dass der Gegenstand entfluchbar ist, dann sollte er auch
+     ansprechbar sein (gueltige ID, nicht unsichtbar), da das durch derzeitige
+     Entfluchmoeglichkeiten vorausgesetzt wird.
+
+     Flueche koennen ein P_LEVEL 1-100 haben, welches die Schwierigkeit des
+     Enfluchens festlegt. Der Klerus behandelt das nicht linear.
+
+SIEHE AUCH
+----------
+::
+
+     Eigenschaften: P_LEVEL
+     Aehnlich:      AddClass (CL_CURSE)
+     Code:         /std/armour, /std/weapon, /gilden/files.klerus/prayermaster
+
+25. Aug 2016 Gloinson
+
diff --git a/doc/sphinx/props/P_DAMAGED.rst b/doc/sphinx/props/P_DAMAGED.rst
new file mode 100644
index 0000000..b965dd6
--- /dev/null
+++ b/doc/sphinx/props/P_DAMAGED.rst
@@ -0,0 +1,42 @@
+P_DAMAGED
+=========
+
+NAME
+----
+::
+
+     P_DAMAGED "item_damaged"
+
+DEFINIERT IN
+------------
+::
+
+     <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Ruestungen und Waffen koennen im Eifer des Gefechts beschaedigt werden.
+     Der Grad der Beschaedigung sollte in dieser Property festgehalten
+     werden.
+
+     Bei Waffen ergibt sich die urspruengliche Waffenklasse aus der Summe
+     von aktueller Waffenklasse und dem Wert von P_DAMAGED:
+     altes P_WC = aktuelles P_WC + P_DAMAGED.
+
+     Analoges gilt fuer die Ruestungsklasse einer beschaedigten Ruestung:
+     altes P_AC = aktuelles P_AC + P_DAMAGED.
+
+     P_DAMAGED bitte niemals direkt setzen, sondern immer ueber
+     die Funktion Damage() manipulieren!
+
+SIEHE AUCH
+----------
+::
+
+     /std/armour.c, /std/weapon.c, TakeFlaw(), QueryFlaw(), Damage()
+
+
+02.10.2007, Zesstra
+
diff --git a/doc/sphinx/props/P_DAMAGE_MSG.rst b/doc/sphinx/props/P_DAMAGE_MSG.rst
new file mode 100644
index 0000000..0a1834a
--- /dev/null
+++ b/doc/sphinx/props/P_DAMAGE_MSG.rst
@@ -0,0 +1,58 @@
+P_DAMAGE_MSG
+============
+
+NAME
+----
+::
+
+     P_DAMAGE_MSG      "std_p_dam_msg"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Property lassen sich individuelle Treffer-/Schadensmeldungen
+     fuer dieses Lebewesen festlegen. Sie werden verwendet, falls bei
+     eingehendem Schaden der Aufrufer von Defend() Schadensmeldungen wuenscht
+     (d.h. SP_SHOW_DAMAGE != 0), jedoch keine eigenen Meldungen vorgibt.
+
+     Enthaelt diese Property kein Array, werden ggf. die Standardmeldungen
+     ausgegeben.
+
+     Datenstruktur der Property:
+       ({
+        ({ int lphit1, string mess_me,
+                       string mess_en,
+                       string mess_room }),
+        ({ lphit2, mess_me, mess_en, mess_room }),
+        ...
+        ({ lphitn, mess_me, mess_en, mess_room }),
+       })
+       wobei lphit1<lphit2<...<lphitn sein muss, d.h. das Array-
+       Array ist aufsteigend sortiert.
+
+     Ist ein Treffer x LP hart, werden die Meldungen des lphit-
+     Arrays ausgegeben, dessen Wert am naechsten unter dem Schaden
+     liegt.
+
+     In den Meldungen mess_me (an den Getroffenen), mess_en (an
+     den Feind), mess_room (an die restlichen Umstehenden) koennen
+     Ersatzstrings wie folgt verwendet werden:
+     @WER1/@WESSEN1/@WEM1/@WEN1 - name(casus) des Getroffenen (TO)
+     @WER2/@WESSEN2/@WEM2/@WEN2 - name(casus) des Feindes (enemy)
+
+SIEHE AUCH
+----------
+::
+
+     Defend()
+     /std/living/combat.c
+
+15.09.2010, Zesstra
+
diff --git a/doc/sphinx/props/P_DAM_DESC.rst b/doc/sphinx/props/P_DAM_DESC.rst
new file mode 100644
index 0000000..093e2f5
--- /dev/null
+++ b/doc/sphinx/props/P_DAM_DESC.rst
@@ -0,0 +1,57 @@
+P_DAM_DESC
+==========
+
+NAME
+----
+::
+
+     P_DAM_DESC "dam_desc"
+
+DEFINIERT IN
+------------
+::
+
+     <weapon/description.h>
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Property befindet sich ein String oder String-Array, durch 
+     den die Langbeschreibung einer Ruestung oder Waffe ergaenzt wird,
+     wenn diese Beschaedigt ist.
+
+BEMERKUNGEN
+-----------
+::
+
+     Wird ein String gesetzt, so wird dieser angezeigt, wenn die Waffe
+     mehr als die Haelfte beschaedigt ist. Bei einem Array wird der
+     Text entsprechend dem Grad der Beschaedigung ausgewaehlt; das Array
+     muss in der Reihenfolge zunehmender Beschaedigung sortiert sein.
+
+     
+
+     Bei Waffen ist P_DAM_DESC defaultmaessig auf DFLT_DAM_DESC gesetzt,
+     bei Ruestungen auf 0.
+
+BEISPIELE
+---------
+::
+
+     SetProp(P_DAM_DESC,"ist beschaedigt");
+     SetProp(P_DAM_DESC,({
+         "ist etwas beschaedigt",
+         "ist beschaedigt",
+         "ist beschaedigt",
+         "ist sehr beschaedigt"}) );
+
+SIEHE AUCH
+----------
+::
+
+     /std/weapon/description.c
+
+
+Last modified: Mon Oct 14 15:29:00 1996 by Paracelsus
+
diff --git a/doc/sphinx/props/P_DAM_TYPE.rst b/doc/sphinx/props/P_DAM_TYPE.rst
new file mode 100644
index 0000000..3c634f3
--- /dev/null
+++ b/doc/sphinx/props/P_DAM_TYPE.rst
@@ -0,0 +1,36 @@
+P_DAM_TYPE
+==========
+
+NAME
+----
+::
+
+     P_DAM_TYPE "dam_type"
+
+DEFINIERT IN
+------------
+::
+
+     <weapon.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Was fuer eine Art von Schaden richtet die Waffe an? Hier kann man einen
+     String oder ein Array von Strings angeben, je nachdem, welche Effekte
+     die Waffe ausloesen kann. Man sollte hier nur die in <combat.h>
+     definierten Schadenstypen verwenden.
+
+     Fragt man diese Property ab, bekommt man uebrigens immer ein Array von
+     Strings zurueck.
+
+SIEHE AUCH
+----------
+::
+
+     /std/weapon.c
+
+
+Last modified: Sun May 19 15:23:43 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_DEADS.rst b/doc/sphinx/props/P_DEADS.rst
new file mode 100644
index 0000000..44075ae
--- /dev/null
+++ b/doc/sphinx/props/P_DEADS.rst
@@ -0,0 +1,22 @@
+P_DEADS
+=======
+
+NAME
+----
+::
+
+    P_DEADS                       "deads"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der Tode des Spielers seit Einfuehrung dieser Property (irgendwann
+     im Dezember 94)
+
diff --git a/doc/sphinx/props/P_DEAF.rst b/doc/sphinx/props/P_DEAF.rst
new file mode 100644
index 0000000..59128c5
--- /dev/null
+++ b/doc/sphinx/props/P_DEAF.rst
@@ -0,0 +1,23 @@
+P_DEAF
+======
+
+NAME
+----
+::
+
+    P_DEAF                        "deaf"                        
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/comm.h
+
+BESCHREIBUNG
+------------
+::
+
+     Der Spieler ist taub. Falls hier ein String steht, wird dieser bei
+     "teile ... mit" an den Mitteilenden ausgegeben, ansonsten kommt nur
+     "Soundso ist leider gerade taub.\n"
+
diff --git a/doc/sphinx/props/P_DEATH_MSG.rst b/doc/sphinx/props/P_DEATH_MSG.rst
new file mode 100644
index 0000000..82632e9
--- /dev/null
+++ b/doc/sphinx/props/P_DEATH_MSG.rst
@@ -0,0 +1,79 @@
+P_DEATH_MSG
+===========
+
+DEFINIERT IN
+------------
+::
+
+        /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+        In dieser Property kann man ein Array ablegen, das beim Tod eines
+        Spielers ausgewertet und der darin enthaltene String
+        anschliessend auf dem Todeskanal gesendet wird.
+        Der Array muss folgenden Aufbau haben:
+
+          SetProp( P_DEATH_MSG, ({ Text, Flag }) )
+
+          
+
+        Text: Der Text kann beliebig eingegeben werde. Allerdings darf 
+              er nicht mit einem '\n' abgeschlossen werden.
+
+        
+
+        Flag: Hier kann man drei Arten von Sendemethoden waehlen.
+              1. MSG_SAY      Normales Senden
+              2. MSG_GEMOTE   Genitiv-Emote
+              3. MSG_EMOTE    Emote
+
+BEISPIEL
+--------
+::
+
+        Der Spieler soll direkt nach seinem Tod eine Meldung auf dem 
+        Todeskanal senden.
+
+        
+
+        Nachricht auf dem Todes-Kanal:
+
+	
+
+        [Tod:Spieler] Ich will keine Beleidsbekundungen!
+
+        
+
+        void spieler_stirbt()
+	{
+         this_player()->SetProp( P_DEATH_MSG, ({ "Ich will keine "
+                                        "Beleidsbekundungen!", MSG_SAY}) );
+         this_player()->die();
+        }
+
+        
+
+        Nachricht auf dem Todes-Kanal:
+
+	
+
+        [Tod:Spieler liebt es zu sterben.]
+
+        
+
+        void spieler_stirbt()
+        {
+         this_player()->SetProp( P_DEATH_MSG, ({ "liebt es zu sterben.",
+                                                 MSG_EMOTE }) );
+         this_player()->die();
+        }
+
+SIEHE AUCH
+----------
+::
+
+        P_MURDER_MSG, P_FORCE_MURDER_MSG
+
diff --git a/doc/sphinx/props/P_DEATH_SPONSORED_BY.rst b/doc/sphinx/props/P_DEATH_SPONSORED_BY.rst
new file mode 100644
index 0000000..33e40b3
--- /dev/null
+++ b/doc/sphinx/props/P_DEATH_SPONSORED_BY.rst
@@ -0,0 +1,44 @@
+P_DEATH_SPONSORED_BY
+====================
+
+NAME
+----
+::
+
+    P_DEATH_SPONSORED_BY          "responsible_wizard_for_death"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property hat fuer den Spielverlauf keinerlei Bedeutung.
+    Doch gibt es Magier, die ihren Namen gern in /log/KILLS lesen.
+    Wird ein Spieler durch einen Npc getoetet, ist normalerweise der
+    Magier fuer den Tod verantwortlich, in dessen Verzeichnis sich 
+    das Monster befindet. 
+    Doch gibt es nun auch den Fall, dass sich das Monster in einem 
+    Verzeichnis /alle/mon/ befindet, oder der Spieler durch eine
+    Aktion im Raum oder an einem Objekt stirbt.
+
+    Ist in einem solchen Monster, Raum oder Objekt diese Property
+    gesetzt, wird der dort angebene String an das Log-File ueber-
+    geben.
+
+BEISPIEL
+--------
+::
+
+    SetProp(P_DEATH_SPONSORED_BY,"tilly");
+
+ 
+
+Last modified Don Feb 15 140100 2001 von Tilly
+----------------------------------------------
+::
+
diff --git a/doc/sphinx/props/P_DEFAULT_GUILD.rst b/doc/sphinx/props/P_DEFAULT_GUILD.rst
new file mode 100644
index 0000000..d0ad46a
--- /dev/null
+++ b/doc/sphinx/props/P_DEFAULT_GUILD.rst
@@ -0,0 +1,44 @@
+P_DEFAULT_GUILD
+===============
+
+NAME
+----
+::
+
+	P_DEFAULT_GUILD			"default_guild"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property enthaelt den Namen der Gilde, welcher der Spieler
+	standardmaessig angehoert. Der Name wird hierbei in Form eines
+	kleingeschriebenen Strings angegeben. Ist P_GUILD gleich Null, so
+	wird bei der Abfrage selbiger Property hierfuer der Eintrag von
+	P_DEFAULT_GUILD eingesetzt.
+
+BEMERKUNGEN
+-----------
+::
+
+	Nach dem ersten Einloggen des Spielers wird ebenfalls dieser Eintrag
+	genutzt, um die Gildenzugehoerigkeit festzulegen. Dies kann dazu
+	genutzt werden, um eine rassenabhaengige Bestimmung der
+	Standardgilde zu gewaehrleisten
+	 (Felinen -> Katzenkrieger, andere Rassen -> Abenteurer).
+
+SIEHE AUCH
+----------
+::
+
+	P_GUILD, P_VISIBLE_GUILD
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_DEFAULT_NOTIFY_FAIL.rst b/doc/sphinx/props/P_DEFAULT_NOTIFY_FAIL.rst
new file mode 100644
index 0000000..d00f304
--- /dev/null
+++ b/doc/sphinx/props/P_DEFAULT_NOTIFY_FAIL.rst
@@ -0,0 +1,21 @@
+P_DEFAULT_NOTIFY_FAIL
+=====================
+
+NAME
+----
+::
+
+    P_DEFAULT_NOTIFY_FAIL         "default_notify_fail"         
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player.h
+
+BESCHREIBUNG
+------------
+::
+
+     Welche Fehlermeldung kommt, wenn kein Objekt ein notify_fail macht?
+
diff --git a/doc/sphinx/props/P_DEFENDERS.rst b/doc/sphinx/props/P_DEFENDERS.rst
new file mode 100644
index 0000000..bc83fe5
--- /dev/null
+++ b/doc/sphinx/props/P_DEFENDERS.rst
@@ -0,0 +1,46 @@
+P_DEFENDERS
+===========
+
+NAME
+----
+::
+
+	P_DEFENDERS			"defenders"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property wird in Lebewesen gesetzt, welche zum Beispiel durch
+	andere Lebewesen verteidigt werden. Die Verteidiger muessen
+	natuerlich bekannt sein, damit sie per InformDefend() ueber Angriffe
+	informiert werden und per DefendOther() in den laufenden Angriff
+	eingreifen koennen (zum Beispiel Schaeden abwehren oder umwandeln).
+	Es muessen jedoch nicht unbedingt Lebewesen oder echte Verteidiger
+	sein, auch beliebige Objekte koennen ueber Angriffe informiert
+	werden und in diese eingreifen. Allerdings besteht die
+	Einschraenkung, dass diese Objekte in der gleichen Umgebung sein
+	muessen, wie das zu verteidigende Lebewesen oder im zu verteidigenden
+	Lebewesen selbst.
+	Die Objekte, welche dies betrifft, sind in Form eines Arrays in
+	der Property P_DEFENDERS abgelegt.
+	Gesetzt und geloescht werden sollten die Eintraege dieses Arrays
+	jedoch nur mittels der dafuer bereitgestellten Funktionen
+	AddDefender() und RemoveDefender().
+
+SIEHE AUCH
+----------
+::
+
+	AddDefender(), RemoveDefender(), InformDefend(), DefendOther(),
+	/std/living/combat.c
+
+
+Last modified: 21.09.2007, Zesstra
+
diff --git a/doc/sphinx/props/P_DEFEND_FUNC.rst b/doc/sphinx/props/P_DEFEND_FUNC.rst
new file mode 100644
index 0000000..9e370c9
--- /dev/null
+++ b/doc/sphinx/props/P_DEFEND_FUNC.rst
@@ -0,0 +1,51 @@
+P_DEFEND_FUNC
+=============
+
+NAME
+----
+::
+
+     P_DEFEND_FUNC "defend_func"
+
+DEFINIERT IN
+------------
+::
+
+     <armour.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Falls ein Objekt eine DefendFunc() fuer die Ruestung definiert, so muss
+     dieses Objekt in dieser Property eingetragen sein.
+
+     Die Auswertung dieser Property erfolgt in QueryDefend().
+
+BEMERKUNGEN
+-----------
+::
+
+     1. Es funktioniert _nicht_ hier eine Closure reinzuschreiben.
+     2. Diese Prop laesst sich _nicht_ sinnvoll mit Set() setzen, also z.B.
+        keine Query-Methoden hier reinzuschreiben.
+     3. Definieren von _set_defend_func() oder Set-Methoden via Set()
+        funktioniert auch nicht, zumindest nicht mit dem gewuenschten
+        Ergebnis. ;-)
+     4. Bei Verwendung bitte Balance-Richtlinien beachten!
+
+BEISPIELE
+---------
+::
+
+     Siehe das Beispiel zu DefendFunc()
+
+SIEHE AUCH
+----------
+::
+
+     /std/armour.c, DefendFunc(), balance, grenzwerte
+
+
+Last modified: Sat May 18 15:26:17 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_DEFUEL_AMOUNT_DRINK.rst b/doc/sphinx/props/P_DEFUEL_AMOUNT_DRINK.rst
new file mode 100644
index 0000000..7e6db27
--- /dev/null
+++ b/doc/sphinx/props/P_DEFUEL_AMOUNT_DRINK.rst
@@ -0,0 +1,38 @@
+P_DEFUEL_AMOUNT_DRINK
+=====================
+
+NAME
+----
+::
+
+    P_DEFUEL_AMOUNT_DRINK                          "defuel_amount_drink"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/defuel.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt die rassenabhaengige Enttankvorgabe fuer Trinken.
+
+    
+
+SIEHE AUCH
+----------
+::
+
+     Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+                P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
+                P_DEFUEL_AMOUNT_FOOD
+     Methoden:  defuel_drink, defuel_food
+     Tanken:    consume, drink_alcohol, drink_soft, eat_food
+     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+     Konzepte:  heilung, enttanken, food
+
+9. August 2015 Gloinson
+
diff --git a/doc/sphinx/props/P_DEFUEL_AMOUNT_FOOD.rst b/doc/sphinx/props/P_DEFUEL_AMOUNT_FOOD.rst
new file mode 100644
index 0000000..27ca45e
--- /dev/null
+++ b/doc/sphinx/props/P_DEFUEL_AMOUNT_FOOD.rst
@@ -0,0 +1,38 @@
+P_DEFUEL_AMOUNT_FOOD
+====================
+
+NAME
+----
+::
+
+    P_DEFUEL_AMOUNT_FOOD                          "defuel_amount_food"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/defuel.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt die rassenabhaengige Enttankvorgabe fuer Essen.
+
+    
+
+SIEHE AUCH
+----------
+::
+
+     Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+                P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
+                P_DEFUEL_AMOUNT_DRINK
+     Methoden:  defuel_drink, defuel_food
+     Tanken:    consume, drink_alcohol, drink_soft, eat_food
+     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+     Konzepte:  heilung, enttanken, food
+
+9. August 2015 Gloinson
+
diff --git a/doc/sphinx/props/P_DEFUEL_LIMIT_DRINK.rst b/doc/sphinx/props/P_DEFUEL_LIMIT_DRINK.rst
new file mode 100644
index 0000000..e623554
--- /dev/null
+++ b/doc/sphinx/props/P_DEFUEL_LIMIT_DRINK.rst
@@ -0,0 +1,39 @@
+P_DEFUEL_LIMIT_DRINK
+====================
+
+NAME
+----
+::
+
+    P_DEFUEL_LIMIT_DRINK                          "defuel_limit_drink"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/defuel.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt die rassenabhaengige minimale Menge an Trinken, ab dem ein
+    Enttankvorgang fuer den Spieler moeglich ist.
+
+    
+
+SIEHE AUCH
+----------
+::
+
+     Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+                P_DEFUEL_LIMIT_FOOD,
+                P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
+     Methoden:  defuel_drink, defuel_food
+     Tanken:    consume, drink_alcohol, drink_soft, eat_food
+     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+     Konzepte:  heilung, enttanken, food
+
+9. August 2015 Gloinson
+
diff --git a/doc/sphinx/props/P_DEFUEL_LIMIT_FOOD.rst b/doc/sphinx/props/P_DEFUEL_LIMIT_FOOD.rst
new file mode 100644
index 0000000..ebe9dcd
--- /dev/null
+++ b/doc/sphinx/props/P_DEFUEL_LIMIT_FOOD.rst
@@ -0,0 +1,39 @@
+P_DEFUEL_LIMIT_FOOD
+===================
+
+NAME
+----
+::
+
+    P_DEFUEL_LIMIT_FOOD                          "defuel_limit_food"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/defuel.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt die rassenabhaengige minimale Menge an Essen, ab dem ein
+    Enttankvorgang fuer den Spieler moeglich ist.
+
+    
+
+SIEHE AUCH
+----------
+::
+
+     Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+                P_DEFUEL_LIMIT_DRINK,
+                P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
+     Methoden:  defuel_drink, defuel_food
+     Tanken:    consume, drink_alcohol, drink_soft, eat_food
+     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+     Konzepte:  heilung, enttanken, food
+
+9. August 2015 Gloinson
+
diff --git a/doc/sphinx/props/P_DEFUEL_TIME_DRINK.rst b/doc/sphinx/props/P_DEFUEL_TIME_DRINK.rst
new file mode 100644
index 0000000..236486a
--- /dev/null
+++ b/doc/sphinx/props/P_DEFUEL_TIME_DRINK.rst
@@ -0,0 +1,39 @@
+P_DEFUEL_TIME_DRINK
+===================
+
+NAME
+----
+::
+
+    P_DEFUEL_TIME_DRINK                          "defuel_time_drink"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/defuel.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt die rassenabhaengige minimale Zeit zwischen einzelnen
+    Enttankvorgaengen fuer Trinken eines Spielers.
+
+    
+
+SIEHE AUCH
+----------
+::
+
+     Aehnlich:  P_DEFUEL_TIME_FOOD,
+                P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
+                P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
+     Methoden:  defuel_drink, defuel_food
+     Tanken:    consume, drink_alcohol, drink_soft, eat_food
+     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+     Konzepte:  heilung, enttanken, food
+
+9. August 2015 Gloinson
+
diff --git a/doc/sphinx/props/P_DEFUEL_TIME_FOOD.rst b/doc/sphinx/props/P_DEFUEL_TIME_FOOD.rst
new file mode 100644
index 0000000..b77673f
--- /dev/null
+++ b/doc/sphinx/props/P_DEFUEL_TIME_FOOD.rst
@@ -0,0 +1,39 @@
+P_DEFUEL_TIME_FOOD
+==================
+
+NAME
+----
+::
+
+    P_DEFUEL_TIME_FOOD                          "defuel_time_food"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/defuel.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt die rassenabhaengige minimale Zeit zwischen einzelnen
+    Enttankvorgaengen fuer Essen eines Spielers.
+
+    
+
+SIEHE AUCH
+----------
+::
+
+     Aehnlich:  P_DEFUEL_TIME_DRINK,
+                P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
+                P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
+     Methoden:  defuel_drink, defuel_food
+     Tanken:    consume, drink_alcohol, drink_soft, eat_food
+     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+     Konzepte:  heilung, enttanken, food
+
+9. August 2015 Gloinson
+
diff --git a/doc/sphinx/props/P_DEPARTMSG.rst b/doc/sphinx/props/P_DEPARTMSG.rst
new file mode 100644
index 0000000..0913c76
--- /dev/null
+++ b/doc/sphinx/props/P_DEPARTMSG.rst
@@ -0,0 +1,21 @@
+P_DEPARTMSG
+===========
+
+NAME
+----
+::
+
+    P_DEPARTMSG                   "departmsg"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung, mit der ein Transporter ablegt.
+
diff --git a/doc/sphinx/props/P_DESCRIPTION.rst b/doc/sphinx/props/P_DESCRIPTION.rst
new file mode 100644
index 0000000..4066b81
--- /dev/null
+++ b/doc/sphinx/props/P_DESCRIPTION.rst
@@ -0,0 +1,21 @@
+P_DESCRIPTION
+=============
+
+NAME
+----
+::
+
+    P_DESCRIPTION                 "description"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Beschreibung des Spielers
+
diff --git a/doc/sphinx/props/P_DESTROY_BAD.rst b/doc/sphinx/props/P_DESTROY_BAD.rst
new file mode 100644
index 0000000..bc26127
--- /dev/null
+++ b/doc/sphinx/props/P_DESTROY_BAD.rst
@@ -0,0 +1,57 @@
+P_DESTROY_BAD
+=============
+
+NAME
+----
+::
+
+     P_DESTROY_BAD                 "std_food_destroy_bad"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Speichert den Wert fuer das Verhalten, wenn eine Speise verdirbt.
+     Dieses Verhalten wird in make_bad() umgesetzt.
+
+     
+
+     DESTROY_BAD   : Die Speise wird beim Verderben zerstoert
+                     bzw. der Behaelter wird geleert
+     DESTROY_NEVER : Die Speise wird beim Verderben nicht zerstoert
+     pos. Integer  : Anzahl der Sekunden, die zwischen Verderben
+                     und Zerstoeren der Speise liegen sollen
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Ist ein positiver Integer-Wert in dieser Property gespeichert, wird nach
+     Ausfuehren der Methode make_bad() nach Ablauf der angegebenen Sekunden
+     ein weiterer Reset ausgeloest, der make_destroy() aufruft.
+
+     
+
+DEFAULT
+-------
+::
+
+     Initial ist diese Property auf DESTROY_BAD gesetzt.
+
+SIEHE AUCH
+----------
+::
+
+     /std/food.c, wiz/food
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_DESTRUCT_MSG.rst b/doc/sphinx/props/P_DESTRUCT_MSG.rst
new file mode 100644
index 0000000..82257b3
--- /dev/null
+++ b/doc/sphinx/props/P_DESTRUCT_MSG.rst
@@ -0,0 +1,21 @@
+P_DESTRUCT_MSG
+==============
+
+NAME
+----
+::
+
+    P_DESTRUCT_MSG                "destruct_msg"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung, die beim Destructen Obj ausgegegen wird (nur Magier)
+
diff --git a/doc/sphinx/props/P_DETAILS.rst b/doc/sphinx/props/P_DETAILS.rst
new file mode 100644
index 0000000..50f42c9
--- /dev/null
+++ b/doc/sphinx/props/P_DETAILS.rst
@@ -0,0 +1,44 @@
+P_DETAILS
+=========
+
+NAME
+----
+::
+
+    P_DETAILS            "details"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property enthaelt ein Mapping, in der Details im Objekt
+    definiert werden und Beschreibungen, die ausgegeben werden, wenn man
+    sich diese Details anschaut.
+
+BEMERKUNGEN
+-----------
+::
+
+    Man kann diese Property nicht per SetProp() veraendern, sondern muss die
+    entsprechenden Funktionen nutzen.
+    AddSpecialDetail() und RemoveSpecialDetail() sollten nicht mehr
+    verwendet werden.
+
+SIEHE AUCH
+----------
+::
+
+    Setzen:    AddDetail()
+    Loeschen:  RemoveDetail()
+    Aehnlich:  P_SPECIAL_DETAILS
+    Veraltet:  AddSpecialDetail(), RemoveSpecialDetail()
+    Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
+
diff --git a/doc/sphinx/props/P_DIE_MSG.rst b/doc/sphinx/props/P_DIE_MSG.rst
new file mode 100644
index 0000000..6825d1d
--- /dev/null
+++ b/doc/sphinx/props/P_DIE_MSG.rst
@@ -0,0 +1,57 @@
+P_DIE_MSG
+=========
+
+NAME
+----
+::
+
+     P_DIE_MSG			"die_msg"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Property uebergibt man einen String, der ausgegeben wird, wenn
+     das Lebewesen stirbt. Ist die Property nicht gesetzt, so wird als String
+     benutzt:
+	" faellt tot zu Boden.\n".
+
+     Der Name des Lebewesens wird dem String vor der Ausgabe vorangestellt.
+     Der Satzumbruch am Zeilenende und das Leerzeichen nach dem Namen des
+     Lebewesens muss man selbst angegeben. Es sollte allerdings beachtet
+     werden, dass ein Lebewesen, das durch Gift getoetet wird, eine spezielle
+     nicht zu beeinflussende Meldung erhaelt. Es wird dann als String
+     benutzt:
+	" wird von Gift hinweggerafft und kippt um.\n".
+
+BEISPIELE
+---------
+::
+
+     Bei einem mitkaempfenden Schatten waere es eher unlogisch, wenn nach
+     dessen 'Tod' eine Leiche zurueckbliebe. Eine logische Konsequenz waere
+     folgende Meldung:
+	SetProp(P_DIE_MSG," loest sich auf.\n");
+	SetProp(P_NOCORPSE,1);
+
+     Damit dann auch wirklich keine Leiche zurueckbleibt, wird zusaetzlich
+     die Property P_NOCORPSE gesetzt.
+
+SIEHE AUCH
+----------
+::
+
+     Tod:		die(L)
+     Todesmeldungen:	P_KILL_NAME, P_KILL_MSG, P_MURDER_MSG
+			P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+     Sonstiges:		P_CORPSE, P_NOCORPSE, /std/corpse.c
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_DISABLE_ATTACK.rst b/doc/sphinx/props/P_DISABLE_ATTACK.rst
new file mode 100644
index 0000000..033963e
--- /dev/null
+++ b/doc/sphinx/props/P_DISABLE_ATTACK.rst
@@ -0,0 +1,64 @@
+P_DISABLE_ATTACK
+================
+
+NAME
+----
+::
+
+    P_DISABLE_ATTACK              "disable_attack"              
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Das Lebewesen kann nicht angreifen. Beim Setzen der Property ist es
+    wichtig, SetProp() zu benutzen und die Anzahl der Kampfrunden anzugeben,
+    die das Lebewesen paralysiert sein soll.
+
+    Ein negativer Wert ist nicht gueltig. Bei mehr als 30 Kampfrunden wird
+    die Paralyse auf 30 Kampfrunden gekappt.
+
+    Fuer jede Paralyse bekommt ein Living eine ebenso lange Schutzzeit nach
+    der Paralyse gewaehrt. Versucht man, vor Ablauf der Paralyse
+    P_DISABLE_ATTACK hoeher zu setzen (oder setzt man innerhalb der folgenden
+    Schutzzeit P_DISABLE_ATTACK auf > 0), wird DISABLE_TOO_EARLY von SetProp
+    zurueck gegeben.
+    Eine Reduktion von einem P_DISABLE_ATTACK ist moeglich, allerdings
+    reduziert dies _nicht_ eine einmal gesetzte Schutzzeit.
+
+    Einen Gegner,der nie paralysiert werden koennen soll, kann man einfach
+    per 
+
+    Set(P_DISABLE_ATTACK, function int () {return 0;}, F_SET_METHOD);
+
+    erstellen, da bei diesem der Wert von P_DISABLE_ATTACK nicht mehr mit
+    einem normalen SetProp()-Aufruf geaendert werden kann.
+
+BEISPIELE
+---------
+::
+
+    // Gegner 17 Runden lang paralysieren, ohne Ruecksicht auf fruehere P.
+    // (in diesem Moment ist das Living bis time() + 4 * 17 vor laengerer
+    //  oder erneuter Paralyse geschuetzt)
+    en->SetProp(P_DISABLE_ATTACK, 17);
+    // Der Gegner kann jetzt fuer 34 Kampfrunden nicht erneut paralysiert
+    // werden.
+    // Paralyse reduzieren auf 10 Kampfrunden
+    en->SetProp(P_DISABLE_ATTACK, 10);
+    // Die Schutzzeit ist immer noch bei 34 Kampfrunden, nicht bei 20.
+
+SIEHE AUCH
+----------
+::
+
+    P_NEXT_DISABLE_ATTACK
+
+19.08.2014, Zesstra
+
diff --git a/doc/sphinx/props/P_DISABLE_COMMANDS.rst b/doc/sphinx/props/P_DISABLE_COMMANDS.rst
new file mode 100644
index 0000000..a219298
--- /dev/null
+++ b/doc/sphinx/props/P_DISABLE_COMMANDS.rst
@@ -0,0 +1,100 @@
+P_DISABLE_COMMANDS
+==================
+
+NAME
+----
+::
+
+     P_DISABLE_COMMANDS             "p_lib_disablecommands"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/player/command.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mit dieser Prop kann man verhindern, dass Kommandos eines Spielers
+    verarbeitet werden. Dies ist z.B. in Sequenzen nuetzlich, wo der Spieler
+    rein passiv konsumieren soll.
+    In diese Property muss ein Array mit 2 oder 3 Elementen geschrieben 
+    werden:
+       1) Endzeitpunkt in Sekunden seit 1.1.1970 (int)
+       2) Meldung (String oder Closure)
+       3) (optional) Array von trotzdem erlaubten Verben (string*)
+         (nur ausgewertet, wenn die Meldung ein String ist)
+
+    
+
+    Ist die Meldung ein String, wird dieser einfach bei jedem Kommando so wie
+    er ist an den Spieler ausgegeben und das Kommando abgebrochen.
+    Ist die Meldung eine Closure wird diese bei jedem Kommando aufgerufen und
+    das Kommando abgebrochen, wenn sie einen Rueckgabewert != 0 zurueckgibt.
+    In diesem Fall ist die gerufene Funktion dafuer verantwortlich, geeignete
+    Meldungen an den Spieler auszugeben!
+    Der Funktion wird der vom Spieler eingebene Befehl (string) als erstes
+    Argument uebergeben. Zu diesem Zeitpunkt wurde alle Aliase schon
+    ausgewertet. Die Funktion kann den Kommandogeber via this_player()
+    ermitteln.
+    Fuer weitere Informationen steht auch command_stack() zur Verfuegung,
+    allerdings ist dort die Alias-Ersetzung nicht beruecksichtigt.
+
+    Die Ausnahmeliste wird nur fuer simple Strings als Meldung ausgewertet,
+    wird eine Closure verwendet, kann diese besser selber die Ausnahmen
+    bestimmen.
+
+    
+
+    Fragt man diese Prop ab, erhaelt man ein Array mit 4 Elementen: setzendes
+    Objekt (object), Ablaufzeit (int), Meldung (String oder Closure) und
+    Liste von Ausnahmen (string*).
+
+BEMERKUNGEN
+-----------
+::
+
+    1. Die Prop wird fuer Magier mit eingeschaltetem P_WANTS_TO_LEARN
+       ignoriert.
+    2. Wenn das Objekt zerstoert wird, was die Prop gesetzt hat, wird der
+       Eintrag unwirksam.
+    3. Wenn diese Prop gesetzt und nicht abgelaufen ist, kann nur das gleiche
+       Objekt sie mit neuen Daten ueberschreiben. Alle anderen Objekte koennen
+       die Prop nur loeschen. Dies soll verhindern, dass Magier unabsichtlich
+       einfach anderer Leute Eintraege ueberschreiben. Dementsprechend: Lasst
+       die Finger davon, wenn die schon gesetzt ist. ;-)
+    4. Diese Prop darf _ausschliesslich_ mit SetProp() und QueryProp() benutzt
+       werden, Set() und Query() funktionieren _nicht_.
+    5. Es gibt einige Verben, die NIE blockiert werden. Zur Zeit sind dies
+       "mrufe", "mschau", "bug", "idee", "typo" und "detail".
+    6. Bitte nicht missbrauchen, speziell nicht dazu, die Kommandos von
+       Spieler zu ueberwachen/mitzuschreiben. Das Setzen dieser Prop wird 
+       geloggt.
+
+BEISPIEL
+--------
+::
+
+   In einem Raum startet eine Sequenz, in der der Spieler nichts machen soll:
+
+   if (!pl->QueryProp(P_DISABLE_COMMANDS))
+      pl->SetProp(P_DISABLE_COMMANDS,
+            ({ time() + 120, "Du bist tief in Deinem Traum gefangen!\n" }) );
+   else // ... Fehlerbehandlung, falls Prop schon gesetzt ...
+
+   
+
+   Soll die Prop aus irgendeinem Grund (vorzeitig) geloescht werden:
+   pl->SetProp(P_DISABLE_COMMANDS, 0);
+
+SIEHE AUCH
+----------
+::
+
+     command(), query_command(), command_stack(), modify_command(), 
+     this_player()
+
+01.12.2012, Zesstra
+
diff --git a/doc/sphinx/props/P_DISTRIBUTION.rst b/doc/sphinx/props/P_DISTRIBUTION.rst
new file mode 100644
index 0000000..07b0d99
--- /dev/null
+++ b/doc/sphinx/props/P_DISTRIBUTION.rst
@@ -0,0 +1,34 @@
+P_DISTRIBUTION
+==============
+
+NAME
+----
+::
+
+     P_DISTRIBUTION                "std_food_distribution"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/food.h
+
+BESCHREIBUNG
+------------
+::
+
+     Verteilung der Heilung ueber mehrere Heartbeats.
+     Dieser Wert wird im entry_info als H_DISTRIBUTION dem consume() im
+     Living uebergeben.
+
+     
+
+SIEHE AUCH
+----------
+::
+
+     consume
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_DMSG.rst b/doc/sphinx/props/P_DMSG.rst
new file mode 100644
index 0000000..d276da5
--- /dev/null
+++ b/doc/sphinx/props/P_DMSG.rst
@@ -0,0 +1,21 @@
+P_DMSG
+======
+
+NAME
+----
+::
+
+    P_DMSG                        "destmsg"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     *** OBSOLET! *** Siehe P_DESTRUCT_MSG
+
diff --git a/doc/sphinx/props/P_DOMAIN.rst b/doc/sphinx/props/P_DOMAIN.rst
new file mode 100644
index 0000000..5050d06
--- /dev/null
+++ b/doc/sphinx/props/P_DOMAIN.rst
@@ -0,0 +1,51 @@
+P_DOMAIN
+========
+
+NAME
+----
+::
+
+    P_DOMAIN                                        "lib_p_domain"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/room/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt die Region, in der ein Raum liegt, sofern er
+     in /d/ liegt.
+
+     Falls ein Raum nicht in /d/ liegt, aber es eigentlich ein Gebiet ist,
+     welches eindeutig in einer Region zugeordnet ist, kann der Magier
+     hier gezielt einen anderen Wert setzen.
+
+     
+
+     Bitte keine Regionen faelschen!
+
+BEISPIEL
+--------
+::
+
+     In /d/inseln/zesstra/vulkanweg/room/r1 liefert
+     QueryProp(P_DOMAIN)
+     ein "Inseln" zurueck.
+
+     In einem Raum der Chaosgilde:
+     SetProp(P_DOMAIN, "Polar");
+     damit der Raum als Raum der Region Polar angezeigt wird.
+
+SIEHE AUCH
+----------
+::
+
+     gmcp
+
+
+23.02.2013, Zesstra
+
diff --git a/doc/sphinx/props/P_DOOR_INFOS.rst b/doc/sphinx/props/P_DOOR_INFOS.rst
new file mode 100644
index 0000000..20c9e0c
--- /dev/null
+++ b/doc/sphinx/props/P_DOOR_INFOS.rst
@@ -0,0 +1,59 @@
+P_DOOR_INFOS
+============
+
+NAME
+----
+::
+
+    P_DOOR_INFOS                  "door_infos"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/doorroom.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mapping mit Informationen ueber eine im Raum per NewDoor() definierte
+    Tuer. Diese Infos werden ueber /std/room/doors.c an den /obj/doormaster.c
+    weitergegeben und dem Raum, der die Tuer besitzt, als Property gesetzt.
+    Werden mehrere Tueren in einem Raum eingebunden, enthaelt das Mapping
+    entsprechend viele Eintraege.
+
+    Dieses Mapping dient zur internen Verwaltung der Tueren im
+    /obj/doormaster.c und sollte nicht per Hand veraendert werden!
+
+    Die Eintraege im Mapping haben folgende keys (definiert in
+    /sys/doorroom.h):
+
+    D_DEST : Zielraum (string)
+    D_CMDS : Befehl(e), um durch die Tuer zu gehen (string oder *string)
+    D_IDS  : IDs der Tuer (string oder *string)
+    D_FLAGS : Besondere Eigenschaften der Tuer (Tuer braucht Schluessel etc.)
+    D_LONG  : Langbeschreibung (string)
+    D_SHORT : Kurzbeschreibung (string)
+    D_NAME  : Name (string oder *string)
+    D_GENDER  : Geschlecht
+    D_FUNC    : Funktion, die VOR dem Durchschreiten der Tuer aufgerufen wird
+    D_MSGS    : Bewegungsmeldungen
+    D_FUNC2   : Funktion, die NACH dem Durchschreiten der Tuer aufgerufen wird
+    D_TESTFUNC  : Funktion die im Sartraum testet, ob die Tuer durchschritten
+                  werden darf
+    D_RESET_MSG : Meldungen beim Tuer-Reset
+    D_OPEN_WITH_MOVE : Falls gesetzt, wird die Tuer auch mit dem
+                       Bewegungsbefehl geoeffnet und durchschritten, falls
+                       Oeffnen erfolgreich
+
+SIEHE AUCH
+----------
+::
+
+    NewDoor(), QueryDoorKey(), QueryDoorStatus(), SetDoorStatus(),
+    /std/room/doors.c, /obj/doormaster.c, GetPhiolenInfos(), QueryAllDoors()
+
+
+Letzte Aenderung: Don, 08.05.2014, Gabylon
+
diff --git a/doc/sphinx/props/P_DO_DESTRUCT.rst b/doc/sphinx/props/P_DO_DESTRUCT.rst
new file mode 100644
index 0000000..e6bc84f
--- /dev/null
+++ b/doc/sphinx/props/P_DO_DESTRUCT.rst
@@ -0,0 +1,36 @@
+P_DO_DESTRUCT
+=============
+
+NAME
+----
+::
+
+    P_DO_DESTRUCT                 "do_destruct"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Flag, ob sich die Lichtquelle am Ende der Leuchtzeit selbst
+     zerstoert. 
+
+SIEHE AUCH
+----------
+::
+
+     Basisklassen: /std/lightsource.c
+     Properties: P_FUEL, P_LIGHTDESC, P_LIGHT
+     Methoden: AddFuel(L)
+
+LETZTE AENDERUNG
+----------------
+::
+
+    22. Dez. 2015, Arathorn
+
diff --git a/doc/sphinx/props/P_DRINK.rst b/doc/sphinx/props/P_DRINK.rst
new file mode 100644
index 0000000..28bfb18
--- /dev/null
+++ b/doc/sphinx/props/P_DRINK.rst
@@ -0,0 +1,42 @@
+P_DRINK
+=======
+
+NAME
+----
+::
+
+     P_DRINK                       "drink"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     - Lebewesen
+       Numerischer Wert fuer den Saettigungsgrad eines Lebewesens mit
+       Getraenken. Der maximale Wert steht in P_MAX_DRINK.
+
+     - Speisen/Kneipen
+       Numerischer Wert fuer den Saettigungsgrad einer Portion eines
+       Getraenkes. Ist diese Property nicht gesetzt oder zusaetzlich
+       P_FOOD gesetzt, kann man diese Speise nicht trinken. Eine
+       funktionierende Speise _muss_ entweder P_FOOD oder P_DRINK
+       groesser 0 gesetzt haben.
+
+     
+
+SIEHE AUCH
+----------
+::
+
+     P_MAX_DRINK, P_DRINK_DELAY, consume
+     P_FOOD, P_ALCOHOL, wiz/food
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_DRINK_DELAY.rst b/doc/sphinx/props/P_DRINK_DELAY.rst
new file mode 100644
index 0000000..199436c
--- /dev/null
+++ b/doc/sphinx/props/P_DRINK_DELAY.rst
@@ -0,0 +1,23 @@
+P_DRINK_DELAY
+=============
+
+NAME
+----
+::
+
+    P_DRINK_DELAY                 "drink_delay"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der heart_beats, bis P_DRINK um einen Punkt sinkt.
+     Aenderungen dieser Property in Spielern beduerfen der 
+     Genehmigung des EM fuer Balance.
+
diff --git a/doc/sphinx/props/P_DRINK_FULL_MSG.rst b/doc/sphinx/props/P_DRINK_FULL_MSG.rst
new file mode 100644
index 0000000..a30a49c
--- /dev/null
+++ b/doc/sphinx/props/P_DRINK_FULL_MSG.rst
@@ -0,0 +1,50 @@
+P_DRINK_FULL_MSG
+================
+
+NAME
+----
+::
+
+     P_DRINK_FULL_MSG              "std_food_drink_full_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Konsumenten, wenn ein Getraenk getrunken werden soll,
+     obwohl dieser nichts mehr trinken kann.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "So viel kannst Du im Moment nicht trinken."
+
+SIEHE AUCH
+----------
+::
+
+     P_DRINK, P_MAX_DRINK, wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_DROP_MSG.rst b/doc/sphinx/props/P_DROP_MSG.rst
new file mode 100644
index 0000000..7268555
--- /dev/null
+++ b/doc/sphinx/props/P_DROP_MSG.rst
@@ -0,0 +1,100 @@
+P_DROP_MSG
+==========
+
+NAME
+----
+::
+
+     P_DROP_MSG				"drop_message" 
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/put_and_get.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mit P_DROP_MSG kann man die Meldung, die man beim Ablegen eines
+     Objektes bekommt, modifizieren.
+
+     Folgende Werte sind moeglich:
+
+	
+
+     o 0
+       Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung. 
+
+	  
+
+     o NO_PNG_MSG       == -1
+       Es wird keinerlei Meldung ausgegeben
+
+	  
+
+     o Ein Array aus Strings 
+       Der erste String wird an den Spieler ausgegeben, der zweite 
+       (optionale) an den Raum. 
+
+	  
+
+       Die Strings werden durch die Funktion replace_personal() geparst.
+	Objekt1 - Spieler
+        Objekt2 - das Objekt, das fallengelassen wird
+
+	  
+
+       Wird der zweite String nicht angegeben, erfolgt keine Meldung an
+       den Raum.
+
+				
+
+BEISPIEL
+--------
+::
+
+     void create() {
+      ...
+      SetProp( P_SHORT, "Ugars Handaxt" );
+      SetProp( P_LONG, break_string(
+       "Dieses ist eine Kampfaxt, wie sie Orks normalerweise benutzen. "
+       "Da Du Zeit hast, sie Dir anzuschauen, ist der Besitzer wohl "
+       "bereits bei Lars.",78 ));
+
+	  
+
+      SetProp( P_NAME, "Axt" );
+      AddId( ({"handaxt","axt"}) );
+      SetProp( P_GENDER, FEMALE );
+
+	  
+
+      SetProp( P_DROP_MSG, ({
+       "Du schmeisst @WEN2 hin.",
+       "@WER1 schmeisst Dir @WENU2 vor die Fuesse.\n"}));
+      ...
+     }
+
+     Will Ugar seine Axt ablegen und gibt "lasse axt fallen" ein, werden 
+     folgende Meldungen ausgegeben:
+
+	
+
+     Ugar: "Du schmeisst die Axt hin."
+     Raum: "Ugar schmeisst Dir eine Axt vor die Fuesse."
+
+	
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_PICK_MSG, P_PUT_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
+     Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+                 P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET 
+     Sonstiges:  replace_personal(E), drop_obj(L), /std/living/put_and_get.c
+
+14. Maerz 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_EARMUFFS.rst b/doc/sphinx/props/P_EARMUFFS.rst
new file mode 100644
index 0000000..3ec9835
--- /dev/null
+++ b/doc/sphinx/props/P_EARMUFFS.rst
@@ -0,0 +1,22 @@
+P_EARMUFFS
+==========
+
+NAME
+----
+::
+
+    P_EARMUFFS                    "earmuffs"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Shouts von Spielern und Magiern mit Magierlevel < earmuffs werden
+     abgeblockt (Nur fuer Magier).
+
diff --git a/doc/sphinx/props/P_EATER_MSG.rst b/doc/sphinx/props/P_EATER_MSG.rst
new file mode 100644
index 0000000..75ccb2f
--- /dev/null
+++ b/doc/sphinx/props/P_EATER_MSG.rst
@@ -0,0 +1,49 @@
+P_EATER_MSG
+===========
+
+NAME
+----
+::
+
+     P_EATER_MSG                   "std_food_eater_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Konsumenten, wenn eine Speise konsumiert wird.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "Du konsumierst @WEN1."
+
+SIEHE AUCH
+----------
+::
+
+     /std/food.c, wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_EFFECTIVE_AC.rst b/doc/sphinx/props/P_EFFECTIVE_AC.rst
new file mode 100644
index 0000000..50fbeb1
--- /dev/null
+++ b/doc/sphinx/props/P_EFFECTIVE_AC.rst
@@ -0,0 +1,107 @@
+P_EFFECTIVE_AC
+==============
+
+NAME
+----
+::
+
+     P_EFFECTIVE_AC      "effective_ac"
+
+DEFINIERT IN
+------------
+::
+
+     <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property kommt sowohl in Ruestungen als auch in Waffen, die
+     schuetzen sollen, zum Einsatz.
+
+     In Ruestungen kann hier der Effektivwert der Ruestungsklasse vermerkt
+     werden, wenn diese noch durch eine DefendFunc() modifiziert wird
+     (soweit sich ein solcher Effektivwert angeben laesst).
+
+     In einigen Gilden koennen Waffen auch als Ruestung eingesetzt werden
+     (z.B. beim Parieren eines Angriffs). In dieser Property kann man die
+     Ruestungsklasse eintragen, die die Waffe bei solchen Aktionen aufweisen
+     soll. Dabei ist man an die ueblichen Beschraenkungen der
+     Ruestungsklasse gebunden! (s. /sys/combat.h)
+
+BERMERKUNGEN
+------------
+::
+
+     Das Kaempferspellbook verwendet fuer Paraden etc. P_EFFECTIVE_AC anstatt
+     P_AC, wenn verfuegbar.
+
+BEISPIELE
+---------
+::
+
+     * DefendFuncs: 
+       Der doppelte Mittelwert der DefendFunc wird zur Basis-AC dazuaddiert,
+       da sich der 'Schutzwert = random(Basis-AC) + absolut(DefendFunc-Wert)'
+       berechnet.
+
+     // #1 Eine Ruestung mit P_AC von 35 und randomisierter DefendFunc
+        SetProp(P_AC, 35);
+        SetProp(P_DEFEND_FUNC, this_object());
+
+        int DefendFunc(...) {
+          return random(20);                       // Mittelwert: 10
+        }
+        -> SetProp(P_EFFECTIVE_AC, 55);            // 35 + 2*10 = 55
+
+     // #2 Eine Ruestung mit P_AC von 35 und teilrandomisierter DefendFunc
+        SetProp(P_AC, 35);
+        SetProp(P_DEFEND_FUNC, this_object());
+
+        int DefendFunc(...) {
+          return 20 + random(10);                  // Mittelwert: 20 + 5
+        }
+        -> SetProp(P_EFFECTIVE_AC, 85);            // 35 + 2*(20+5) = 85
+
+     * Sonderfunktion im Kontext der Kaempfergilde:
+       Auch wenn der eigentliche AC-Wert durch keine DefendFunc oAe
+       modifiziert wird, sind abweichende Werte in P_EFFECTIVE_AC zB in der
+       Kaempfergilde fuer Paraden oder aehnliches sinnvoll. Maximalwert ist
+       dafuer der doppelte Wert des Basis-AC-Wertes.
+
+     // #3 Ein schon sehr gutes Schild, welches bei der Schildparade aber
+     //    noch besser schuetzen soll.
+        SetProp(P_ARMOUR_TYPE, AT_SHIELD);
+        SetProp(P_AC, 38);
+        SetProp(P_EFFECTIVE_AC, 55);
+
+     // #4 Ein sehr labbriges Schild schuetzt zwar gegen normale Schlaege,
+     //    ist zum Parieren aber irgendwie ungeeignet weil unkontrollierbar.
+        SetProp(P_ARMOUR_TYPE, AT_SHIELD);
+        SetProp(P_AC, 38);
+        SetProp(P_EFFECTIVE_AC, 20);
+
+     * Waffen:
+       P_EFFECTIVE_AC wird im Kaempferspellbook als Bonus dazugezaehlt! Daher
+       sollten gute Parierwaffen auch einen niedrigeren P_WC-Wert haben.
+       Reine Parierwaffen duerfen den maximalen AC-Wert von Schilden als
+       Maximum gesetzt haben - die Balance klaert ggf, ob das auch auf den
+       Gildenparierwert anwendbar ist.
+
+     // #5 Eine maessige Hellebarde/Axtwaffe mit Parierhaken.
+        SetProp(P_WEAPON_TYPE, WT_AXE);
+        SetProp(P_WC, 100);
+        SetProp(P_EFFECTIVE_AC, 25);
+
+SIEHE AUCH
+----------
+::
+
+     Waffen:     P_WC, P_TOTAL_WC, P_EFFECTIVE_WC, HitFunc()
+     Ruestungen: P_AC, P_TOTAL_AC, DefendFunc()
+     Files:      /std/weapon.c, /std/weapon/combat.c
+     Balance:    waffen, ruestungen, properties, kaempferboni
+
+6. Nov 2011 Gloinson
+
diff --git a/doc/sphinx/props/P_EFFECTIVE_WC.rst b/doc/sphinx/props/P_EFFECTIVE_WC.rst
new file mode 100644
index 0000000..6064049
--- /dev/null
+++ b/doc/sphinx/props/P_EFFECTIVE_WC.rst
@@ -0,0 +1,112 @@
+P_EFFECTIVE_WC
+==============
+
+NAME
+----
+::
+
+     P_EFFECTIVE_WC     "effective_wc"
+
+DEFINIERT IN
+------------
+::
+
+     <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property kommt sowohl in Waffen als auch Ruestungen, die Schaden
+     machen sollen, zum Einsatz.
+
+     Falls die Staerke einer Waffe noch durch eine HitFunc() modifiziert
+     wird, sollte hier der Effektivwert der Waffenklasse vermerkt werden,
+     soweit er sich angeben laesst.
+     Diese Property dient vor allem dazu, eine Waffe mit HitFunc() korrekt
+     einzuschaetzen.
+
+     In einigen Gilden koennen Ruestungen auch als Waffen eingesetzt werden
+     (z.B. ein Paar Schuhe zum Treten). In dieser Property kann man die
+     Waffenklasse eintragen, die die Ruestung bei solchen Aktionen aufweisen
+     soll. Dabei ist man an die ueblichen Beschraenkungen der Waffenklasse
+     gebunden! (s. /sys/combat.h)
+     Der Ruestung kann man dann auch einen Schadenstyp mit auf den Weg
+     geben.
+
+BEMERKUNGEN
+-----------
+::
+
+     Das Kaempferspellbook verwendet bei Ruestungen P_AC, wenn
+     P_EFFECTIVE_WC nicht gesetzt ist.
+
+BEISPIELE
+---------
+::
+
+     * HitFuncs:
+       Der doppelte Mittelwert der HitFunc wird zur Basis-WC dazuaddiert,
+       da sich der 'Angriffswert = random(Basis-WC) + absolut(HitFunc-Wert)'
+       berechnet.
+
+     // #1 Waffe mit Basis-WC 120 und randomisierter HitFunc
+        SetProp(P_WC, 120);
+        SetProp(P_HIT_FUNC, this_object());
+
+       
+
+        int HitFunc(...) {
+          return random(30);                       // Mittelwert: 15
+        }
+        -> SetProp(P_EFFECTIVE_WC, 150);           // 120 + 2*15 = 150
+
+     
+
+     // #2 Waffe mit Basis-WC 120 und teilweise absoluter HitFunc
+        SetProp(P_WC, 120);
+        SetProp(P_HIT_FUNC, this_object());
+
+       
+
+        int HitFunc(...) {
+          return 30 + random(10);                  // Mittelwert: 30 + 5
+        }
+        -> SetProp(P_EFFECTIVE_WC, 190);           // 120 + 2*(30+5) = 190
+
+     * Ruestungen (zB Gildennutzung):
+       Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der jeweils
+       doppelte maximale P_AC-Wert. Angabe eines Schadenstyps ist sinnvoll.
+
+     // #3 Ein paar Schuhe, mit maximalem Schlag-/Saeureschaden.
+        SetProp(P_ARMOUR_TYPE, AT_BOOT);
+        SetProp(P_AC, 2);
+        SetProp(P_DAM_TYPE, ({DT_BLUDGEON,DT_ACID}));
+        -> SetProp(P_EFFECTIVE_WC, 12);  // hoechstmoeglicher Wert bei
+                                         // Schuhen, da deren max. P_AC = 6
+     // aequivalent und zukunftssicher:
+        -> SetProp(P_EFFECTIVE_WC, 2 * VALID_ARMOUR_CLASS[AT_BOOT]);
+
+     // #4 Ein Schild mit spitzem Dorn. (Stichschaden beim Schildstoss.)
+        SetProp(P_ARMOUR_TYPE, AT_SHIELD);
+        SetProp(P_AC, 5);
+        SetProp(P_DAM_TYPE, ({DT_PIERCE}));
+        SetProp(P_EFFECTIVE_WC, 55);
+
+     // #5 Ein Gummischild ist schlecht fuer Angriffe. BOING!
+        SetProp(P_ARMOUR_TYPE, AT_SHIELD);
+        SetProp(P_AC, 30);
+        SetProp(P_DAM_TYPE, ({DT_BLUDGEON}));
+        SetProp(P_EFFECTIVE_WC, 10);
+
+SIEHE AUCH
+----------
+::
+
+     Waffen:     P_WC, P_TOTAL_WC, HitFunc()
+     Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc()
+     Files:      /std/weapon.c, /std/weapon/combat.c
+     Balance:    waffen, ruestungen, properties, kaempferboni
+
+6. Nov 2011 Gloinson
+
diff --git a/doc/sphinx/props/P_EMPTY_MSG.rst b/doc/sphinx/props/P_EMPTY_MSG.rst
new file mode 100644
index 0000000..a7855f4
--- /dev/null
+++ b/doc/sphinx/props/P_EMPTY_MSG.rst
@@ -0,0 +1,50 @@
+P_EMPTY_MSG
+===========
+
+NAME
+----
+::
+
+     P_EMPTY_MSG                   "std_food_eater_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Konsumenten, wenn versucht wird, eine aufgebrauchte Speise
+     (also einen leeren Behaelter) zu konsumieren.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise (also den leeren Behaelter)
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "@WER1 ist bereits leer."
+
+SIEHE AUCH
+----------
+::
+
+     /std/food.c, wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_EMPTY_PROPS.rst b/doc/sphinx/props/P_EMPTY_PROPS.rst
new file mode 100644
index 0000000..43512b9
--- /dev/null
+++ b/doc/sphinx/props/P_EMPTY_PROPS.rst
@@ -0,0 +1,59 @@
+P_EMPTY_PROPS
+=============
+
+NAME
+----
+::
+
+     P_EMPTY_PROPS                 "std_food_empty_props"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Mapping mit Properties fuer den leeren Behaelter, der uebrig bleibt,wenn
+     eine Speise aufgebraucht ist. Alle enthaltenen Properties werden gesetzt,
+     wenn keine Portionen mehr vorhanden sind.
+     Bereits in diesen Properties eingetragene Werte werden ueberschrieben!
+     Wenn diese Property nicht gesetzt ist, wird die Speise zerstoert, wenn
+     alle Portionen aufgebraucht ist - es bleibt also kein Behaelter zurueck.
+     Achtung: Es werden keine closures in diesem Mapping unterstuetzt!
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Bei der Abfrage von P_VALUE und P_WEIGHT in der Speise, werden die dazu
+     in P_EMPTY_PROPS gespeicherten Werte verwendet, um das Gewicht/Wert des
+     leeren Behaelters zum Gesamtwert der Speise zu addieren.
+     Man kann alle Properties in dieses Mapping eintragen, die sich in der
+     Speise per SetProp setzen lassen. Zusaetzlich kann man Arrays in P_IDS
+     und P_ADJECTIVES speichern, die per Add-Methode in der Speise
+     hinzugefuegt werden, nachdem die im create() der Speise hinzugefuegten
+     Ids/Adjectives dort entfernt wurden.
+
+     
+
+BEISPIELE
+---------
+::
+
+     Beispiele zur Verwendung findet man unter /doc/beispiele/food
+
+SIEHE AUCH
+----------
+::
+
+     /std/food.c, wiz/food
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_ENABLE_IN_ATTACK_OUT.rst b/doc/sphinx/props/P_ENABLE_IN_ATTACK_OUT.rst
new file mode 100644
index 0000000..af59fb0
--- /dev/null
+++ b/doc/sphinx/props/P_ENABLE_IN_ATTACK_OUT.rst
@@ -0,0 +1,52 @@
+P_ENABLE_IN_ATTACK_OUT
+======================
+
+NAME
+----
+::
+
+	P_ENABLE_IN_ATTACK_OUT		"enable_in_attack_out"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+	Normalerweise wird die bekannte Taktik Rein-Angriff-Raus
+	standardmaessig unterbunden, damit NPCs auch eine Chance haben, sich
+	zu verteidigen. Hierzu wird der Schaden innerhalb do_damage()
+	durch einen Wert geteilt, der sich aus der Verweildauer des
+	Angreifers im Raum ergibt (bis zu 3 Sekunden).
+	Da manche NPCs so konzeptioniert wurden, dass man sie nur mit der
+	erwaehnten Taktik toeten kann, kann man sie auch explizit erlauben
+	(manche NPCs verwenden auch eigene Methoden, diese Taktik zu
+	 verbieten, und sie waere dann doppelt abgefangen).
+	Hierzu setzt man einfach die Property P_ENABLE_IN_ATTACK_OUT im NPC.
+
+BEISPIEL
+--------
+::
+
+	Das folgende Beispiel erlaubt einfach mal die angesprochene Taktik:
+	  void create()
+	  { ...
+	    SetProp(P_ENABLE_IN_ATTACK_OUT,1);
+	    ...
+	  }
+	Jetzt kann man den NPC mit Rein-Angriff-Raus auch wirkungsvoll
+	bekaempfen.
+
+SIEHE AUCH
+----------
+::
+
+	do_damage(), P_LAST_MOVE, /std/living/life.c
+
+
+Last modified: Sat Jan 30 12:53:00 1999 by Patryn
+
diff --git a/doc/sphinx/props/P_ENEMY_DAMAGE.rst b/doc/sphinx/props/P_ENEMY_DAMAGE.rst
new file mode 100644
index 0000000..6991f15
--- /dev/null
+++ b/doc/sphinx/props/P_ENEMY_DAMAGE.rst
@@ -0,0 +1,48 @@
+P_ENEMY_DAMAGE
+==============
+
+NAME
+----
+::
+
+     P_ENEMY_DAMAGE "enemy_damage"
+
+DEFINIERT IN
+------------
+::
+
+     <living/life.h>
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Property ist vermerkt, welches Wesen diesem Wesen wieviel
+     Schaden zugefuegt hat.
+
+     Die Property enthaelt ein Mapping, das den Angreifern den
+     errechten Schaden zuordnet:
+     ([ <obname1>: <damage>; <owner>, ... ])
+
+       <obname1>: Name des Objekts, das den Schaden verursacht hat (string),
+                  z.B. "/magier:zesstra"
+       <damage> : Schadensmenge (int)
+       <owner>  : wenn das schadensverursachende Wesen ein NPC war/ist,
+                  welches P_HELPER_NPC gesetzt hatte und somit einem Spieler
+                  hilft, steht hier das Objekt des jeweiligen Spielers
+                  (object)
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Property laesst sich nur abfragen!
+
+SIEHE AUCH
+----------
+::
+
+     P_HELPER_NPC
+
+26.10.2009, Zesstra
+
diff --git a/doc/sphinx/props/P_ENEMY_DEATH_SEQUENCE.rst b/doc/sphinx/props/P_ENEMY_DEATH_SEQUENCE.rst
new file mode 100644
index 0000000..82e888e
--- /dev/null
+++ b/doc/sphinx/props/P_ENEMY_DEATH_SEQUENCE.rst
@@ -0,0 +1,61 @@
+P_ENEMY_DEATH_SEQUENCE
+======================
+
+NAME
+----
+::
+
+     P_ENEMY_DEATH_SEQUENCE        "enemy_death_sequence"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+     Ueber diese Property kann Einfluss auf die Todessequenz eines getoeten
+     Spielers genommen werden. Sie muss im toetenden Objekt, d.h. dem
+     Objekt welches die()/do_damage()/Defend() im Spieler gerufen hat,
+     gesetzt sein.
+
+     Es gibt folgende gueltige Werte:
+     - string: Pfad zu einer eigenen Todessequenz im gueltigen Format
+     - mixed*  Eine Todessequenz im Format des Todesraumes:
+               ({<int gesamtlaenge>,
+                 ([<int index1>: <string umgebrochene Meldung1>,
+                   <int index2>: <string umgebrochene Meldung2>,
+                   ...])
+               })
+     - mapping In die Standard-Lars-Todessequenz einzufuegende Zeilen:
+               ([<int zeitindex>: <string umgebrochener Text>])
+
+BEISPIELE
+---------
+::
+
+     // Pfad zu einer eigenen DSQ
+     SetProp(P_ENEMY_DEATH_SEQUENCE,  ".../passende_dsq.txt");
+
+     // eigene DSQ im Todesraumformat:
+     SetProp(P_ENEMY_DEATH_SEQUENCE,
+             ({ 2, ([1: "DU LERNST AUS DEINEM FEHLER.\n"])}));
+
+     // Einfuegen einer Meldung (des NPCs) in die Standard-Todessequenz
+     SetProp(P_ENEMY_DEATH_SEQUENCE,
+             ([5: "Du hoerst "+name(WEN)+" hoehnisch kichern.\n"]));
+
+SIEHE AUCH
+----------
+::
+
+     Tod:            die(L)
+     Todesmeldungen: P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
+                     P_ZAP_MSG, P_NEXT_DEATH_SEQUENCE
+     Sonstiges:      P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
+10. Nov 2011 Gloinson
+
diff --git a/doc/sphinx/props/P_ENTERCMDS.rst b/doc/sphinx/props/P_ENTERCMDS.rst
new file mode 100644
index 0000000..17f9de1
--- /dev/null
+++ b/doc/sphinx/props/P_ENTERCMDS.rst
@@ -0,0 +1,59 @@
+P_ENTERCMDS
+===========
+
+NAME
+----
+::
+
+    P_ENTERCMDS                   "leavecmds"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+    Ein Array mit Befehlen, die zum Betreten des Transporters fuehren. 
+
+BEISPIEL
+--------
+::
+
+    SetProp(P_ENTERCMDS,({ "betrete","betritt" }) );
+
+    Gibt der Spieler nun 'betrete xxx' ein, so sorgt /std/transport.c 
+    dafuer, das der Spieler auch auf oder in den Transporter bewegt 
+    wird. Vorausgesetzt natuerlich, er ist an einem Haltepunkt ange-
+    langt und es ist genuegend Platz dort.
+
+BEMERKUNGEN
+-----------
+::
+
+    Um /std/transport.c nicht aufzublaehen, werden weitere Argumente wie
+    etwa 'betrete das|die|den xxx' _nicht_ unterstuetzt!
+
+    Hier muss der verantwortliche Magier schon eine eigene Loesung finden
+    und in seinen Transporter schreiben.
+
+    Sollen Kommandos zum Betreten UND Verlassen eines Transporters ver-
+    wendet werden koennen, muessen diese in P_TRAVEL_CMDS gesetzt werden.
+
+SIEHE AUCH
+----------
+::
+
+    P_LEAVEFAIL, P_ENTERFAIL, P_LEAVECMDS, P_TRAVEL_CMDS, transporter,
+
+LETZTE AENDERUNG
+----------------
+::
+
+    Don, 24.01.2002, 10:15:07h von Tilly
+
+    
+
diff --git a/doc/sphinx/props/P_ENTERFAIL.rst b/doc/sphinx/props/P_ENTERFAIL.rst
new file mode 100644
index 0000000..538b528
--- /dev/null
+++ b/doc/sphinx/props/P_ENTERFAIL.rst
@@ -0,0 +1,48 @@
+P_ENTERFAIL
+===========
+
+NAME
+----
+::
+
+    P_ENTERFAIL                   "enterfail"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Spieler, wenn er einen vollen Transporter betreten 
+     will. Ist die Propertie ein Array, so wird das erste Element als
+     Meldung an den Spieler, das zweite als Meldung an die Mitspieler 
+     im Raum geschickt.
+
+BEISPIEL
+--------
+::
+
+     SetProp(P_ENTERFAIL,"Dort ist wirklich kein Platz mehr fuer Dich");
+
+     
+
+     SetProp(P_ENTERFAIL, ({ "Dort ist wirklich kein Platz mehr fuer Dich",
+                             "versucht, auf die Kutsche zu klettern, wird "
+                            +"aber wieder heruntergeschickt" }) );
+
+SIEHE AUCH
+----------
+::
+
+     P_ENTERMSG, P_LEAVEFAIL, P_LEAVEMSG, transporter
+
+LETZTE AENDERUNG
+----------------
+::
+
+    Don, 24.01.2002, 10:15:07h von Tilly
+
diff --git a/doc/sphinx/props/P_ENTERMSG.rst b/doc/sphinx/props/P_ENTERMSG.rst
new file mode 100644
index 0000000..72e5ea4
--- /dev/null
+++ b/doc/sphinx/props/P_ENTERMSG.rst
@@ -0,0 +1,40 @@
+P_ENTERMSG
+==========
+
+NAME
+----
+::
+
+    P_ENTERMSG                    "entermsg"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+     Array mit zwei Meldungen, eine fuer den Raum, den der Spieler
+     verlaesst, und eine fuer den Transporter, in den er geht.
+
+BEISPIEL
+--------
+::
+
+     SetProp(P_ENTERMSG, ({ "klettert in die Kutsche","klettert herein" }) );
+
+SIEHE AUCH
+----------
+::
+
+     P_ENTERFAIL, P_LEAVEFAIL, P_LEAVEMSG, transporter
+
+LETZTER AENDERUNG
+-----------------
+::
+
+    Don, 24.01.2002, 10:15:07h von Tilly
+
diff --git a/doc/sphinx/props/P_ENV_MSG.rst b/doc/sphinx/props/P_ENV_MSG.rst
new file mode 100644
index 0000000..ec38445
--- /dev/null
+++ b/doc/sphinx/props/P_ENV_MSG.rst
@@ -0,0 +1,52 @@
+P_ENV_MSG
+=========
+
+NAME
+----
+::
+
+     P_ENV_MSG                     "std_food_env_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Konsumenten, wenn eine Speise konsumiert werden soll,
+     die nicht im eigenen Inventory liegt.
+     Wenn diese Property leer ist, kann man die Speise dann sogar
+     konsumieren!
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "Vielleicht solltest Du @WEN1 vorher nehmen."
+
+SIEHE AUCH
+----------
+::
+
+     wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_ENV_TOO_HEAVY_MSG.rst b/doc/sphinx/props/P_ENV_TOO_HEAVY_MSG.rst
new file mode 100644
index 0000000..619628c
--- /dev/null
+++ b/doc/sphinx/props/P_ENV_TOO_HEAVY_MSG.rst
@@ -0,0 +1,50 @@
+P_ENV_TOO_HEAVY_MSG
+===================
+
+NAME
+----
+::
+
+    P_ENV_TOO_HEAVY_MSG                      "env_too_heavy_msg"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn jemand
+     versucht, ein Objekt in einen Behaelter zu legen, und dieser dann fuer
+     sein Environment zu schwer wird.
+     Die Property ist im Behaelter zu setzen.
+     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+     so wird die Standardmeldung ausgegeben.
+     ("<Behaelter> wuerde dir dann zu schwer werden.")
+     Der String in der Property wird noch durch replace_personal()
+     verarbeitet, das zu bewegende Objekt wird als erstes, der Behaelter als
+     zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
+     umgebrochen.
+     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+     ganz.
+
+BEISPIELE
+---------
+::
+
+     SetProp(P_ENV_TOO_HEAVY_MSG, "Mit @WEM1 koenntest du den Rucksack nicht"
+                                  " mehr tragen.");
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_TOO_HEAVY_MSG, P_TOO_MANY_MSG, P_NOINSERT_MSG,
+                 P_NOLEAVE_MSG, P_NODROP, P_NOGET 
+     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+                 P_WEAR_MSG, P_WIELD_MSG
+     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
diff --git a/doc/sphinx/props/P_EQUIP_TIME.rst b/doc/sphinx/props/P_EQUIP_TIME.rst
new file mode 100644
index 0000000..eca2965
--- /dev/null
+++ b/doc/sphinx/props/P_EQUIP_TIME.rst
@@ -0,0 +1,40 @@
+P_EQUIP_TIME
+============
+
+NAME
+----
+::
+
+      P_EQUIP_TIME			"equip_time"
+
+DEFINIERT IN
+------------
+::
+
+      /sys/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+      Innerhalb von Waffen und Ruestungen wird in dieser Property
+      registriert, wann diese zuletzt gezueckt bzw. angezogen wurden.
+      Innerhalb der Funktionen wield_me() in '/std/weapon/combat' bzw.
+      DoWear() in '/std/armour/combat' wird hierbei jeweils folgende Aktion
+      ausgefuehrt:
+	SetProp(P_EQUIP_TIME,time());
+
+SIEHE AUCH
+----------
+::
+
+      Verwandt:		P_LAST_USE
+      Waffen:		P_UNWIELD_TIME
+			DoWield()
+      Ruestungen:	DoWear()
+      Sonstiges:	time()
+			/std/weapon/combat.c, /std/armour/combat.c
+
+
+Last modified: Sun Jul 26 23:59:12 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_EVAL_FACTORS.rst b/doc/sphinx/props/P_EVAL_FACTORS.rst
new file mode 100644
index 0000000..7d390ed
--- /dev/null
+++ b/doc/sphinx/props/P_EVAL_FACTORS.rst
@@ -0,0 +1,21 @@
+P_EVAL_FACTORS
+==============
+
+NAME
+----
+::
+
+    P_EVAL_FACTORS                "inpc_eval_factors"           
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/eval.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_EVAL_OFFSETS.rst b/doc/sphinx/props/P_EVAL_OFFSETS.rst
new file mode 100644
index 0000000..ff6e604
--- /dev/null
+++ b/doc/sphinx/props/P_EVAL_OFFSETS.rst
@@ -0,0 +1,21 @@
+P_EVAL_OFFSETS
+==============
+
+NAME
+----
+::
+
+    P_EVAL_OFFSETS                "inpc_eval_offsets"           
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/eval.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_EXITS.rst b/doc/sphinx/props/P_EXITS.rst
new file mode 100644
index 0000000..574f33c
--- /dev/null
+++ b/doc/sphinx/props/P_EXITS.rst
@@ -0,0 +1,47 @@
+P_EXITS
+=======
+
+NAME
+----
+::
+
+    P_EXITS                       "exits"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mapping (der Breite 2) aller unmittelbar sichtbaren Ausgaenge mit
+    zugehoerigen Nachbarraeumen und der jeweiligen Bewegungsmeldung.
+
+BEMERKUNG
+---------
+::
+
+    Enthaelt auch SpecialExits, bei der Abfrage mit QueryProp() werden
+    diese jedoch ausgefiltert.
+
+    
+
+    Zugriff nur mit den dafuer vorgesehenen Funktionen, bitte nicht aendern.
+
+  
+
+SIEHE AUCH
+----------
+::
+
+     AddExit(), AddSpecialExit(), GetExits(),
+     RemoveExit(), RemoveSpecialExit(),
+     GuardExit(),
+     H_HOOK_EXIT_USE, P_SPECIAL_EXITS, P_HIDE_EXITS, /std/room/exits.c
+     ausgaenge
+
+Letzte Aenderung: 22.12.2016, Bugfix
+
diff --git a/doc/sphinx/props/P_FAO.rst b/doc/sphinx/props/P_FAO.rst
new file mode 100644
index 0000000..3e692a0
--- /dev/null
+++ b/doc/sphinx/props/P_FAO.rst
@@ -0,0 +1,33 @@
+P_FAO
+=====
+
+NAME
+----
+::
+
+     P_FAO      "fraternitasdonoarchmagorum"
+
+DEFINIERT IN
+------------
+::
+
+     <player/fao.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Fraternitas-relevante Property.
+
+     Genaue Informationen unbekannt.
+     Schreibender Zugriff ist nur EMs oder dem FAOMASTER (s. Headerfile)
+     moeglich.
+
+SIEHE AUCH
+----------
+::
+
+     P_FAO_PORTALS
+
+1.September 2008 Gloinson
+
diff --git a/doc/sphinx/props/P_FAO_PORTALS.rst b/doc/sphinx/props/P_FAO_PORTALS.rst
new file mode 100644
index 0000000..a155488
--- /dev/null
+++ b/doc/sphinx/props/P_FAO_PORTALS.rst
@@ -0,0 +1,38 @@
+P_FAO_PORTALS
+=============
+
+NAME
+----
+::
+
+     P_FAO_PORTALS      "fraternitasdonoarchmagorumPORTALS"
+
+DEFINIERT IN
+------------
+::
+
+     <player/fao.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Fraternitas-relevante Property.
+
+     Enthaelt eine Array mit einer Liste der ueber die Fraternitas
+     gefundenen und benutzbaren Seher-Portale.
+
+     Genaue Informationen unbekannt.
+     Schreibender Zugriff ist nur EMs oder dem FAOMASTER (s. Headerfile) 
+     moeglich.
+
+SIEHE AUCH
+----------
+::
+
+     P_FAO_PORTALS, P_SEERDOORS
+
+     
+
+1.September 2008 Gloinson
+
diff --git a/doc/sphinx/props/P_FISH.rst b/doc/sphinx/props/P_FISH.rst
new file mode 100644
index 0000000..f91a4d8
--- /dev/null
+++ b/doc/sphinx/props/P_FISH.rst
@@ -0,0 +1,93 @@
+P_FISH
+======
+
+NAME
+----
+::
+
+    P_FISH                        "fish"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/fishing.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt Einstellungen zu allem, was mit Fischen zu tun hat. 
+    Kann in Fischen, Raeumen und Koedern gesetzt werden. Die verfuegbaren 
+    Optionen und Funktionsweisen sind in den nachfolgenden Abschnitten 
+    aufgefuehrt.
+
+    Fische:
+    *******
+    Die Property legt zusaetzliche Eigenschaften fest:
+
+      F_NOROTTEN
+        Fisch fault nicht; ggf. sollte hier auch gleich F_NOHEAL gesetzt 
+        werden, weil sonst eine unverderbliche tragbare Tanke erzeugt wuerde.
+      F_NOTHUNGRY
+        Fisch frisst Koeder nur, wenn er auch wirklich nachher an der Angel
+        haengt. Ist er zu schwer fuer die Angel und reisst ab, bleibt der
+        Koeder erhalten.
+      F_REPLACE
+        Fisch soll sich beim Entfernen von der Angel verwandeln. Hierzu ist
+        die Funktion ReplaceFish() im Fisch zu definieren, die sich um die
+        Verwandlung kuemmert (z.B. Monster clonen und Fisch zerstoeren; ein
+        Beispiel findet sich in /d/ebene/fraggle/angel2/obj/saegefisch.c).
+      F_NOHEAL
+        Fisch heilt nicht bei Verzehr
+
+    Raum (OPTIONAL):
+    ****************
+    Legt die Fischdichte des Gewaessers fest. Der eingestellte Wert wirkt 
+    sich auf die Wartezeit aus, die der Angler verbringen muss, bis ein 
+    Fisch anbeisst. Berechnung im Detail (alle Zahlenwerte in Sekunden):
+    - Basis-Wartezeit: delay = 80
+    - Die Werte von P_FISH von Raum und Koeder werden addiert:
+      summe = raum->QueryProp(P_FISH) + koeder->QueryProp(P_FISH)
+      -> positive Werte (Bonus) werden auf 60 begrenzt und mit Zufalls-
+         komponente von <delay> abgezogen:
+         delay -= random(summe)
+      -> negative Werte (Malus) werden auf -300 begrenzt und mit Zufalls-
+         komponente auf <delay> aufgeschlagen:
+         delay += random(-summe)
+
+    Zusaetzlich wird ein weiterer Malus auf die Wartezeit faellig, falls 
+    P_WATER in der Angel und/oder P_WATER im Koeder nicht zum aktuellen 
+    Gewaesser passen. Der Malus betraegt jeweils 60+random(60) Sekunden.
+
+    
+
+    Der Standardwert fuer P_FISH im Raum ist 0 und bedeutet 100 % Bestand.
+    Positive Werte erhoehen die Dichte, negative senken sie. Positive Werte 
+    sollten nicht >100 sein.
+
+    Sofern sich die Werte fuer P_FISH in den empfohlenen Grenzen bewegen,
+    koennen Abzuege fuer falsches Gewaesser ueblicherweise kaum durch
+    Boni auf Angel oder Koeder kompensiert werden. Ausserdem ist zu
+    bedenken, dass es keine Boni fuer richtige Gewaesserwahl gibt.
+
+ 
+
+    Koeder (OPTIONAL):
+    ******************
+    Ein Koeder kann mittels P_FISH die Fischdichte modifizieren, um hierueber
+    ein besseres Beissen der Fische zu simulieren (reduziert die Wartezeit
+    beim Angeln, siehe oben unter "Raum"). Wenn also der Raum einen Wert
+    von -100 gesetzt hat und der Koeder +100, entspricht die Fischdichte im 
+    Gewaesser wieder dem Normalwert.
+
+SIEHE AUCH
+----------
+::
+
+    Properties: P_WATER
+    Methoden:   GetAquarium(L)
+
+
+Zuletzt geaendert: 2014-Aug-21, Arathorn
+
diff --git a/doc/sphinx/props/P_FLAGS.rst b/doc/sphinx/props/P_FLAGS.rst
new file mode 100644
index 0000000..22a2fef
--- /dev/null
+++ b/doc/sphinx/props/P_FLAGS.rst
@@ -0,0 +1,21 @@
+P_FLAGS
+=======
+
+NAME
+----
+::
+
+    P_FLAGS                       "can_flags"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Flags des Spielers
+
diff --git a/doc/sphinx/props/P_FOLLOW_SILENT.rst b/doc/sphinx/props/P_FOLLOW_SILENT.rst
new file mode 100644
index 0000000..5424539
--- /dev/null
+++ b/doc/sphinx/props/P_FOLLOW_SILENT.rst
@@ -0,0 +1,22 @@
+P_FOLLOW_SILENT
+===============
+
+NAME
+----
+::
+
+    P_FOLLOW_SILENT               "follow_silent"               
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn diese Property 1 ist, wird der MOVE vom verfolge Silent ausge-
+     fuehrt.
+
diff --git a/doc/sphinx/props/P_FOOD.rst b/doc/sphinx/props/P_FOOD.rst
new file mode 100644
index 0000000..4acd9e6
--- /dev/null
+++ b/doc/sphinx/props/P_FOOD.rst
@@ -0,0 +1,39 @@
+P_FOOD
+======
+
+NAME
+----
+::
+
+     P_FOOD                        "food"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     - Lebewesen
+       Numerischer Wert fuer den Saettigungsgrad eines Lebewesens.
+       Der maximale Wert steht in P_MAX_FOOD.
+
+     - Speisen/Kneipen
+       Numerischer Wert fuer den Saettigungsgrad einer Portion einer
+       Speise. Ist diese Property nicht gesetzt, kann man diese
+       Speise nicht essen. Eine funktionierende Speise _muss_ entweder
+       P_FOOD oder P_DRINK groesser 0 gesetzt haben.
+
+SIEHE AUCH
+----------
+::
+
+     P_MAX_FOOD, P_FOOD_DELAY, consume,
+     P_DRINK, P_ALCOHOL, wiz/food
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_FOOD_DELAY.rst b/doc/sphinx/props/P_FOOD_DELAY.rst
new file mode 100644
index 0000000..e19f2e8
--- /dev/null
+++ b/doc/sphinx/props/P_FOOD_DELAY.rst
@@ -0,0 +1,23 @@
+P_FOOD_DELAY
+============
+
+NAME
+----
+::
+
+    P_FOOD_DELAY                 "food_delay"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der heart_beats, bis P_FOOD um einen Punkt sinkt.
+     Aenderungen dieser Property in Spielern beduerfen der 
+     Genehmigung des EM fuer Balance.
+
diff --git a/doc/sphinx/props/P_FOOD_FULL_MSG.rst b/doc/sphinx/props/P_FOOD_FULL_MSG.rst
new file mode 100644
index 0000000..9f74716
--- /dev/null
+++ b/doc/sphinx/props/P_FOOD_FULL_MSG.rst
@@ -0,0 +1,50 @@
+P_FOOD_FULL_MSG
+===============
+
+NAME
+----
+::
+
+     P_FOOD_FULL_MSG               "std_food_full_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Konsumenten, wenn eine Speise gegessen werden soll,
+     obwohl dieser nichts mehr essen kann.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "Du bist zu satt, das schaffst Du nicht mehr."
+
+SIEHE AUCH
+----------
+::
+
+     P_FOOD, P_MAX_FOOD, wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_FORCE_MURDER_MSG.rst b/doc/sphinx/props/P_FORCE_MURDER_MSG.rst
new file mode 100644
index 0000000..059b096
--- /dev/null
+++ b/doc/sphinx/props/P_FORCE_MURDER_MSG.rst
@@ -0,0 +1,58 @@
+P_FORCE_MURDER_MSG
+==================
+
+NAME
+----
+::
+
+	P_FORCE_MURDER_MSG		"force_murder_msg"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+	Ob der Tod eines NPCs auf dem Moerder-Kanal erscheint, haengt davon
+	ab, wie oft und welche Art von NPCs in der letzten Zeit getoetet
+	wurden. Zum Beispiel ist es eher selten, dass ein schwacher NPC auf
+	dem Kanal erscheint, wenn kuerzlich viele starke NPCs getoetet
+	wurden. Mittels der Property P_FORCE_MURDER_MSG kann man auf diese
+	Regelung Einfluss nehmen.
+	Ein Wert groesser Null erzwingt die Meldung auf dem Moerder-Kanal,
+	ein Wert kleiner Null unterdrueckt sie generell. Letzteres ist
+	insbesondere fuer allzuoft getoetete Monster sinnvoll, um den
+	Moerder-Kanal nicht uebermaessig zu belasten. Mit dem Erzwingen der
+	Meldungen sollte man somit vorsichtig sein: Weniger ist oftmals
+	besser als zu viel!
+	Die Defaulteinstellung von P_FORCE_MURDER_MSG ist natuerlich Null
+	und fuehrt zur bereits beschriebenen opferabhaengigen Meldung.
+
+BEISPIELE
+---------
+::
+
+	Ein grosser starker NPC, der getoetet wurde, sollte schon eine tolle
+	Meldung auf dem Moerder-Kanal erzeugen. In der Property
+	P_MURDER_MSG koennen hierzu alternative Texte zu den normal per
+	Zufall ausgewaehlten angegeben werden:
+	  SetProp(P_MURDER_MSG,
+                  "Nicht schlecht, aber das schafft eh nur einer!");
+	  SetProp(P_FORCE_MURDER_MSG,1);
+	Zwar ist es bei grossen NPCs hinreichend wahrscheinlich, dass es
+	infolge derer Staerke zur automatischen Ausgabe einer Moerdermeldung
+	kommt, aber mit der letzten Zeile wurde dies absolut sichergestellt.
+
+SIEHE AUCH
+----------
+::
+
+	P_MURDER_MSG, P_ZAP_MSG, P_KILL_MSG, P_DIE_MSG, P_CORPSE, P_NOCORPSE
+
+
+Last modified: Tue Nov 10 02:15:26 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_FREE_HANDS.rst b/doc/sphinx/props/P_FREE_HANDS.rst
new file mode 100644
index 0000000..b05f5ed
--- /dev/null
+++ b/doc/sphinx/props/P_FREE_HANDS.rst
@@ -0,0 +1,40 @@
+P_FREE_HANDS
+============
+
+NAME
+----
+::
+
+    P_FREE_HANDS                  "free_hands"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+    Anzahl der freien Haende.
+    Effektiv nur ein die Differenz von P_MAX_HANDS und P_USED_HANDS.
+
+BEMERKUNGEN
+-----------
+::
+
+    Keine echte Property. Die Methode /std/living/combat::_query_free_hands
+    stellt die Daten zusammen. Nicht setzen!
+
+SIEHE AUCH
+----------
+::
+
+    P_HANDS, P_HANDS_USED_BY
+    P_MAX_HANDS, P_USED_HANDS
+    UseHands, FreeHands
+    /std/weapon.c, /std/spellbook.c
+
+1. Okt 2012, Gloinson
+
diff --git a/doc/sphinx/props/P_FRIEND.rst b/doc/sphinx/props/P_FRIEND.rst
new file mode 100644
index 0000000..479dcf9
--- /dev/null
+++ b/doc/sphinx/props/P_FRIEND.rst
@@ -0,0 +1,40 @@
+P_FRIEND
+========
+
+NAME
+----
+::
+
+	P_FRIEND			"friend"
+
+DEFINIERT IN
+------------
+::
+
+	<combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+	Setzt man diese Property in einem NPC auf einen Wert ungleich Null,
+	so wird der NPC bei Zauberspruechen, die auf bestimmte Gruppen
+	wirken, der Gruppe der Spieler und nicht der Gruppe der NPCs
+	zugeordnet. Ausserdem wird der NPC bei einem "toete alle" nicht mit
+	angegriffen.
+	Wurde der NPC einem Spieler per AssocMember() zugeordnet, so
+	befindet sich der NPC automatisch im jeweiligen Team des Spielers
+	 (moeglichst auch in der selben Kampfreihe), und die Property hat
+	dann automatisch das Spielerobjekt als Wert.
+	Da dieser Wert in diesem Fall natuerlich ungleich Null ist, wird der
+	NPC dann auch der Gruppe der Spieler zugeordnet.
+
+SIEHE AUCH
+----------
+::
+
+	FindGroup(), AssocMember(), P_TEAM_ASSOC_MEMBERS, /std/living/team.c
+
+
+Last modified: Tue Dec 29 17:02:55 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_FROG.rst b/doc/sphinx/props/P_FROG.rst
new file mode 100644
index 0000000..e639e8e
--- /dev/null
+++ b/doc/sphinx/props/P_FROG.rst
@@ -0,0 +1,21 @@
+P_FROG
+======
+
+NAME
+----
+::
+
+    P_FROG                        "frog"                        
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gesetzt, wenn der Spieler ein Frosch ist.
+
diff --git a/doc/sphinx/props/P_FUEL.rst b/doc/sphinx/props/P_FUEL.rst
new file mode 100644
index 0000000..8cd22e7
--- /dev/null
+++ b/doc/sphinx/props/P_FUEL.rst
@@ -0,0 +1,48 @@
+P_FUEL
+======
+
+NAME
+----
+::
+
+    P_FUEL                        "fuel"                        
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Numerischer Wert fuer die Zeitdauer, die die Lichtquelle noch
+     leuchten kann. Standardmaessig ist der Wert auf 20 gesetzt.
+
+     Setzt man die Property auf einen Wert, der groesser ist als der vorige
+     Maximalwert, wird dieser auf den neuen Wert erhoeht. Aendert man den
+     Brennstoffvorrat der Lichtquelle hingegen mittels AddFuel(), so wird
+     der Wert von P_FUEL ueber den Maximalwert hinaus erhoeht.
+
+HINWEIS
+-------
+::
+
+     Fuer Aenderungen an der Property kann auch die Funktion AddFuel()
+     verwendet werden. 
+
+SIEHE AUCH
+----------
+::
+
+     Basisklassen: /std/lightsource.c
+     Properties:   P_LIGHTDESC, P_DO_DESTRUCT, P_LIGHT
+     Methoden:     AddFuel(L)
+
+LETZTE AENDERUNG
+----------------
+::
+
+    22. Dez. 2015, Arathorn
+
diff --git a/doc/sphinx/props/P_FUNC_MSG.rst b/doc/sphinx/props/P_FUNC_MSG.rst
new file mode 100644
index 0000000..2acab57
--- /dev/null
+++ b/doc/sphinx/props/P_FUNC_MSG.rst
@@ -0,0 +1,40 @@
+P_FUNC_MSG
+==========
+
+NAME
+----
+::
+
+    P_FUNC_MSG                    "func_msg"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/room/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Liste mit Funktionen, die zufaellig im Raum aufgerufen werden.
+
+     Hier ist nur eine zur rufende lokale Methode als String oder eine
+     Sammlung davon als Stringarray gespeichert.
+
+ANMERKUNGEN
+-----------
+::
+
+     Bitte AddRoomMessage() zum Hinzufuegen/Ueberschreiben benutzen!
+
+SIEHE AUCH
+----------
+::
+
+     LFuns:    AddRoomMessage()
+     Verwandt: tell_room(), ReceiveMsg()
+     Props:    P_ROOM_MSG, P_MSG_PROB
+
+2.Feb 2016 Gloinson
+
diff --git a/doc/sphinx/props/P_FW_ALWAYS_READABLE.rst b/doc/sphinx/props/P_FW_ALWAYS_READABLE.rst
new file mode 100644
index 0000000..5fa135a
--- /dev/null
+++ b/doc/sphinx/props/P_FW_ALWAYS_READABLE.rst
@@ -0,0 +1,21 @@
+P_FW_ALWAYS_READABLE
+====================
+
+NAME
+----
+::
+
+    P_FW_ALWAYS_READABLE          "fw_always_readable"          
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_FW_UNDERSTAND.rst b/doc/sphinx/props/P_FW_UNDERSTAND.rst
new file mode 100644
index 0000000..d2badf1
--- /dev/null
+++ b/doc/sphinx/props/P_FW_UNDERSTAND.rst
@@ -0,0 +1,21 @@
+P_FW_UNDERSTAND
+===============
+
+NAME
+----
+::
+
+    P_FW_UNDERSTAND               "fw_understand"               
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_GENDER.rst b/doc/sphinx/props/P_GENDER.rst
new file mode 100644
index 0000000..f1a9aaa
--- /dev/null
+++ b/doc/sphinx/props/P_GENDER.rst
@@ -0,0 +1,22 @@
+P_GENDER
+========
+
+NAME
+----
+::
+
+    P_GENDER                      "gender"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/language.h
+
+BESCHREIBUNG
+------------
+::
+
+     Grammatikalisches Geschlecht des Objektes:
+     (Definiert in language.h) MALE, FEMALE oder NEUTER
+
diff --git a/doc/sphinx/props/P_GHOST.rst b/doc/sphinx/props/P_GHOST.rst
new file mode 100644
index 0000000..1bc4544
--- /dev/null
+++ b/doc/sphinx/props/P_GHOST.rst
@@ -0,0 +1,21 @@
+P_GHOST
+=======
+
+NAME
+----
+::
+
+    P_GHOST                       "ghost"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gesetzt, wenn der Spieler tot ist.
+
diff --git a/doc/sphinx/props/P_GIVE_MSG.rst b/doc/sphinx/props/P_GIVE_MSG.rst
new file mode 100644
index 0000000..497800f
--- /dev/null
+++ b/doc/sphinx/props/P_GIVE_MSG.rst
@@ -0,0 +1,83 @@
+P_GIVE_MSG
+==========
+
+NAME
+----
+::
+
+     P_GIVE_MSG				"give_message"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/put_and_get.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mit P_GIVE_MSG kann man die Meldung, die man beim Uebergeben eines
+     Objektes bekommt, modifizieren.
+
+     Folgende Werte sind moeglich:
+
+     o 0
+       Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
+
+     o NO_PNG_MSG	== -1
+       Es wird keinerlei Meldung ausgegeben
+
+     o Ein Array aus Strings
+       Der erste String wird an den Spieler ausgegeben, der zweite
+       (optionale) an den Raum, der dritte (ebenfalls optionale) an den
+       Empfaenger.
+
+       Die Strings werden durch die Funktion replace_personal() geparst.
+	Objekt1 - Spieler
+        Objekt2 - das Objekt, das uebergeben wird
+	Objekt3 - Empfaenger
+
+       Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
+       Raum. Beim Fehlen des dritten gibt es keine Meldung an den Empfaenger.
+
+BEISPIEL
+--------
+::
+
+     void create() {
+      ...
+      SetProp( P_SHORT, "Etwas Sand" );
+      SetProp( P_LONG, break_string(
+	"Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));
+
+      SetProp( P_NAME, "Sand" );
+      AddId( ({"sand"}) );
+      SetProp( P_GENDER, MALE );
+
+      SetProp( P_GIVE_MSG, ({
+       "Du laesst @WEN2 in @WESSEN3 Haende rieseln.",
+       "@WER1 laesst @WENU2 in @WESSEN3 Haende rieseln.",
+       "@WER1 laesst @WENU2 in deine Haende rieseln."}));
+       ...
+      }
+
+     Das ganze fuehrt bei Ugars "gib sand an peter" zu folgenden
+     Meldungen:
+
+     Ugar: "Du laesst den Sand in Peters Haende rieseln."
+     Raum: "Ugar laesst Sand in Peters Haende rieseln."
+     Peter: "Ugar laesst Sand in deine Haende rieseln."
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_DROP_MSG, P_PUT_MSG, P_PICK_MSG, P_SHOW_MSG
+     Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+                 P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET 
+     Sonstiges:  replace_personal(E), give(L), give_objects(L),
+		 give_notify(L), /std/living/put_and_get.c
+
+14. Maerz 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_GLOBAL_SKILLPROPS.rst b/doc/sphinx/props/P_GLOBAL_SKILLPROPS.rst
new file mode 100644
index 0000000..88f92c9
--- /dev/null
+++ b/doc/sphinx/props/P_GLOBAL_SKILLPROPS.rst
@@ -0,0 +1,46 @@
+P_GLOBAL_SKILLPROPS
+===================
+
+NAME
+----
+::
+
+    P_GLOBAL_SKILLPROPS        "sm_global"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Gilden- und Spellbookproperty enthaelt Eigenschaften, die
+    alle Spells eines Spellbooks bzw. alle Skills und Spells einer Gilde
+    haben sollen.
+
+BEISPIELE
+---------
+::
+
+    SetProp(P_GLOBAL_SKILLPROPS,
+      ([SI_SKILLRESTR_USE:     ([SR_FUN: #'spellTest]),
+        OFFSET(SI_SKILLLEARN): #'learnOffset,
+        OFFSET(SI_SPELLCOST):  #'costOffset,
+        FACTOR(SI_SPELLCOST):  #'costFactor]));
+
+SIEHE AUCH
+----------
+::
+
+    GObj Verwalten:   LearnSkill, LearnSpell, InitialSkillAbility
+    * Properties:     P_GUILD_SKILLS
+    Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
+    * Verwalten:      AddSpell, QuerySpell
+    * Properties:     P_SB_SPELLS
+    Skills:           P_NEWSKILLS, spruchermuedung, skill_info_liste
+
+3. Okt 2011 Gloinson
+
diff --git a/doc/sphinx/props/P_GUARD.rst b/doc/sphinx/props/P_GUARD.rst
new file mode 100644
index 0000000..1564a69
--- /dev/null
+++ b/doc/sphinx/props/P_GUARD.rst
@@ -0,0 +1,70 @@
+P_GUARD
+=======
+
+NAME
+----
+::
+
+     P_GUARD				"guard"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/guard.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property gibt an, ob ein NPC aus einem Raum entfernt werden darf
+     oder nicht. Abgefragt werden muss dies von den Items oder Spells, die
+     den NPC zu einer Bewegung zwingen wollen. Es wird nicht automatisch
+     darauf geachtet!
+
+     Entscheidend hierbei ist ein in der Property enthaltene (ganzzahliger)
+     Zahlenwert zwischen 0 und 100, der hierbei den Grad der
+     'Bewachungsstaerke' eines NPCs angibt. Bei 0 laesst sich das Lebewesen
+     immer zu einer Bewegung ueberreden, bei 100 ueberhaupt nicht. Dazwischen
+     gibt es die Wahrscheinlichkeit dafuer an.
+
+BEMERKUNGEN
+-----------
+::
+
+     - alle von /std/npc abgeleiteten NPCs haben standardmaessig P_GUARD
+       auf 100 gesetzt, sind also nicht fortfuehrbar
+     - bei der Erzeugung von NPCs mit P_GUARD < 100 AddItem() mit dem
+       Parameter REFRESH_MOVE_HOME verwenden, damit sie bei einem Raumreset
+       gegebenenfalls an ihren Ausgangsort zurueckkehren. 
+     - gildenspezifische weitere Abfragen auf Level oAe bitte bei Gilden-
+       magiern erfragen
+
+BEISPIELE
+---------
+::
+
+     // ein Test
+     if(random(100)<=liv->QueryProp(P_GUARD))
+      cannotMoveNPC(); // NPC darf nicht bewegt werden!
+     else
+      moveNPC();       // NPC darf bewegt werden
+
+     // ein wegfuehrbarer NPC
+     void create() {
+      ::create();
+      ...
+      SetProp(P_GUARD,50);
+      ...
+     }
+     // mit 50% Wahrscheinlichkeit (pro Versuch) laesst sich der NPC nun
+     // fortfuehren
+
+SIEHE AUCH
+----------
+::
+
+     AddItem()
+
+13.April 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_GUILD.rst b/doc/sphinx/props/P_GUILD.rst
new file mode 100644
index 0000000..deb56f1
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD.rst
@@ -0,0 +1,40 @@
+P_GUILD
+=======
+
+NAME
+----
+::
+
+     P_GUILD				"guild"                       
+
+DEFINIERT IN
+------------
+::
+
+     /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt den Namen der Gilde, welcher das Lebewesen
+     angehoert. Der Name der Gilde ist hierbei kleingeschrieben als String
+     definiert.
+
+BEMERKUNGEN
+-----------
+::
+
+     Bei Spielern ist der Wert dieser Property niemals Null, denn sie
+     gehoeren standardmaessig der in P_DEFAULT_GUILD stehenden Gilde an.
+     Ueber die gesetzte P_GUILD werden auch aktive Skills ermittelt.
+
+SIEHE AUCH
+----------
+::
+
+     P_DEFAULT_GUILD, P_VISIBLE_GUILD
+     P_GUILD_TITLE, P_SUBGUILD_TITLE
+
+26. Maerz 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_GUILD_DEACTIVATE_SKILLS.rst b/doc/sphinx/props/P_GUILD_DEACTIVATE_SKILLS.rst
new file mode 100644
index 0000000..58b6d12
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_DEACTIVATE_SKILLS.rst
@@ -0,0 +1,52 @@
+P_GUILD_DEACTIVATE_SKILLS
+=========================
+
+PROPERTY
+--------
+::
+
+  P_GUILD_DEACTIVATE_SKILLS     "guild_deactivate_skills"
+
+DEFINIERT IN: 
+
+  new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+  Diese Property erlaubt es, Gildenmitgliedern die benutzung von ANY-
+  Skills zu untersagen. Dies sind einerseits die allgemeinen Waffenskills,
+  andererseits koennte das auch der entgifte-Spruch der Duesterwald -
+  Quest sein.
+
+  Wert dieser Property ist ein Mapping, das als Keys die einzelnen
+  Skills und als Wert 1 enthaelt, wenn ein Skill deaktiviert
+  werden soll und 0, falls nicht.
+
+  Diese Property wird nur bei einem Neuerzeugen des Spielers neu 
+  ausgelesen, da es sonst zuviel Rechenzeit kostet.
+
+BEISPIEL
+--------
+::
+
+  Jede Gilde, die keine Waffenskills benutzen soll (oder selbst welche hat)
+  enthaelt folgenden Befehl:
+
+    SetProp(P_GUILD_DEACTIVATE_SKILLS,
+    ([FIGHT(WT_SWORD):1,
+    FIGHT(WT_AXE):1,
+    FIGHT(WT_CLUB):1,
+    FIGHT(WT_SPEAR):1,
+    FIGHT(WT_KNIFE):1,
+    FIGHT(WT_WHIP):1]));
+
+    
+
+LETZTE AENDERUNG 
+
+2003-01-30, 1415, Humni
+------------------------------------------
+::
+
diff --git a/doc/sphinx/props/P_GUILD_DEFAULT_SPELLBOOK.rst b/doc/sphinx/props/P_GUILD_DEFAULT_SPELLBOOK.rst
new file mode 100644
index 0000000..8b95f62
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_DEFAULT_SPELLBOOK.rst
@@ -0,0 +1,45 @@
+P_GUILD_DEFAULT_SPELLBOOK
+=========================
+
+NAME
+----
+::
+
+	P_GUILD_DEFAULT_SPELLBOOK	"guild_sb"                    
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Gildenproperty enthaelt den Namen des Spellbooks, welches
+	standardmaessig von der Gilde verwendet wird.
+
+BEMERKUNGEN
+-----------
+::
+
+	Bei Spells kann sie mit SI_SPELLBOOK ueberschrieben werden.
+
+BEISPIELE
+---------
+::
+
+	Bei Zauberern waere folgendes denkbar:
+	  SetProp(P_GUILD_DEFAULT_SPELLBOOK,"magie_sp");
+	Das Spellbook ist hierbei unter "/spellbooks/magie_sp.c" zu finden.
+
+SIEHE AUCH
+----------
+::
+
+	P_GUILD
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_GUILD_FEMALE_TITLES.rst b/doc/sphinx/props/P_GUILD_FEMALE_TITLES.rst
new file mode 100644
index 0000000..849677e
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_FEMALE_TITLES.rst
@@ -0,0 +1,43 @@
+P_GUILD_FEMALE_TITLES
+=====================
+
+NAME
+----
+::
+
+	P_GUILD_FEMALE_TITLES		"guild_female_titles"         
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Gildenproperty enthaelt die Stufenbezeichnungen fuer
+	weibliche Gildenmitglieder. Als Schluessel dienen hierbei die
+	Gildenstufen und die entsprechenden Eintraege sind dann die zur
+	Stufe gehoerigen Gildentitel.
+
+BEISPIELE
+---------
+::
+
+	Eine Programmierergilde koennte folgende Stufenbezeichnungen
+	beinhalten:
+	  SetProp(P_GUILD_FEMALE_TITLES,([1:"die Anfaengerin",
+	                                  2:"die Fortgeschrittene",
+	                                  3:"die Professionelle ;)"]));
+
+SIEHE AUCH
+----------
+::
+
+	P_GENDER, P_GUILD_LEVEL, P_GUILD_TITLE, P_GUILD_MALE_TITLES
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_GUILD_LEVEL.rst b/doc/sphinx/props/P_GUILD_LEVEL.rst
new file mode 100644
index 0000000..344cebb
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_LEVEL.rst
@@ -0,0 +1,42 @@
+P_GUILD_LEVEL
+=============
+
+NAME
+----
+::
+
+	P_GUILD_LEVEL			"guild_level"                 
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property enthaelt die Gildenstufe des Lebewesens, welche nicht
+	unbedingt seiner Spielerstufe entspricht.
+
+BEMERKUNGEN
+-----------
+::
+
+	Bei manchen Gilden entspricht die Gildenstufe standardmaessig der
+	Spielerstufe (Abenteurer, Katzenkrieger). In der Property selbst
+	wird eigentlich ein Mapping eingetragen, welches die Gildennamen als
+	Schluessel und die dazugehoerige Gildenstufe als Eintrag enthaelt.
+	Bei der Abfrage der Property wird jedoch die Gilde beruecksichtigt
+	und die aktuelle Gildenstufe zurueckgeliefert.
+
+SIEHE AUCH
+----------
+::
+
+	P_GUILD, P_GUILD_TITLE, P_GUILD_MALE_TITLES, P_GUILD_FEMALE_TITLES
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_GUILD_LEVELS.rst b/doc/sphinx/props/P_GUILD_LEVELS.rst
new file mode 100644
index 0000000..9b372aa
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_LEVELS.rst
@@ -0,0 +1,57 @@
+P_GUILD_LEVELS
+==============
+
+NAME
+----
+::
+
+	P_GUILD_LEVELS			"guild_levels"                
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Gildenproperty enthaelt ein Mapping mit den
+	Stufenbeschraenkungen fuer die jeweiligen Gildenstufen. Als
+	Schluessel dient der jeweilige Gildenlevel und die entsprechenden
+	Eintraege sind wiederum Mappings, in welchen die Beschraenkungen
+	angegeben sind.
+
+BEMERKUNGEN
+-----------
+::
+
+	Die Beschraenkungen fuer Level 1 sollten auch fuer die
+	Eintrittsbeschraenkungen der Gilde gelten. Letztere kann man in der
+	Property P_GUILD_RESTRICTIONS angeben.
+
+BEISPIELE
+---------
+::
+
+	Das folgende Beispiel zeigt ein paar moegliche Abfragen:
+	  string check(object pl);
+	  SetProp(P_GUILD_LEVELS,([1:([P_LEVEL:3,P_QP:100,SR_FUN:#'check]),
+	                           2:([A_INT:10,P_LEVEL:25]),
+	                           3:([A_INT:20,P_LEVEL:50])]));
+	  string check(object pl)
+	  { if(pl->QueryProp(P_MALE))
+	      return 0;
+	    return "Fuer Frauen ist das nichts!\n";
+	  }
+
+SIEHE AUCH
+----------
+::
+
+	P_GUILD_LEVEL, P_GUILD_RESTRICTIONS, /std/restriction_checker.c
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_GUILD_MALE_TITLES.rst b/doc/sphinx/props/P_GUILD_MALE_TITLES.rst
new file mode 100644
index 0000000..993527b
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_MALE_TITLES.rst
@@ -0,0 +1,43 @@
+P_GUILD_MALE_TITLES
+===================
+
+NAME
+----
+::
+
+	P_GUILD_MALE_TITLES		"guild_male_titles"           
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Gildenproperty enthaelt die Stufenbezeichnungen fuer
+	maennliche Gildenmitglieder. Als Schluessel dienen hierbei die
+	Gildenstufen und die entsprechenden Eintraege sind dann die zur
+	Stufe gehoerigen Gildentitel.
+
+BEISPIELE
+---------
+::
+
+	Eine Programmierergilde koennte folgende Stufenbezeichnungen
+	beinhalten:
+	  SetProp(P_GUILD_MALE_TITLES,([1:"der Anfaenger",
+	                                2:"der Fortgeschrittene",
+	                                3:"der Profi"]));
+
+SIEHE AUCH
+----------
+::
+
+	P_GENDER, P_GILD_LEVEL, P_GUILD_TITLE, P_GUILD_FEMALE_TITLES
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_GUILD_PREPAREBLOCK.rst b/doc/sphinx/props/P_GUILD_PREPAREBLOCK.rst
new file mode 100644
index 0000000..8aeb418
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_PREPAREBLOCK.rst
@@ -0,0 +1,61 @@
+P_GUILD_PREPAREBLOCK
+====================
+
+P_GUILD_PREPAREBLOCK (int)
+--------------------------
+::
+
+NAME
+----
+::
+
+  P_GUILD_PREPAREBLOCK                           "guild_prepareblock" 
+
+DEFINIERT IN
+------------
+::
+
+  /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+  Diese Property enthaelt die Information, ob das Lebewesen in
+  der Konzentrationsphase eines Spells weiterkaempft oder ob
+  die Angriffe derweil ausgesetzt werden.
+
+BEMERKUNGEN
+-----------
+::
+
+  In der Property selbst wird eigentlich ein Mapping eingetragen,
+  welches die Gildennamen als Schluessel und das dazugehoerige
+  Block-Flag als Eintrag enthaelt. Bei der Abfrage der Property wird
+  jedoch die Gilde beruecksichtigt und das aktuelle Flag
+  zurueckgeliefert.
+  Dementsprechend das diese Prop nicht mit Set() manipuliert werden, 
+  bitte ausschliessliche SetProp() verwenden.
+
+BEISPIELE
+---------
+::
+
+  Die Property sollte natuerlich nur von der Gilde gesetzt werden
+  und auch nur bei Gildenmitgliedern
+
+  if ( IsGuildMember(pl) )
+    pl->SetProp(P_GUILD_PREPAREBLOCK,1);
+
+  Resultat: Kein Ausfuehren von Attack(), wenn pl sich auf einen
+  Zauberspruch konzentriert.
+
+SIEHE AUCH
+----------
+::
+
+  P_PREPARED_SPELL
+
+
+18.03.2008, Zesstra
+
diff --git a/doc/sphinx/props/P_GUILD_RATING.rst b/doc/sphinx/props/P_GUILD_RATING.rst
new file mode 100644
index 0000000..b752e00
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_RATING.rst
@@ -0,0 +1,41 @@
+P_GUILD_RATING
+==============
+
+NAME
+----
+::
+
+	P_GUILD_RATING			"guild_rating"                
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	In dieser Property wird die Einstufung des Spielers innerhalb
+	seiner Gilde festgelegt. Der dafuer zu ermittelnde Wert muss in
+	einem Bereich von 0 bis 10000 liegen. Wie sich die Einstufung
+	zusammensetzt, bleibt der jeweiligen Gilde ueberlassen.
+
+BEMERKUNGEN
+-----------
+::
+
+	Der Wert muss von der Gilde ermittelt werden! Meist setzt er sich
+	aus den Faehigkeiten des Mitglieds zusammen und mitunter fliessen
+	auch Gildenquests oder aehnliches mit ein.
+
+SIEHE AUCH
+----------
+::
+
+    P_NEWSKILLS, GuildRating
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_GUILD_RESTRICTIONS.rst b/doc/sphinx/props/P_GUILD_RESTRICTIONS.rst
new file mode 100644
index 0000000..31632a6
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_RESTRICTIONS.rst
@@ -0,0 +1,59 @@
+P_GUILD_RESTRICTIONS
+====================
+
+NAME
+----
+::
+
+    P_GUILD_RESTRICTIONS        "guild_rest"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Gildenproperty enthaelt ein Mapping mit den
+    Eintrittsbeschraenkungen fuer die jeweilige Gilde.
+
+BEMERKUNGEN
+-----------
+::
+
+    Im allgemeinen sollte das Mapping mit den Eintrittsbeschraenkungen
+    mit den Beschraenkungen fuer Level 1 im Mapping von P_GUILD_LEVELS
+    uebereinstimmen.
+
+BEISPIELE
+---------
+::
+
+    Ein paar moegliche Abfragen waeren folgende:
+    string check(object pl);
+
+    SetProp(P_GUILD_RESTRICTIONS,
+            ([P_LEVEL:3,
+              P_QP:100,
+              SR_FUN:#'check]));
+
+    string check(object pl) {
+      if(pl->QueryProp(P_MALE))
+        return 0;
+      return "Fuer Frauen ist das nichts!\n";
+    }
+
+SIEHE AUCH
+----------
+::
+
+    Gildenfkt.:
+    * Ein/Austritt: beitreten, bei_oder_aus_treten, austreten
+    * Sonstiges:    P_GUILD_LEVELS
+    Sonstiges:      /std/restriction_checker.c
+
+3. Okt 2011 Gloinson
+
diff --git a/doc/sphinx/props/P_GUILD_SKILLS.rst b/doc/sphinx/props/P_GUILD_SKILLS.rst
new file mode 100644
index 0000000..13e1ecb
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_SKILLS.rst
@@ -0,0 +1,42 @@
+P_GUILD_SKILLS
+==============
+
+NAME
+----
+::
+
+    P_GUILD_SKILLS            "guild_skills"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Gildenproperty enthaelt ein Mapping mit allen Skills und
+    Spells der Gilde.
+
+BEMERKUNGEN
+-----------
+::
+
+    Man sollte diese Property sollte nicht per Hand veraendern, sondern
+    die Funktionen AddSkill() bzw. AddSpell() nutzen.
+
+SIEHE AUCH
+----------
+::
+
+    GObj Verwalten:   LearnSkill, LearnSpell, InitialSkillAbility
+    * Sonstiges:      GuildRating
+    Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
+    * Verwalten:      AddSpell, QuerySpell
+    * Properties:     P_SB_SPELLS, P_GLOBAL_SKILLPROPS, P_GUILD_RATING
+    Skills:           P_NEWSKILLS, spruchermuedung, skill_info_liste
+
+3. Okt 2011 Gloinson
+
diff --git a/doc/sphinx/props/P_GUILD_TITLE.rst b/doc/sphinx/props/P_GUILD_TITLE.rst
new file mode 100644
index 0000000..415f3f8
--- /dev/null
+++ b/doc/sphinx/props/P_GUILD_TITLE.rst
@@ -0,0 +1,58 @@
+P_GUILD_TITLE
+=============
+
+NAME
+----
+::
+
+     P_GUILD_TITLE			"guild_title"                 
+
+DEFINIERT IN
+------------
+::
+
+     /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt den Gildentitel des Lebewesens, welcher der
+     Gildenstufe des Lebewesens entspricht und jedoch nur angezeigt wird,
+     wenn P_TITLE des Lebewesens gleich Null ist.
+
+BEMERKUNGEN
+-----------
+::
+
+     In der Property selbst wird eigentlich ein Mapping eingetragen, welches
+     die Gildennamen als Schluessel und die dazugehoerigen Gildentitel als
+     Eintrag enthaelt. Bei der Abfrage der Property wird jedoch die Gilde
+     beruecksichtigt und der aktuelle Gildentitel zurueckgeliefert.
+
+BEISPIELE
+---------
+::
+
+	Fuer eine Programmierergilde waere folgendes denkbar:
+	  SetProp(P_GUILD_MALE_TITLES,([1:"der Anfaenger",
+	                                2:"der Fortgeschrittene",
+	                                3:"der Profi"]));
+	  SetProp(P_GUILD_FEMALE_TITLES,([1:"die Anfaengerin",
+	                                  2:"die Fortgeschrittene",
+	                                  3:"die Professionelle"]));
+	Ein weibliches Gildenmitglied mit der dritten Gildenstufe und ohne
+	P_TITLE wuerde dann den Titel "die Professionelle" tragen. Das hat
+	zwar nichts mit Programmierern zu tun, aber wie heisst eigentlich
+	ein weiblicher "Profi"?! :)
+
+SIEHE AUCH
+----------
+::
+
+     P_TITLE, P_GUILD, P_GUILD_LEVEL,
+     P_GUILD_MALE_TITLES, P_GUILD_FEMALE_TITLES,
+     P_SUBGUILD_TITLE
+
+26. Maerz 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_HANDS.rst b/doc/sphinx/props/P_HANDS.rst
new file mode 100644
index 0000000..c9f739d
--- /dev/null
+++ b/doc/sphinx/props/P_HANDS.rst
@@ -0,0 +1,78 @@
+P_HANDS
+=======
+
+NAME
+----
+::
+
+     P_HANDS                    "hands"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt ein dreielementiges Array mit
+     den folgenden Eintraegen:
+     1. Element: String mit der Meldung, wenn ohne Waffen angegriffen
+                 wird.
+     2. Element: Waffenklasse, wenn ohne Waffen angegriffen wird.
+     3. Element: Array mit Schadensarten (frueher auch: Schadensart)
+
+     eim Setzen dieser Property wird auch P_TOTAL_WC mit veraendert,
+     wenn das Lebewesen keine Waffe gezueckt hat. Steckt das Lebewesen
+     eine gezueckte Waffe weg, so wird ebenfalls P_TOTAL_WC mit der
+     Waffenklasse aus P_HANDS aktualisiert. Zueckt das Lebewesen eine
+     Waffe, so wird P_TOTAL_WC mit der Waffenklasse der Waffe (P_WC)
+     ueberschrieben. Die Property P_TOTAL_WC enthaelt somit immer die
+     aktuelle Angriffsstaerke des Lebewesen.
+
+BEMERKUNGEN
+-----------
+::
+
+     In alten Objekten kann es vorkommen, dass das dritte Element (Angabe des
+     Schadenstyps) fehlt. Dies ist eine Altlast, die Angabe des Schadenstypes
+     ist NICHT optional.)
+
+BEISPIEL
+--------
+::
+
+     Ein starker Tausendfuessler mit Schlagschaden:
+
+       SetProp(P_HANDS,({" mit tausend kleinen Fuesschen",1000, 
+                         ({DT_BLUDGEON}) }));
+
+
+     Ein Saeurededaemon:
+       SetProp(P_HANDS,
+         ({
+           " mit saeuretriefenden Klauen",
+           250,
+           ({DT_RIP, DT_ACID})
+         })
+       );
+
+     Hier wurden gleich zwei Schadensarten angegeben, also wird
+     Mischschaden verursacht. Man sollte es jedoch nicht zu sehr
+     uebertreiben! Mehr als zwei oder drei gleichzeitig verwendete
+     Schadensarten lassen sich kaum mehr begruenden.
+
+SIEHE AUCH
+----------
+::
+
+     P_HANDS_USED_BY
+     P_MAX_HANDS, P_USED_HANDS, P_FREE_HANDS
+     UseHands, FreeHands
+     P_TOTAL_WC, P_WC
+     /std/living/combat.c, /std/weapon/combat.c, /sys/combat.h
+
+22.02.2014 Zesstra
+
diff --git a/doc/sphinx/props/P_HANDS_USED_BY.rst b/doc/sphinx/props/P_HANDS_USED_BY.rst
new file mode 100644
index 0000000..7a2c310
--- /dev/null
+++ b/doc/sphinx/props/P_HANDS_USED_BY.rst
@@ -0,0 +1,39 @@
+P_HANDS_USED_BY
+===============
+
+NAME
+----
+::
+
+     P_HANDS_USED_BY           "hands_used_by"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+     Enthaelt eine Liste mit den Objekten, die derzeit die Haende
+     des Livings belegen. Dabei koennen Objekte mehrmals auftauchen,
+     je nachdem wie viele Haende sie belegen.
+
+BEMERKUNGEN
+-----------
+::
+
+     Darf nur ueber UseHands() und FreeHands() manipuliert werden.
+
+SIEHE AUCH
+----------
+::
+
+     P_HANDS
+     P_MAX_HANDS, P_USED_HANDS, P_FREE_HANDS
+     UseHands, FreeHands
+
+1.Feb.2004 Gloinson
+
diff --git a/doc/sphinx/props/P_HARBOUR.rst b/doc/sphinx/props/P_HARBOUR.rst
new file mode 100644
index 0000000..a8a7515
--- /dev/null
+++ b/doc/sphinx/props/P_HARBOUR.rst
@@ -0,0 +1,96 @@
+P_HARBOUR
+=========
+
+NAME
+----
+::
+
+    P_HARBOUR                                  "harbour_name"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+    Array mit eindeutiger Bezeichnung des 'Hafens'
+
+BEMERKUNGEN
+-----------
+::
+
+    Diese Property wird in Raeumen gesetzt, die als Anleger fuer Transporter
+    dienen sollen. Sie enthaelt ein Array aus zwei Elementen, einem String
+    und einem String-Array, zum Beispiel:
+
+    ({ "zur Sonneninsel", ({"sonneninsel"}) }) oder 
+    ({ "nach Titiwu", ({"titiwu"}) })
+
+    Damit bekommt der Spieler bei einer Abfrage seiner Reiseroute mittels
+    "reise route" eine Ausgabe wie 
+      'Du reist mit dem Floss nach Titiwu' oder
+      'Du reist mit dem Wal zur Sonneninsel'.
+
+    Das zweite Element der Property enthaelt eine Liste der IDs, mit denen
+    sich der Hafen mit dem Befehl "reise nach <ID>" ansprechen laesst. Im
+    Beispiel oben wuerde also "reise nach sonneninsel" und 
+    "reise nach titiwu" akzeptiert werden. Der erste Eintrag in dieser ID-
+    Liste wird in der Ausgabe des Befehls "reise route" verwendet, sollte
+    also den Anlegeort korrekt bezeichnen und nicht z.B. eine Abkuerzung
+    enthalten.
+    Es bietet sich an, bei bestimmten, deklinierbaren Bezeichnungen alle
+    Varianten einzutragen, z.B. "verlorenes land" und zusaetzlich
+    "verlorene land" und "verlorenen land", damit alle Varianten von 
+    "reise nach ..." funktionieren.
+
+    Ist in einem Hafen diese Property nicht gesetzt, so bekommt der 
+    Spieler keinerlei Hinweis darauf, wohin ihn ein bestimmter Trans-
+    porter befoerdert. 
+    Stattdessen erhaelt er die Bezeichnung 'unbekannt'.
+
+HINWEISE
+--------
+::
+
+    Wird der zweite Parameter in dieser Property, d.h. die Liste der 
+    Anleger-IDs, nicht korrekt gesetzt, kann das dazu fuehren, dass Spieler
+    den hier anlegenden Transporter nicht benutzen koennen, weil es
+    keine sinnvolle Syntax gibt, um den gewuenschten Zielhafen zu finden.
+
+    Zu achten ist auch darauf, das der erste Eintrag unveraendert in einer 
+    Meldung an den Spieler ausgegeben wird, d.h. Gross-und Kleinschreibung
+    sollte korrekt sein.
+
+HISTORIE
+--------
+::
+
+    Frueher war der zweite Eintrag in dieser Property ein einzelner String.
+    Es existiert eine SetMethode auf dieser Property, die solche Daten in
+    altem Code auf die neue Datenstruktur umbiegt. Dies fuehrt dazu, dass
+    bei solchen Objekten die im geladenen Raum enthaltenen Daten nicht mit
+    den Daten im File uebereinstimmen. Dies moege aber bitte niemand 
+    zum Anlass nehmen, in neuem Code veraltete Daten in die Property zu 
+    schreiben!
+
+    
+
+SIEHE AUCH
+----------
+::
+
+  Properties:     P_NO_TRAVELING, P_TRAVEL_INFO
+  Funktionen:     AddRoute(L)
+  Spielerbefehle: reise
+  weitere Doku:   /d/inseln/schiffe/HowTo
+
+LETZTE AENDERUNG
+----------------
+::
+
+2015-Jan-18, Arathorn
+
diff --git a/doc/sphinx/props/P_HAUS_ERLAUBT.rst b/doc/sphinx/props/P_HAUS_ERLAUBT.rst
new file mode 100644
index 0000000..6e458e9
--- /dev/null
+++ b/doc/sphinx/props/P_HAUS_ERLAUBT.rst
@@ -0,0 +1,47 @@
+P_HAUS_ERLAUBT
+==============
+
+NAME
+----
+::
+
+    P_HAUS_ERLAUBT                "haus_erlaubt"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/room/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Hier darf ein Seherhaus abgestellt werden
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Property sollte nicht per default in Raeumen auf einen Wert > 0
+     gesetzt werden um einem Wildwuchs an Seherhaus(-ruinen) vorzubeugen.
+     Auch sei darauf geachtet, dass in Raeumen die P_INDOORS auf einen 
+     Wert > 0 haben, per default nicht gebaut werden kann.     
+     Hier lieber die Property per Hand auf 1 setzen und nach dem Aufstellen
+     des Hauses wieder loeschen.
+
+      
+
+     xcall $h->SetProp(P_HAUS_ERLAUBT,1);
+
+     Angemerkt sei noch, dass der Magier dem der Raum gehoert ueber Hausbau
+     entscheidet und nicht der Regionsmagier. In jedem Fall Ruecksprache 
+     halten falls der entsprechende Magier zumindest ab und an anwesend sein
+     sollte.
+
+     Unter /doc/beispiele/misc liegt ein File, in dem dokumentiert ist,
+     wie nach Aenderungen am Seherhaus zu verfahren ist.
+
+
+Last modified: Fri Nov 26 15:41:47 1999 by Tilly
+
diff --git a/doc/sphinx/props/P_HB.rst b/doc/sphinx/props/P_HB.rst
new file mode 100644
index 0000000..2888fcc
--- /dev/null
+++ b/doc/sphinx/props/P_HB.rst
@@ -0,0 +1,22 @@
+P_HB
+====
+
+NAME
+----
+::
+
+    P_HB                          "hb"                          
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property wird gesetzt, wenn das Monster immer einen
+     heart_beat haben soll. (VORSICHT, nur wenn es WIRKLICH sein muss!)
+
diff --git a/doc/sphinx/props/P_HEAL.rst b/doc/sphinx/props/P_HEAL.rst
new file mode 100644
index 0000000..df6ed73
--- /dev/null
+++ b/doc/sphinx/props/P_HEAL.rst
@@ -0,0 +1,50 @@
+P_HEAL
+======
+
+NAME
+----
+::
+
+     P_HEAL                        "heal"                        
+
+DEFINIERT IN
+------------
+::
+
+     /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Numerischer Wert, der beim Verzehr einer Leiche zu den Lebenspunkten 
+     desjenigen hinzugezaehlt wird, der die Leiche isst. Der Wert kann auch 
+     negativ sein. Falls die Leiche den maximalen Verfallszustand erreicht 
+     hat, wird dieser Wert automatisch auf -4 gesetzt, sofern nicht schon
+     ein geringerer Wert eingetragen ist.
+
+     Werte unter -4 sind sehr sparsam und nur in begruendeten Einzelfaellen
+     zu setzen. Die Regionsmagier werden auf sinnvolle Wertebereiche in
+     ihrem Zustaendigkeitsbereich achten und ggf. Grenzwerte fuer ihre 
+     Region festlegen.
+
+     Die Gilden koennen P_HEAL abfragen und eigene, grobe Informationstexte
+     ausgeben, die den Spieler ueber den zu erwartenden Effekt beim Essen
+     einer Leiche informieren.
+
+     Positive Werte von P_HEAL sind bei der Heilungsbalance als Heilstelle
+     zu beantragen.
+
+     Fuer nicht allzu harte NPCs sollte P_HEAL auf 0 gesetzt sein. Dieser
+     Wert ist gleichzeitig der Standardwert.
+
+SIEHE AUCH
+----------
+::
+
+     /std/corpse, QueryHealInfo()
+
+     
+
+31.03.2008 Arathorn
+
diff --git a/doc/sphinx/props/P_HELPER_NPC.rst b/doc/sphinx/props/P_HELPER_NPC.rst
new file mode 100644
index 0000000..b144253
--- /dev/null
+++ b/doc/sphinx/props/P_HELPER_NPC.rst
@@ -0,0 +1,50 @@
+P_HELPER_NPC
+============
+
+NAME
+----
+::
+
+     P_HELPER_NPC             "std:helper_npc
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mit dieser Prop laesst sich herausfinden, ob ein NPC einem Spieler hilft
+    bzw. welche NPC einem Spieler helfen.
+    Wird diese Prop in einem NPC abgefragt, enthaelt sie ein Array 
+      ({ spielerobjekt, flags }) oder 0.
+    Wird diese Prop in einem Spieler abgefragt, enthaelt sie ein Mapping
+      ([npcobjekt1: flags1, npc-objekt2: flags2]).
+
+    <flags> ist ein Integer, der eine Reihe von ver-oder-ten Konstanten (s.
+    RegisterHelperNPC) enthalten kann.
+
+BEMERKUNGEN
+-----------
+::
+
+    Diese Prop wird automatisch von RegisterHelperNPC() und
+    UnregisterHelperNPC() verwaltet. Bitte aendert sie nicht per Hand.
+
+BEISPIEL
+--------
+::
+
+    s. RegisterHelperNPC().
+
+SIEHE AUCH
+----------
+::
+
+     RegisterHelperNPC(), UnregisterHelperNPC()
+
+10.03.2009, Zesstra
+
diff --git a/doc/sphinx/props/P_HELPER_OBJECTS.rst b/doc/sphinx/props/P_HELPER_OBJECTS.rst
new file mode 100644
index 0000000..3e045b9
--- /dev/null
+++ b/doc/sphinx/props/P_HELPER_OBJECTS.rst
@@ -0,0 +1,41 @@
+P_HELPER_OBJECTS
+================
+
+NAME
+----
+::
+
+     P_HELPER_OBJECTS "lib_p_helper_objects"
+
+DEFINIERT IN
+------------
+::
+
+     <living/helpers.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt eine Liste von Hilfsobjekten, die das Lebewesen,
+     in dem sie gesetzt ist, bei bestimmten Aktivitaeten wie Tauchen oder
+     Fliegen/Segeln unterstuetzt. Die Property enthaelt ein Mapping der Form
+     ([ HELPER_TYPE : ({ Callback-Closures }) ]).
+
+BEMERKUNGEN
+-----------
+::
+
+     Externe Manipulationen an dieser Property bitte unterlassen, zum Ein-
+     und Austragen von Objekten gibt es die unten aufgefuehrten Methoden.
+
+SIEHE AUCH
+----------
+::
+
+     Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
+     Properties:  P_AERIAL_HELPERS, P_AQUATIC_HELPERS
+
+
+18.02.2013, Arathorn
+
diff --git a/doc/sphinx/props/P_HIDE_EXITS.rst b/doc/sphinx/props/P_HIDE_EXITS.rst
new file mode 100644
index 0000000..f4733ef
--- /dev/null
+++ b/doc/sphinx/props/P_HIDE_EXITS.rst
@@ -0,0 +1,53 @@
+P_HIDE_EXITS
+============
+
+NAME
+----
+::
+
+     P_HIDE_EXITS                  "hide_exits"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/room/exits.h
+
+BESCHREIBUNG
+------------
+::
+
+     Ist diese Property in einem Raum auf einen Integerwert ungleich 0
+     gesetzt, werden einem Spieler fuer diesen Raum keine Ausgaenge angezeigt.
+     Auch der Text "Keine sichtbaren Ausgaenge." (oder so) kommt nicht.
+     Alternativ kann man auch ein array von strings uebergeben. In diesem
+     Fall werden all die Ausgaenge nicht angezeigt, deren Index in P_EXITS
+     in dem array vorkommt.
+     In diesem Fall wird ggf. der Text "Keine sichtbaren Ausgaenge."
+     ausgegeben.
+
+BEISPIEL
+--------
+::
+
+     AddExit("raus", "/ganz/wo/anders");
+     AddExit("weiter", "/in/der/naehe");
+
+     // KEINE Ausgaenge anzeigen. Noch nicht mal, dass man keine sieht.
+     SetProp(P_HIDE_EXITS, 1);
+
+     // Der Ausgang weiter wird nicht angezeigt.
+     SetProp(P_HIDE_EXITS, ({"weiter"}) );
+
+     // Keinen Ausgang zeigen, aber den Text, dass keiner sichtbar, ausgeben.
+     SetProp(P_HIDE_EXITS, ({"weiter", "raus"}) );
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches:	P_SHOW_EXITS
+     Sonstiges:		AddExit(), GetExits(), int_long(), int_short()
+
+25. Apr 1996 Highlander
+
diff --git a/doc/sphinx/props/P_HISTMIN.rst b/doc/sphinx/props/P_HISTMIN.rst
new file mode 100644
index 0000000..a432fde
--- /dev/null
+++ b/doc/sphinx/props/P_HISTMIN.rst
@@ -0,0 +1,21 @@
+P_HISTMIN
+=========
+
+NAME
+----
+::
+
+    P_HISTMIN                     "histmin"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player.h
+
+BESCHREIBUNG
+------------
+::
+
+     Minimale Laenge, die eine Zeile haben muss, um in die History zu kommen
+
diff --git a/doc/sphinx/props/P_HIT_FUNC.rst b/doc/sphinx/props/P_HIT_FUNC.rst
new file mode 100644
index 0000000..314e294
--- /dev/null
+++ b/doc/sphinx/props/P_HIT_FUNC.rst
@@ -0,0 +1,39 @@
+P_HIT_FUNC
+==========
+
+NAME
+----
+::
+
+     P_HIT_FUNC "hit_func"
+
+DEFINIERT IN
+------------
+::
+
+     <weapon.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Falls ein Objekt eine HitFunc() fuer die Waffe definiert, so muss
+     dieses Objekt in dieser Property eingetragen werden.
+
+     Die Auswertung dieser Property erfolgt in QueryDamage().
+
+BEISPIELE
+---------
+::
+
+     Siehe das Beispiel zu HitFunc()
+
+SIEHE AUCH
+----------
+::
+
+     /std/weapon.c, HitFunc()
+
+
+Last modified: Sun May 19 15:37:35 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_HOMEPAGE.rst b/doc/sphinx/props/P_HOMEPAGE.rst
new file mode 100644
index 0000000..3caaf03
--- /dev/null
+++ b/doc/sphinx/props/P_HOMEPAGE.rst
@@ -0,0 +1,21 @@
+P_HOMEPAGE
+==========
+
+NAME
+----
+::
+
+    P_HOMEPAGE                    "homepage"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Die Homepage eines Spielers (mit dem Befehl 'url' zu setzen).
+
diff --git a/doc/sphinx/props/P_HP.rst b/doc/sphinx/props/P_HP.rst
new file mode 100644
index 0000000..59d30b5
--- /dev/null
+++ b/doc/sphinx/props/P_HP.rst
@@ -0,0 +1,40 @@
+P_HP
+====
+
+NAME
+----
+::
+
+    P_HP                          "hp"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     - Lebewesen
+       Anzahl der Lebenspunkte des Wesens.
+
+     - Speisen/Kneipen
+       Heilwirkung einer Portion der Speise auf die Lebenspunkte
+       des Konsumenten
+
+SIEHE AUCH
+----------
+::
+
+     Props:		P_MAX_HP
+     Veraenderung:	reduce_hit_points(), restore_hit_points()
+			do_damage(L), Defend(L)
+			buffer_hp()
+     Ueberwachung:	AddHpHook(L)
+     Speisen/Kneipen:   std/pub, wiz/food, consume
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_HP_DELAY.rst b/doc/sphinx/props/P_HP_DELAY.rst
new file mode 100644
index 0000000..444b0a7
--- /dev/null
+++ b/doc/sphinx/props/P_HP_DELAY.rst
@@ -0,0 +1,23 @@
+P_HP_DELAY
+==========
+
+NAME
+----
+::
+
+    P_HP_DELAY                 "hp_delay"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der heart_beats, bis P_HP um einen Punkt regeneriert.
+     Aenderungen dieser Property in Spielern beduerfen der 
+     Genehmigung des EM fuer Balance.
+
diff --git a/doc/sphinx/props/P_HP_HOOKS.rst b/doc/sphinx/props/P_HP_HOOKS.rst
new file mode 100644
index 0000000..ee8232b
--- /dev/null
+++ b/doc/sphinx/props/P_HP_HOOKS.rst
@@ -0,0 +1,38 @@
+P_HP_HOOKS
+==========
+
+NAME
+----
+::
+
+    P_HP_HOOKS                    "hp_hooks"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Welche Objekte sollen bei HP-Aenderungen benachrichtigt werden?
+     Diese Property bitte NICHT manipulieren! Zum Ein- und Austragen stehen
+     hierfuer AddHpHook() und RemoveHpHook() bereit.
+
+BEMERKUNGEN
+-----------
+::
+
+    Das neuere Hooksystem (s. Manpage std/hooks) stellt ebenfalls Hooks zur
+    Ueberwachung von P_HP bereit.
+
+SIEHE AUCH
+----------
+::
+
+    AddHpHook(), RemoveHpHook(),
+    NotifyHpChange()
+    std/hooks
+
diff --git a/doc/sphinx/props/P_HUNTTIME.rst b/doc/sphinx/props/P_HUNTTIME.rst
new file mode 100644
index 0000000..6b52780
--- /dev/null
+++ b/doc/sphinx/props/P_HUNTTIME.rst
@@ -0,0 +1,59 @@
+P_HUNTTIME
+==========
+
+P_HUNTTIME (int)
+----------------
+::
+
+NAME
+----
+::
+
+     P_HUNTTIME					"p_lib_hunttime"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mit dieser Property laesst sich festlegen, wie lange ein Monster einen 
+    Gegner verfolgt (also automatisch angreift), nachdem dieser geflohen ist.
+    Die Angabe erfolgt in Sekunden.
+    Die Standardzeit ist 600s (300 Heartbeats).
+
+BEMERKUNGEN
+-----------
+::
+
+    1. Wenn der Standardwert akzeptabel ist, bitte die Prop auch nicht setzen.
+    2. Enthaelt die Property keinen Integer oder ist sie <= 0, wird sie 
+       ignoriert und der Standardwert von 600s verwendet.
+    3. Kaempft man mit einem Lebenwesen mit einem groesseren Wert als man 
+       selber und man selber hat das Verfolgen eingestellt, der Gegner aber 
+       nicht, wird dieser beim Reinkommen den Kampf neu starten (und den 
+       ersten Schlag haben).
+
+BEISPIEL
+--------
+::
+
+    Ein NPC soll sich erst eine Stunde nach Flucht des Gegners beruhigen.
+    protected void create() {
+      ...
+      SetProp(P_HUNTTIME, 3600);
+    }
+
+SIEHE AUCH
+----------
+::
+
+     InsertSingleEnemy, InsertEnemy
+     /std/living/combat.c
+
+13.03.2008, Zesstra
+
diff --git a/doc/sphinx/props/P_IDS.rst b/doc/sphinx/props/P_IDS.rst
new file mode 100644
index 0000000..7ec662d
--- /dev/null
+++ b/doc/sphinx/props/P_IDS.rst
@@ -0,0 +1,42 @@
+P_IDS
+=====
+
+NAME
+----
+::
+
+     P_IDS "ids"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/description.h>
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Property steht ein Array von den Strings, mit denen sich das
+     Objekt ansprechen laesst. Die Verwaltung dieser Property erfolgt ueber
+     die Funktionen AddId() und RemoveId().
+
+     Der Inhalt dieser Property wird von den Funktionen id() und (indirekt)
+     present() ausgewertet.
+
+BEMERKUNGEN
+-----------
+::
+
+     Man sollte an dieser Property nicht "von Hand" herumfummeln, sondern
+     immer die zugehoerigen Funktionen benutzen!
+
+SIEHE AUCH
+----------
+::
+
+     /std/thing/description.c, AddId(), RemoveId()
+
+
+Last modified: Sun May 19 20:17:36 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_IGNORE.rst b/doc/sphinx/props/P_IGNORE.rst
new file mode 100644
index 0000000..8eeae75
--- /dev/null
+++ b/doc/sphinx/props/P_IGNORE.rst
@@ -0,0 +1,40 @@
+P_IGNORE
+========
+
+NAME
+----
+::
+
+    P_IGNORE                      "ignore"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+    Array mit Spielern, Kommandos, Aktionen u.ae. die ignoriert werden.
+    In aller Regel sollte die Ignorierepruefung durch Aufruf von TestIgnore()
+    im Spieler erfolgen und nicht selber P_IGNORE durchsucht werden.
+
+BEMERKUNGEN
+-----------
+::
+
+    Die Daten in dieser Property werden intern als Mapping gespeichert, nicht
+    als Array von Strings. Bitte nicht mit Set/Query() an dieser Property
+    herumbasteln.
+
+SIEHE AUCH
+----------
+::
+
+    TestIgnore, /std/player/comm.c
+
+
+Last modified: 02.10.2011, Zesstra
+
diff --git a/doc/sphinx/props/P_INDOORS.rst b/doc/sphinx/props/P_INDOORS.rst
new file mode 100644
index 0000000..9f4f328
--- /dev/null
+++ b/doc/sphinx/props/P_INDOORS.rst
@@ -0,0 +1,52 @@
+P_INDOORS
+=========
+
+NAME
+----
+::
+
+     P_INDOORS                     "indoors"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/room/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gesetzt, wenn von dem Raum aus der Himmel nicht sichtbar ist.
+
+     Objekte oder Gilden werten diese Property teilweise aus, fuer
+     Innenraeume sollte sie also sinnvollerweise gesetzt werden.
+
+     Licht wird _nicht_ durch P_INDOORS beeinflusst, muss also
+     selbst angepasst werden.
+
+BEISPIEL
+--------
+::
+
+     // Ein dunkler Innenraum:
+     SetProp(P_INDOORS, 1);            // ein Innenraum liegt innen :)
+     SetProp(P_LIGHT, 0);              // Licht auf 0
+
+     // Ein richtig heller Aussenraum:
+     SetProp(P_INDOORS, 0);
+     SetProp(P_LIGHT, 2);
+
+     // Ein heller Aussenraum mit Mondlicht (gut fuer Delfen)
+     SetProp(P_INDOORS, 0);
+     SetProp(P_LIGHT, 1);
+     SetProp(P_LIGHT_TYPE, LT_STARS|LT_MOON);
+
+SIEHE AUCH
+----------
+::
+
+     P_LIGHT, P_LIGHT_ABSORPTION, P_LIGHT_TYPE
+
+25.Aug 2008 Gloinson
+
diff --git a/doc/sphinx/props/P_INFO.rst b/doc/sphinx/props/P_INFO.rst
new file mode 100644
index 0000000..28d9a4a
--- /dev/null
+++ b/doc/sphinx/props/P_INFO.rst
@@ -0,0 +1,38 @@
+P_INFO
+======
+
+NAME
+----
+::
+
+     P_INFO                        "info"                        
+
+DEFINIERT IN
+------------
+::
+
+     /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Geheime Information, die ggf. ueber einen Zauberspruch
+     von Spielern ermittelt werden kann.
+
+     
+
+BEISPIEL
+--------
+::
+
+     SetProp(P_INFO,"Du ergruendest das Geheimnis.\n")
+
+SIEHE AUCH
+----------
+::
+
+     GetOwner(L)
+
+24. April 2006, Vanion 
+
diff --git a/doc/sphinx/props/P_INFORMME.rst b/doc/sphinx/props/P_INFORMME.rst
new file mode 100644
index 0000000..d35316f
--- /dev/null
+++ b/doc/sphinx/props/P_INFORMME.rst
@@ -0,0 +1,30 @@
+P_INFORMME
+==========
+
+NAME
+----
+::
+
+    P_INFORMME                    "informme"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt das Flag, ob der Spieler ueber ein-/ausloggende Spieler
+    informiert werden will.
+
+SIEHE AUCH
+----------
+::
+
+    Spielerkommando: inform
+
+6.Feb 2016 Gloinson
+
diff --git a/doc/sphinx/props/P_INPC_HOME.rst b/doc/sphinx/props/P_INPC_HOME.rst
new file mode 100644
index 0000000..d1f8ac8
--- /dev/null
+++ b/doc/sphinx/props/P_INPC_HOME.rst
@@ -0,0 +1,21 @@
+P_INPC_HOME
+===========
+
+NAME
+----
+::
+
+    P_INPC_HOME                   "inpc_home"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/walking.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_INPC_LAST_ENVIRONMENT.rst b/doc/sphinx/props/P_INPC_LAST_ENVIRONMENT.rst
new file mode 100644
index 0000000..b78d032
--- /dev/null
+++ b/doc/sphinx/props/P_INPC_LAST_ENVIRONMENT.rst
@@ -0,0 +1,21 @@
+P_INPC_LAST_ENVIRONMENT
+=======================
+
+NAME
+----
+::
+
+    P_INPC_LAST_ENVIRONMENT       "inpc_last_environment"       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/walking.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_INPC_LAST_PLAYER_CONTACT.rst b/doc/sphinx/props/P_INPC_LAST_PLAYER_CONTACT.rst
new file mode 100644
index 0000000..5a48fe0
--- /dev/null
+++ b/doc/sphinx/props/P_INPC_LAST_PLAYER_CONTACT.rst
@@ -0,0 +1,21 @@
+P_INPC_LAST_PLAYER_CONTACT
+==========================
+
+NAME
+----
+::
+
+    P_INPC_LAST_PLAYER_CONTACT    "inpc_last_player_contact"    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/walking.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_INPC_WALK_AREA.rst b/doc/sphinx/props/P_INPC_WALK_AREA.rst
new file mode 100644
index 0000000..ebdc9f0
--- /dev/null
+++ b/doc/sphinx/props/P_INPC_WALK_AREA.rst
@@ -0,0 +1,21 @@
+P_INPC_WALK_AREA
+================
+
+NAME
+----
+::
+
+    P_INPC_WALK_AREA              "inpc_walk_area"              
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/walking.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_INPC_WALK_DELAYS.rst b/doc/sphinx/props/P_INPC_WALK_DELAYS.rst
new file mode 100644
index 0000000..b6a9e24
--- /dev/null
+++ b/doc/sphinx/props/P_INPC_WALK_DELAYS.rst
@@ -0,0 +1,21 @@
+P_INPC_WALK_DELAYS
+==================
+
+NAME
+----
+::
+
+    P_INPC_WALK_DELAYS            "inpc_walk_delay"             
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/walking.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_INPC_WALK_FLAGS.rst b/doc/sphinx/props/P_INPC_WALK_FLAGS.rst
new file mode 100644
index 0000000..294fbbf
--- /dev/null
+++ b/doc/sphinx/props/P_INPC_WALK_FLAGS.rst
@@ -0,0 +1,21 @@
+P_INPC_WALK_FLAGS
+=================
+
+NAME
+----
+::
+
+    P_INPC_WALK_FLAGS             "inpc_walk_flags"             
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/walking.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_INPC_WALK_MODE.rst b/doc/sphinx/props/P_INPC_WALK_MODE.rst
new file mode 100644
index 0000000..ce5f167
--- /dev/null
+++ b/doc/sphinx/props/P_INPC_WALK_MODE.rst
@@ -0,0 +1,21 @@
+P_INPC_WALK_MODE
+================
+
+NAME
+----
+::
+
+    P_INPC_WALK_MODE              "inpc_walk_mode"              
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/walking.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_INPC_WALK_ROUTE.rst b/doc/sphinx/props/P_INPC_WALK_ROUTE.rst
new file mode 100644
index 0000000..eab8ffc
--- /dev/null
+++ b/doc/sphinx/props/P_INPC_WALK_ROUTE.rst
@@ -0,0 +1,21 @@
+P_INPC_WALK_ROUTE
+=================
+
+NAME
+----
+::
+
+    P_INPC_WALK_ROUTE             "inpc_walk_route"             
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/walking.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_INTERMUD.rst b/doc/sphinx/props/P_INTERMUD.rst
new file mode 100644
index 0000000..e893d7c
--- /dev/null
+++ b/doc/sphinx/props/P_INTERMUD.rst
@@ -0,0 +1,25 @@
+P_INTERMUD
+==========
+
+NAME
+----
+::
+
+    P_INTERMUD                    "intermud"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/comm.h
+
+BESCHREIBUNG
+------------
+::
+
+   Die Bedeutung dieser Property ist in den praehistorischen Untiefen
+   der Mudlib verlorengegangen.
+   Wird nicht mehr benutzt.
+   Nicht benutzen.
+   Ignorieren.
+
diff --git a/doc/sphinx/props/P_INTERNAL_EXTRA_LOOK.rst b/doc/sphinx/props/P_INTERNAL_EXTRA_LOOK.rst
new file mode 100644
index 0000000..8d07c63
--- /dev/null
+++ b/doc/sphinx/props/P_INTERNAL_EXTRA_LOOK.rst
@@ -0,0 +1,58 @@
+P_INTERNAL_EXTRA_LOOK
+=====================
+
+NAME
+----
+::
+
+	P_INTERNAL_EXTRA_LOOK			"internal_extralook"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/description.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property enthaelt ein Mapping, in dem alle einzelnen
+  Extra-Look-Eintraege des Livings enthalten sind. Dabei weden die Daten von
+  AddExtraLook() und RemoveExtraLook() verwaltet. Fragt man diese Prop mit
+  QueryProp() ab, erhaelt man die Ausgabe der gueltigen Extralooks des
+  Livings. Bei Abfrage per Query() erhaelt man ein Mapping mit allen
+  Eintraegen und deren Daten. Jeder Wert im Mapping ist erneut ein Mapping, 
+  welches folgende Keys enthalten kann:
+  - "xllook": String, der im Extralook des Living angezeigt wird.
+  - "xlduration": Zeitstempel (int), der angibt, wie lang der Eintrag gueltig
+                  ist. 0 == "Unendlich", negative Zahlen besagen, dass der
+                  Eintrag nur bis Reboot/Ende gueltig sein und abs(xlduration)
+                  ist der Zeitpunkt des Eintrages dieses Extralooks.
+  - "xlende": String, der nach Ablaufen an das Living ausgegeben wird.
+  - "xlfun": Funktion, die gerufen wird und den String zurueckliefern muss, 
+             der ausgeben werden soll.
+  - "xlendefun": Funktion, die gerufen wird, wenn der Eintrag abgelaufen ist
+                 und den String zurueckliefern muss, der dann ans Living
+                 ausgeben wird.
+  - "xlobjectname": Objekt, in dem die o.a. Funktionen gerufen werden.
+
+BEMERKUNG
+---------
+::
+
+  DIESE PROPERTY BITTE NIEMALS PER HAND MIT Set()/SetProp() AENDERN!
+  Die Daten in dieser Prop werden vom Living selber verwaltet. Extralooks
+  koennen mittel AddExtraLook() eingetragen und mit RemoveExtraLook() entfernt
+  werden.
+
+SIEHE AUCH
+----------
+::
+
+  long(), /std/living/description.c, /std/player/base.c
+  AddExtraLook(), RemoveExtraLook()
+
+
+13.05.2007, Zesstra
+
diff --git a/doc/sphinx/props/P_INT_LIGHT.rst b/doc/sphinx/props/P_INT_LIGHT.rst
new file mode 100644
index 0000000..71fb6b7
--- /dev/null
+++ b/doc/sphinx/props/P_INT_LIGHT.rst
@@ -0,0 +1,36 @@
+P_INT_LIGHT
+===========
+
+NAME
+----
+::
+
+    P_INT_LIGHT                       "int_light"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Gibt den Lichtlevel an, der _in_ einem Objekt ist. Ein Abfragen dieser
+    Property kann z.B. in Raeumen sinnvoll sein, wenn es z.B. um das
+    aufwachen einer Eule oder einer Fledermaus geht. Zum Abfragen ob ein
+    Spieler etwas sehen kann, bitte auf jeden Fall P_PLAYER_LIGHT benutzen!
+
+    Bitte _nur_ ueber QueryProp auf diese Property zugreifen,
+    da das Lichtlevel ggf. neu berechnet werden muss!
+
+    Ein direktes setzen dieser Property ist NICHT moeglich, hierzu bitte
+    P_LIGHT benutzen!
+
+SIEHE AUCH
+----------
+::
+
+    P_LIGHT, P_TOTAL_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+
diff --git a/doc/sphinx/props/P_INT_LONG.rst b/doc/sphinx/props/P_INT_LONG.rst
new file mode 100644
index 0000000..52a627f
--- /dev/null
+++ b/doc/sphinx/props/P_INT_LONG.rst
@@ -0,0 +1,53 @@
+P_INT_LONG
+==========
+
+NAME
+----
+::
+
+     P_INT_LONG                    "int_long"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/room/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Enthaelt Beschreibung, die man bekommt, wenn man sich in dem
+     Container (jeder Raum ist einer) umschaut als String.
+
+     Der Text sollte bereits umgebrochen sein.
+
+     Diese Property bestimmt die Ansicht des Containers von innen.
+     Fuer die Aussen(lang)ansicht muss P_LONG benutzt werden.
+
+BEMERKUNGEN
+-----------
+::
+
+     - Beschreibungen fuer etwaige Tueren im Raum werden in int_long()
+       hinzugefuegt. (Frueher wurde dies in einer Querymethode auf diese Prop
+       gemacht.)
+
+BEISPIELE
+---------
+::
+
+     SetProp(P_INT_LONG, break_string(
+      "Du stehst in einem total spannenden Testraum. Seine absolute "
+      "Nichtigkeit erfuellt dich mit ehrfuerchtigem Grauen.",78));
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches:	P_INT_SHORT
+     Sonstiges:		int_long(), P_LONG
+			process_string(), break_string()
+
+04.06.2009, Zesstra
+
diff --git a/doc/sphinx/props/P_INT_SHORT.rst b/doc/sphinx/props/P_INT_SHORT.rst
new file mode 100644
index 0000000..8a0d866
--- /dev/null
+++ b/doc/sphinx/props/P_INT_SHORT.rst
@@ -0,0 +1,57 @@
+P_INT_SHORT
+===========
+
+NAME
+----
+::
+
+     P_INT_SHORT			"int_short"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt die Innen-Kurzbeschreibung des Containers
+     als String oder Closure (mit String-Rueckgabewert).
+
+     Container sind hierbei z.B. Raeume.
+     ACHTUNG: Die Kurzbeschreibung sollte dabei weder mit einem
+	      Satzzeichen noch mit einem "\n" abgeschlossen sein
+	      (dies wird von den zustaendigen Funktionen erledigt).
+
+     Man sollte die Property nicht auf 0 setzen.
+
+     Diese Property bestimmt die Ansicht des Containers von innen.
+     Fuer die Aussen(kurz)ansicht muss P_SHORT benutzt werden.
+
+BEMERKUNGEN
+-----------
+::
+
+     - int_short() (bei Bewegung) filtert P_INT_SHORT durch process_string()
+       -> daher sind Closures moeglich
+
+BEISPIELE
+---------
+::
+
+     // ein Gang sieht natuerlich so aus
+     SetProp(P_INT_SHORT, "Ein Gang");
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches:	P_INT_LONG
+     Sonstiges:		int_short(), P_SHORT
+			process_string(), break_string()
+
+
+Last modified: Thu May 31 15:34:05 2001 by Patryn
+
diff --git a/doc/sphinx/props/P_INVIS.rst b/doc/sphinx/props/P_INVIS.rst
new file mode 100644
index 0000000..1bd50b2
--- /dev/null
+++ b/doc/sphinx/props/P_INVIS.rst
@@ -0,0 +1,66 @@
+P_INVIS
+=======
+
+NAME
+----
+::
+
+     P_INVIS                       "invis"                       
+
+DEFINIERT IN
+------------
+::
+
+     /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Die Property P_INVIS dient dazu, Objekte als unsichtbar zu kennzeichnen.
+     Hierbei versucht P_INVIS die moeglichen Interaktionen mit Spielern zu
+     minimieren (im Gegensatz zu einer fehlenden P_SHORT, welche das Objekt
+     nur einfach nicht-sichtbar macht).
+
+     
+
+     Man sollte drei Arten von unsichtbaren Objekten unterscheiden:
+
+     - Gegenstaende
+       Setzt man P_INVIS auf eine Zahl ungleich 0, wird der Gegenstand
+       unsichtbar und der Name zu "etwas". Zusaetzlich koennen Spieler ihn
+       nicht mehr ansprechen, d.h. nehmen, wegwerfen, weitergeben etc.
+       (Bei magier-eigenen Kommandos ist dies evtl. nicht umgesetzt...)
+       Setzt man P_SHORT auf 0, wird der Gegenstand nur nicht mehr in
+       der Inventarliste von Behaeltern/Raeumen angezeigt, er behaelt aber
+       seinen Namen und ist durch Spieler ansprechbar, wenn sie eine ID
+       kennen.
+
+     - NPCs
+       Bei gesetztem P_INVIS wird der NPC unsichtbar und sein Name wird zu
+       "Jemand". Zusaetzlich koennen Spieler ihn nicht mehr ansprechen, z.B.
+       toeten oder knuddeln.
+       (Bei magier-eigenen Kommandos ist dies evtl. nicht umgesetzt...)
+       Setzt man P_SHORT auf 0, wird der NPC nur nicht mehr in der
+       Inventarliste von Behaeltern/Raeumen angezeigt, er behaelt aber seinen
+       Namen und ist durch Spieler ansprechbar, wenn sie eine ID kennen. Auch
+       angreifen und kaempfen ist moeglich.
+
+     
+
+     - Magier
+       Magier macht man unsichtbar, indem man ihnen die Property P_INVIS auf
+       einen Wert <> 0 setzt.
+       *  Spieler duerfen nicht unsichtbar gemacht werden!               *
+       *  Wird ein Magier unsichtbar gemacht, muss man ihm die Property	 *
+       *  P_INVIS auf den Wert setzen, den die Property P_AGE zu diesem	 *
+       *  Zeitpunkt hat (keine F_QUERY_METHOD !).				                 *
+       Setzt man die Property auf den Wert 1, so erhaelt ein Spieler,
+       wenn er den entsp. Magier fingert, die Ausgabe: Alter: 00:00:02,
+       was genauso verraeterisch ist, wie ein Alter, dass bei einem
+       scheinbar nicht eingeloggten Magier immer weiter hochgezaehlt
+       wird.
+
+
+27.05.2015, Zesstra
+
diff --git a/doc/sphinx/props/P_IP_NAME.rst b/doc/sphinx/props/P_IP_NAME.rst
new file mode 100644
index 0000000..6f655e4
--- /dev/null
+++ b/doc/sphinx/props/P_IP_NAME.rst
@@ -0,0 +1,21 @@
+P_IP_NAME
+=========
+
+NAME
+----
+::
+
+    P_IP_NAME                     "ip_name"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player.h
+
+BESCHREIBUNG
+------------
+::
+
+     Rechnername des Interactives
+
diff --git a/doc/sphinx/props/P_IS_ARTILLERY.rst b/doc/sphinx/props/P_IS_ARTILLERY.rst
new file mode 100644
index 0000000..d66be6e
--- /dev/null
+++ b/doc/sphinx/props/P_IS_ARTILLERY.rst
@@ -0,0 +1,31 @@
+P_IS_ARTILLERY
+==============
+
+NAME
+----
+::
+
+	P_IS_ARTILLERY			"artillery"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+	Is ein Objekt Artillerie, so muss diese Property
+	gesetzt sein. (Derzeit einfach auf 1 setzen.)
+
+SIEHE AUCH
+----------
+::
+
+	artillerie
+
+
+Last modified: Sam,  5. Jul 2003, 22:07:12 by Zook.
+
diff --git a/doc/sphinx/props/P_ITEMS.rst b/doc/sphinx/props/P_ITEMS.rst
new file mode 100644
index 0000000..3e4bbd8
--- /dev/null
+++ b/doc/sphinx/props/P_ITEMS.rst
@@ -0,0 +1,22 @@
+P_ITEMS
+=======
+
+NAME
+----
+::
+
+    P_ITEMS                       "items"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Definition von Gegenstaenden, die in dem Raum liegen sollen.
+     Erklaerung in einem Extrafile.
+
diff --git a/doc/sphinx/props/P_I_HATE_ALCOHOL.rst b/doc/sphinx/props/P_I_HATE_ALCOHOL.rst
new file mode 100644
index 0000000..5e44b86
--- /dev/null
+++ b/doc/sphinx/props/P_I_HATE_ALCOHOL.rst
@@ -0,0 +1,42 @@
+P_I_HATE_ALCOHOL
+================
+
+NAME
+----
+::
+
+    P_I_HATE_ALCOHOL                        "i_hate_alcohol"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/inpc/boozing.h
+
+BESCHREIBUNG
+------------
+::
+
+    Numerischer Wert, der die Obergrenze an P_ALCOHOL in einem Monster
+    definiert, welcher beim eigenstaendigen Tanken beruecksichtigt wird.
+
+BEMERKUNG
+---------
+::
+
+    Geht der Npc (und nur fuer solche ist diese Prop gedacht) eigen-
+    staendig tanken, werden vor dem Bestellen die Getraenke und Speisen
+    auf ihren Alkoholgehalt geprueft und mit dem aktuellen Wert von
+    P_ALCOHOL im Verhaeltnis zu P_I_HATE_ALCOHOL verglichen. Laege der
+    Wert fuer P_ALCOHOL dann ueber dem von P_I_HATE_ALCOHOL, wird dieses
+    Getraenk (diese Speise) nicht bestellt.
+
+SIEHE AUCH
+----------
+::
+
+     P_ALCOHOL, P_MAX_ALCOHOL
+
+
+Last modified: Sam Apr 14 12:35:00 2001 by Tilly
+
diff --git a/doc/sphinx/props/P_KEEPER.rst b/doc/sphinx/props/P_KEEPER.rst
new file mode 100644
index 0000000..3b60a47
--- /dev/null
+++ b/doc/sphinx/props/P_KEEPER.rst
@@ -0,0 +1,27 @@
+P_KEEPER
+========
+
+NAME
+----
+::
+
+    P_KEEPER                       "shop_keeper"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    In diese Property kann man in Kneipen und Laeden einen String schreiben.
+    Dann wird vor den Transaktionen geprueft, ob ein NPC anwesend ist,
+    der diesen String als ID hat.
+    Ist der NPC nicht vorhanden, kann nichts ge- oder verkauft werden.
+
+
+Last modified: Mon Aug 23 14:29:00 1999 by Paracelsus
+
diff --git a/doc/sphinx/props/P_KEEP_ON_SELL.rst b/doc/sphinx/props/P_KEEP_ON_SELL.rst
new file mode 100644
index 0000000..d7897e8
--- /dev/null
+++ b/doc/sphinx/props/P_KEEP_ON_SELL.rst
@@ -0,0 +1,21 @@
+P_KEEP_ON_SELL
+==============
+
+NAME
+----
+::
+
+    P_KEEP_ON_SELL                "keep_on_sell"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Bei "verkaufe alles" wird das Objekt behalten.
+
diff --git a/doc/sphinx/props/P_KILLER.rst b/doc/sphinx/props/P_KILLER.rst
new file mode 100644
index 0000000..7bb462d
--- /dev/null
+++ b/doc/sphinx/props/P_KILLER.rst
@@ -0,0 +1,46 @@
+P_KILLER
+========
+
+NAME
+----
+::
+
+    P_KILLER                      "killer"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+   Diese Property enthaelt das Objekt, welches das Lebewesen als letztes
+   getoetet hat. Sie wird von do_damage(), heart_beat() (Vergiftungen) und
+   die() (bei direkten Aufrufen) automatisch gesetzt. Ein manuelles
+   Setzen vor Aufruf von do_damage() oder die() hat keinerlei Wirkung!
+   Sinnvollerweise liest man diese Property im NotifyPlayerDeath() aus,
+   spaeteres Auslesen ist unzuverlaessig, da der Killer inzwischen zerstoert
+   sein koennte.
+   Diese Property sollte _nicht_ per Hand gesetzt werden, schon gar nicht
+   waehrend eines NotifyPlayerDeath(), weil es evtl. noch andere Objekte gibt,
+   die sich dafuer interessieren!
+
+BEMERKUNGEN
+-----------
+::
+
+   Normalerweise steht hier ein Objekt drin (s.o.). Es gibt allerdings eine
+   Ausnahme: Stirbt ein Lebewesen an Gift, enthaelt P_KILLER den String
+   "gift".
+
+SIEHE AUCH
+----------
+::
+
+   do_damage()
+
+29.08.2008, Zesstra
+
diff --git a/doc/sphinx/props/P_KILLS.rst b/doc/sphinx/props/P_KILLS.rst
new file mode 100644
index 0000000..6a4a73a
--- /dev/null
+++ b/doc/sphinx/props/P_KILLS.rst
@@ -0,0 +1,23 @@
+P_KILLS
+=======
+
+NAME
+----
+::
+
+    P_KILLS                       "playerkills"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der Spieler, die dieser Spieler schon getoetet hat.
+     Unerlaubte Manipulation ist ein SCHWERES VERGEHEN gegen
+     die Mudreglen.
+
diff --git a/doc/sphinx/props/P_KILL_MSG.rst b/doc/sphinx/props/P_KILL_MSG.rst
new file mode 100644
index 0000000..5b5d0ba
--- /dev/null
+++ b/doc/sphinx/props/P_KILL_MSG.rst
@@ -0,0 +1,97 @@
+P_KILL_MSG
+==========
+
+NAME
+----
+::
+
+	P_KILL_MSG			"kill_msg"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn ein Spieler getoetet wird, so erscheint dazu eine kurze Information
+     auf dem Todeskanal. Um dem toetenden Objekt zusaetzlich die Moeglichkeit
+     zu geben, noch etwas mehr auf diesem Kanal auszugeben, kann man in
+     dieser Property einen String uebergeben.
+     Noetige Zeilenumbrueche werden hierbei automatisch generiert.
+
+     Es ist auch moeglich anzugeben, ob Emotes verwendet werden und ob das
+     toetende Objekt ein Plural-Objekt ist. Hierzu uebergibt man ein Array
+     der Gestalt:
+
+	({Killmessage,Emotes}) bzw. ({Killmessage,Emotes,PLURAL})
+
+     Der Eintrag <Killmessage> stellt hierbei die Meldung selbst dar, PLURAL
+     gibt an, dass es sich um ein Plural-Objekt handelt und <Emotes> kann
+     folgende Werte annehmen:
+
+	MSG_SAY    - Meldung wird normal ausgegeben.
+	MSG_EMOTE  - Meldung erscheint als Emote.
+	MSG_GEMOTE - Meldung erscheint als Genitiv-Emote.
+	MSG_EMPTY  - Meldung erscheint ohne zuvorige Angabe des
+	               toetenden Objektes.
+
+     Moechte man die Meldung noch etwas "persoenlicher" ;-) gestalten, so
+     kann man den Platzhalter %s verwenden. An dessen Stelle wird dann der
+     Name des Verblichenen eingesetzt.
+
+BEISPIEL
+--------
+::
+
+     Ein nettes Beispiel ist das folgende: Wenn ein Spieler sich als
+     Drachentoeter bewehrt hat, so kann er traditionell in seinem Blut baden.
+     Hin und wieder ist jedoch auch der Drache erfolgreich, dem man eine
+     lustige Zusatzmeldung fuer den Todeskanal uebergeben kann:
+
+     void create() {
+       ::create();
+       ...
+       SetProp(P_KILL_MSG,"Jetzt bade ich mal in DEINEM Blut, %s!");
+       ...
+     }
+
+
+     Falls der 'Killer' ein Plural-Objekt oder -NPC war, koennte eine Meldung
+     auch folgendermassen aussehen:
+
+     SetProp(P_KILL_MSG,({"haun sich jetzt die Hucke voll.",
+			  MSG_EMOTE,
+			  PLURAL}));
+
+     wobei P_KILL_NAME hier natuerlich auf "Eine Menge Orks" oder
+     dergleichen gesetzt sein sollte. Auf dem Kanal waere dann dies zu
+     lesen:
+
+	[Tod:Lars] Eine Menge Orks haben gerade Orktoeter umgebracht.
+	[Tod:Eine Menge Orks haun sich jetzt die Hucke voll.]
+
+
+     Weiteres Beispiel.
+     Man habe einen NPC, dessen Killname als Plural aufzufassen ist, der aber
+     keinen zusaetlichen Text auf -Tod bringen soll.
+
+     SetProp(P_NAME, "Eine Horde Gummibaeren");
+     SetProp(P_KILL_NAME, "Viele kleine Gummibaeren");
+     SetProp(P_KILL_MSG, ({0, 0, 1}));
+
+SIEHE AUCH
+----------
+::
+
+     Tod:		die(L)
+     Todesmeldungen:	P_KILL_NAME, P_DIE_MSG, P_MURDER_MSG
+			P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+     Sonstiges:		P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
+
+Last modified: Wed Aug 21 14:36:04 2002 by Bambi
+
diff --git a/doc/sphinx/props/P_KILL_NAME.rst b/doc/sphinx/props/P_KILL_NAME.rst
new file mode 100644
index 0000000..b730b67
--- /dev/null
+++ b/doc/sphinx/props/P_KILL_NAME.rst
@@ -0,0 +1,60 @@
+P_KILL_NAME
+===========
+
+NAME
+----
+::
+
+     P_KILL_NAME			"kill_name"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn ein Spieler getoetet wird, so erscheint eine kurze Information auf
+     dem Todeskanal. Im Normalfall werden die Informationen aus P_NAME,
+     P_ARTICLE und P_GENDER des toetenden Objektes verwendet, um einen Namen
+     fuer eben dieses Objekt zu kreieren. Manchmal moechte man jedoch einen
+     davon unabhaengigen Namen dort stehen haben. Dann kommt die Property
+     P_KILL_NAME zum Einsatz.
+     Man sollte beachten, dass der Name des Toetenden nicht zu lang sein
+     sollte, denn obwohl bei einer Todesmeldung automatisch umgebrochen wird,
+     kann es doch ziemlich stoeren. Wenn das toetende Objekt ein Plural-
+     Objekt ist, so kann man dies zusaetzlich in der Property P_KILL_MSG
+     angeben.
+
+BEISPIEL
+--------
+::
+
+     Eine Wolke, die wahlweise zwischen verschiedenen Zustaenden mutiert,
+     koennte mal eine Eiswolke, mal eine Giftwolke oder auch mal eine
+     Feuerwolke sein. Fuer den Todeskanal soll jedoch immer erscheinen:
+     '[Tod:] Eine mutierende Wolke hat gerade <Spieler> umgebracht.'
+
+     void create()
+     {
+       ::create();
+       ...
+       SetProp(P_KILL_NAME,"Eine mutierende Wolke");
+       ...
+     }
+
+SIEHE AUCH
+----------
+::
+
+     Tod:		die(L)
+     Todesmeldungen:	P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
+			P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+     Sonstiges:		P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_KNOWN_POTIONROOMS.rst b/doc/sphinx/props/P_KNOWN_POTIONROOMS.rst
new file mode 100644
index 0000000..b38f796
--- /dev/null
+++ b/doc/sphinx/props/P_KNOWN_POTIONROOMS.rst
@@ -0,0 +1,35 @@
+P_KNOWN_POTIONROOMS
+===================
+
+NAME
+----
+::
+
+    P_KNOWN_POTIONROOMS                 "known_potionrooms"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/potion.h
+
+BESCHREIBUNG
+------------
+::
+
+    Array mit den Nummern der Raeume, in denen der Spieler Zauber-
+    traenke finden kann. Die Zuordnung der Raeume und Nummern
+    geschieht im Potionmaster.
+
+    Nur lesbare _query - Property.
+
+SIEHE AUCH
+----------
+::
+
+    Sonstiges: zaubertraenke, /secure/potionmaster.c, /room/orakel.c
+    Verwandt:  FindPotion(), AddKnownPotion(), RemoveKnownPotion(), InList()
+    Props:     P_POTIONROOMS
+
+6.Feb 2016 Gloinson
+
diff --git a/doc/sphinx/props/P_LASTDIR.rst b/doc/sphinx/props/P_LASTDIR.rst
new file mode 100644
index 0000000..a692dbb
--- /dev/null
+++ b/doc/sphinx/props/P_LASTDIR.rst
@@ -0,0 +1,28 @@
+P_LASTDIR
+=========
+
+NAME
+----
+::
+
+    P_LASTDIR                  "p_lib_lastdir"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/shells.h
+
+BESCHREIBUNG
+------------
+::
+
+    Das jeweils letzte Verzeichnis, in dem der Magier war.
+    (Nur fuer Magier von Belang)
+
+Siehe auch:
+    P_CURRENTDIR
+
+Letzte Aenderung:
+    03.05.2016, Zesstra
+
diff --git a/doc/sphinx/props/P_LAST_COMBAT_TIME.rst b/doc/sphinx/props/P_LAST_COMBAT_TIME.rst
new file mode 100644
index 0000000..0dbc5ed
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_COMBAT_TIME.rst
@@ -0,0 +1,39 @@
+P_LAST_COMBAT_TIME
+==================
+
+NAME
+----
+::
+
+	P_LAST_COMBAT_TIME		"last_combat_time"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+	In dieser Property wird genau die Zeit festgehalten, zu der ein
+	Lebewesen zuletzt einen Angriff abgewehrt oder einen Angriff
+	durchgefuehrt hat. Die Property enthaelt diese Information hierbei
+	immer in Form eines Integerwertes.
+	Dieser Wert koennte z.B. wichtig sein, wenn man wissen moechte, wann
+	ein Lebewesen zuletzt gekaempft hat. Es ist beispielsweise nicht
+	moeglich, waehrend oder auch unmittelbar nach einem Kampf den Befehl
+	'Ende' zu nutzen, da dies zur Flucht missbraucht werden kann. Dafuer
+	wird der Wert der Property zuvor ausgewertet.
+
+SIEHE AUCH
+----------
+::
+
+	P_LAST_DAMTIME, P_LAST_DAMAGE, P_LAST_DAMTYPES, Attack(), Defend(),
+	/std/living/combat.c, /std/living/life.c
+
+
+Last modified: Wed May 26 16:43:00 1999 by Patryn
+
diff --git a/doc/sphinx/props/P_LAST_COMMAND_ENV.rst b/doc/sphinx/props/P_LAST_COMMAND_ENV.rst
new file mode 100644
index 0000000..e7f2636
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_COMMAND_ENV.rst
@@ -0,0 +1,30 @@
+P_LAST_COMMAND_ENV
+==================
+
+NAME
+----
+::
+
+    P_LAST_COMMAND_ENV            "last_command_env"            
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player.h
+
+BESCHREIBUNG
+------------
+::
+
+     Der Raum, in dem das letzte Kommando eingegeben wurde.
+
+BEMERKUNGEN
+-----------
+::
+
+     Keine echte Property, _query_last_command_env() ist
+     in /std/players/command.c implementiert.
+
+14.Feb.2004 Gloinson
+
diff --git a/doc/sphinx/props/P_LAST_CONTENT_CHANGE.rst b/doc/sphinx/props/P_LAST_CONTENT_CHANGE.rst
new file mode 100644
index 0000000..3fcf1de
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_CONTENT_CHANGE.rst
@@ -0,0 +1,32 @@
+P_LAST_CONTENT_CHANGE
+=====================
+
+NAME
+----
+::
+
+    P_LAST_CONTENT_CHANGE         "last_content_change"         
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wann wurde zum letzten Mal was ins Obj gestopft oder rausgenommen?
+     Wichtig fuer den Weight-Cache
+
+ANMERKUNG
+---------
+::
+
+     Die Property kann nur ueber QueryProp() und SetProp() ausgelesen bzw.
+     gesetzt werden. Query() und Set() funktionieren *nicht*.
+
+     Ausserdem fuehrt ein Setzen per SetProp() zu einer Erhoehung des 
+     Wertes um eins - unabhaengig vom gesetzten Wert.
+
diff --git a/doc/sphinx/props/P_LAST_DAMAGE.rst b/doc/sphinx/props/P_LAST_DAMAGE.rst
new file mode 100644
index 0000000..332b729
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_DAMAGE.rst
@@ -0,0 +1,38 @@
+P_LAST_DAMAGE
+=============
+
+NAME
+----
+::
+
+	P_LAST_DAMAGE			"last_damage"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+	In dieser Property wird genau die Schadensstaerke festgehalten,
+	welche ein Lebewesen zuletzt abbekommen hat. Die Property enthaelt
+	diese Information hierbei immer in Form eines Integerwertes.
+	Auch die Staerke des Giftschadens durch die Wirkung einer Vergiftung
+	wird hier festgehalten.
+	Dieser Wert koennte z.B. wichtig sein, wenn man wissen moechte,
+	welche Schadensstaerke nach Einwirkung von Defendern, Ruestung,
+	Hooks und Skills uebriggeblieben ist.
+
+SIEHE AUCH
+----------
+::
+
+	P_LAST_DAMTIME, P_LAST_DAMTYPES, Defend(),
+	/std/living/combat.c, /std/living/life.c
+
+
+Last modified: Tue Jan 26 12:34:29 1999 by Patryn
+
diff --git a/doc/sphinx/props/P_LAST_DAMTIME.rst b/doc/sphinx/props/P_LAST_DAMTIME.rst
new file mode 100644
index 0000000..d4c499f
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_DAMTIME.rst
@@ -0,0 +1,38 @@
+P_LAST_DAMTIME
+==============
+
+NAME
+----
+::
+
+	P_LAST_DAMTIME			"last_damtime"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+	In dieser Property wird genau die Zeit festgehalten, zu der ein
+	Lebewesen zuletzt einen Schaden abbekommen hat. Die Property
+	enthaelt diese Information hierbei immer in Form eines
+	Integerwertes.
+	Auch der Zeitpunkt der Einwirkung von Giftschaden durch die Wirkung
+	einer Vergiftung wird hier festgehalten.
+	Dieser Wert koennte z.B. wichtig sein, wenn man wissen moechte, wann
+	ein Lebewesen zuletzt verletzt wurde.
+
+SIEHE AUCH
+----------
+::
+
+	P_LAST_COMBAT_TIME, P_LAST_DAMAGE, P_LAST_DAMTYPES, Defend(),
+	/std/living/combat.c, /std/living/life.c
+
+
+Last modified: Wed May 26 16:44:38 1999 by Patryn
+
diff --git a/doc/sphinx/props/P_LAST_DAMTYPES.rst b/doc/sphinx/props/P_LAST_DAMTYPES.rst
new file mode 100644
index 0000000..e0428a0
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_DAMTYPES.rst
@@ -0,0 +1,37 @@
+P_LAST_DAMTYPES
+===============
+
+NAME
+----
+::
+
+	P_LAST_DAMTYPES			"last_damtypes"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+	In dieser Property werden genau die Schadensarten festgehalten,
+	welche ein Lebewesen zuletzt abbekommen hat. Die Property enthaelt
+	diese Information hierbei immer in Form eines Arrays.
+	Auch der Giftschaden durch die Wirkung einer Vergiftung wird hier
+	festgehalten.
+	Dieser Wert koennte z.B. wichtig sein, wenn man nach dem Tod eines
+	Lebewesens feststellen moechte, durch was es umgekommen ist.
+
+SIEHE AUCH
+----------
+::
+
+	P_LAST_DAMAGE, P_LAST_DAMTIME, Defend(),
+	/std/living/combat.c, /std/living/life.c
+
+
+Last modified: Tue Jan 26 12:34:29 1999 by Patryn
+
diff --git a/doc/sphinx/props/P_LAST_DEATH_PROPS.rst b/doc/sphinx/props/P_LAST_DEATH_PROPS.rst
new file mode 100644
index 0000000..8d13c41
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_DEATH_PROPS.rst
@@ -0,0 +1,32 @@
+P_LAST_DEATH_PROPS
+==================
+
+NAME
+----
+::
+
+    P_LAST_DEATH_PROPS                "last_death_props"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt nach dem Tod eines Spielers ein Mapping mit 
+     den Werte aller Properties, die im die() zurueckgesetzt werden.
+
+     Auf diese Weise kann ein Objekt auch im NotifyPlayerDeath() noch 
+     auf die Werte zurueckgreifen, obwohl sie bereits geloescht sind.
+
+     Folgende Properties werden so gesichert:
+
+   
+
+     P_POISON, P_FROG, P_ALCOHOL, P_DRINK, P_FOOD , P_BLIND, P_DEAF, 
+     P_MAX_HANDS, P_PARA, P_NO_REGENERATION , P_HP, P_SP, P_LAST_DEATH_TIME
+
diff --git a/doc/sphinx/props/P_LAST_DEATH_TIME.rst b/doc/sphinx/props/P_LAST_DEATH_TIME.rst
new file mode 100644
index 0000000..40c82b2
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_DEATH_TIME.rst
@@ -0,0 +1,21 @@
+P_LAST_DEATH_TIME
+=================
+
+NAME
+----
+::
+
+    P_LAST_DEATH_TIME                "last_death_time"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Der Zeitpunkt des letzten Todes des Spielers.
+
diff --git a/doc/sphinx/props/P_LAST_LOGIN.rst b/doc/sphinx/props/P_LAST_LOGIN.rst
new file mode 100644
index 0000000..c9b56b2
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_LOGIN.rst
@@ -0,0 +1,35 @@
+P_LAST_LOGIN
+============
+
+NAME
+----
+::
+
+    P_LAST_LOGIN                  "last_login"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Zeitpunkt des letzten Logins
+
+BEMERKUNGEN
+-----------
+::
+
+     Gegen aeussere Aenderung und Set/QueryMethoden geschuetzt.
+
+SIEHE AUCH
+----------
+::
+
+     P_LAST_LOGOUT, save_me
+
+28. Jan 2013 Gloinson
+
diff --git a/doc/sphinx/props/P_LAST_LOGOUT.rst b/doc/sphinx/props/P_LAST_LOGOUT.rst
new file mode 100644
index 0000000..d8a7843
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_LOGOUT.rst
@@ -0,0 +1,39 @@
+P_LAST_LOGOUT
+=============
+
+NAME
+----
+::
+
+    P_LAST_LOGOUT                 "last_logout"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Zeitpunkt des letzten Logouts. Anhand dieser Zeit werden die Feindes-
+     listen und in Abwesenheit eingefuegte Gegenstaende aktualisiert.
+
+     Dieses Datum wird bei Magiern nicht aktualisiert, wenn sie unsichtbar
+     sind/sich unsichtbar ausloggen.
+
+BEMERKUNGEN
+-----------
+::
+
+     Gegen aeussere Aenderung und Set/QueryMethoden geschuetzt.
+
+SIEHE AUCH
+----------
+::
+
+     P_LAST_LOGIN, P_INVIS, save_me, init, StopHuntFor
+
+28. Jan 2013 Gloinson
+
diff --git a/doc/sphinx/props/P_LAST_MOVE.rst b/doc/sphinx/props/P_LAST_MOVE.rst
new file mode 100644
index 0000000..af703cc
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_MOVE.rst
@@ -0,0 +1,37 @@
+P_LAST_MOVE
+===========
+
+NAME
+----
+::
+
+	P_LAST_MOVE			"last_move"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+	In dieser Property wird die Zeit der letzten Bewegung eines
+	Lebewesens festgehalten. Selbsterklaerend ist auch der dazugehoerige
+	Quellcode innerhalb move() in '/std/living/moving.c':
+	  SetProp(P_LAST_MOVE,time());
+	Wichtig ist diese Property insbesondere fuer die Unterbindung von
+	Rein-Angriff-Raus-Taktiken. Dieser Modus ist standardmaessig in jedem
+	NPC aktiviert und kann ueber die Property P_ENABLE_IN_ATTACK_OUT
+	ausgeschalten werden.
+
+SIEHE AUCH
+----------
+::
+
+	move(), time(), P_ENABLE_IN_ATTACK_OUT, /std/living/moving.c
+
+
+Last modified: Sat Jan 30 12:53:00 1999 by Patryn
+
diff --git a/doc/sphinx/props/P_LAST_USE.rst b/doc/sphinx/props/P_LAST_USE.rst
new file mode 100644
index 0000000..98d674f
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_USE.rst
@@ -0,0 +1,34 @@
+P_LAST_USE
+==========
+
+NAME
+----
+::
+
+     P_LAST_USE "last_use"
+
+DEFINIERT IN
+------------
+::
+
+     <properties.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property wird in Ruestungen und Waffen dazu benutzt um
+     festzuhalten, wann die Ruestung/Waffe zuletzt im Kampf benutzt
+     wurde.
+
+SIEHE AUCH
+----------
+::
+
+     Ruestungen:	QueryDefend(L)
+     Waffen:		QueryDamage(L)
+     Sonstiges:		P_EQUIP_TIME, P_UNWIELD_TIME
+
+
+Last modified: Fri Feb 06 10:15:00 1998 by Paracelsus
+
diff --git a/doc/sphinx/props/P_LAST_WEAR_ACTION.rst b/doc/sphinx/props/P_LAST_WEAR_ACTION.rst
new file mode 100644
index 0000000..ae568ba
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_WEAR_ACTION.rst
@@ -0,0 +1,31 @@
+P_LAST_WEAR_ACTION
+==================
+
+PROPERTY
+--------
+::
+
+	P_LAST_WEAR_ACTION    "last_wear_action"
+
+DEFINIERT IN: 
+
+	/sys/armour.h (und damit auch in properties.h)
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Prop gibt an, welche An/Auszieh-Aktion ein Spieler zuletzt
+	durchgefuehrt hat. Sie ist ein zweielementiges Array, wobei der
+	erste Eintrag angibt, ob der Spieler sich an- oder ausgezogen
+	hat (WA_WEAR, WA_UNWEAR, auch in armour.h definiert) und der
+	zweite den Zeitpunkt.
+
+	Die Property wird (unter anderem?) dafuer verwendet festzustellen ob
+	der Spieler in der letzten Runde schon einen Ruestungswechsel
+	vorgenommen hat und einen entgegengesetzten zu unterbinden.
+
+LETZTE AENDERUNG: 
+
+2003-01-29, 17:30 von Humni
+
diff --git a/doc/sphinx/props/P_LAST_XP.rst b/doc/sphinx/props/P_LAST_XP.rst
new file mode 100644
index 0000000..f69b8ab
--- /dev/null
+++ b/doc/sphinx/props/P_LAST_XP.rst
@@ -0,0 +1,43 @@
+P_LAST_XP
+=========
+
+NAME
+----
+::
+
+    P_LAST_XP                        "last_xp"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+    Ein Array vom Typ ({ pfad, xp }).
+
+    Der Eintrag "pfad" gibt das Gebiet an, in dem ein Spieler zuletzt XP
+    bekommen hat. Dabei wird aus "/d/ebene/magier/room/raum1.c" dann
+    "/d/ebene/magier/room".
+
+    Der Wert "xp" zeigt an, wieviele XP der Spieler _in diesem Gebiet_
+    gesammelt hat. Sobald er auch nur einen XP in einem anderen Gebiet
+    bekommt, zeigt P_LAST_XP nur noch diesen neu erhaltenen XP an.
+
+    Der Anwendungszweck waere z.B. eine Heilstelle, die nur dann Wirkung
+    zeigt, wenn der Spieler wirklich in dem betreffenden Gebiet gemetzelt hat
+    und nicht nur zum Tanken hergerannt ist oder eine Unterscheidung, ob
+    jemand metzelt oder nur uebt (ueber die XP).
+
+SIEHE AUCH
+----------
+::
+
+     Funktionen:  AddExp()
+     Verwandt:    P_NO_XP, P_XP
+
+14.Feb 2007 Gloinson
+
diff --git a/doc/sphinx/props/P_LEAVECMDS.rst b/doc/sphinx/props/P_LEAVECMDS.rst
new file mode 100644
index 0000000..7931548
--- /dev/null
+++ b/doc/sphinx/props/P_LEAVECMDS.rst
@@ -0,0 +1,58 @@
+P_LEAVECMDS
+===========
+
+NAME
+----
+::
+
+    P_LEAVECMDS                   "leavecmds"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+    Ein Array mit Befehlen, die zum Verlassen des Transporters fuehren. 
+
+BEISPIEL
+--------
+::
+
+    SetProp(P_LEAVECMDS,({ "verlass","verlasse" }) );
+
+    Gibt der Spieler nun 'verlasse xxx' ein, so sorgt /std/transport.c 
+    dafuer, das der Spieler auch von oder aus dem Transporter bewegt 
+    wird. Vorausgesetzt natuerlich, er ist an einem Haltepunkt angelangt.
+
+BEMERKUNGEN
+-----------
+::
+
+    Um /std/transport.c nicht aufzublaehen, werden weitere Argumente wie
+    etwa 'verlasse das|die|den xxx' _nicht_ unterstuetzt!
+
+    Hier muss der verantwortliche Magier schon eine eigene Loesung finden
+    und in seinen Transporter schreiben.
+
+    Sollen Kommandos zum Betreten UND Verlassen eines Transporters ver-
+    wendet werden koennen, muessen diese in P_TRAVEL_CMDS gesetzt werden.
+
+SIEHE AUCH
+----------
+::
+
+    P_LEAVEFAIL, P_ENTERFAIL, P_ENTERCMDS, P_TRAVEL_CMDS, transporter,
+
+LETZTE AENDERUNG
+----------------
+::
+
+    Don, 24.01.2002, 10:15:07h von Tilly
+
+    
+
diff --git a/doc/sphinx/props/P_LEAVEFAIL.rst b/doc/sphinx/props/P_LEAVEFAIL.rst
new file mode 100644
index 0000000..9af4941
--- /dev/null
+++ b/doc/sphinx/props/P_LEAVEFAIL.rst
@@ -0,0 +1,50 @@
+P_LEAVEFAIL
+===========
+
+NAME
+----
+::
+
+    P_LEAVEFAIL                   "leavefail"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Spieler, wenn er ausserhalb der Anlegezeiten einen 
+     Transporter verlassen will. Ist die Propertie ein Array, so wird 
+     das erste Element als Meldung an den Spieler, das zweite als 
+     Meldung an die Mitspieler im Transporter geschickt. Ist der Eintrag
+     dagegen ein simpler String, so wird die Meldung nur an den Spieler
+     ausgegeben.
+
+BEISPIEL
+--------
+::
+
+     SetProp(P_LEAVEFAIL, "Die Wildgaense fliegen viel zu hoch" );
+
+     SetProp(P_LEAVEFAIL, ({ "Die Wildgaense fliegen viel zu hoch",
+                             "versucht, vom Ruecken der Wildgans zu "
+                            +"klettern und besinnt sich dann doch" }) );
+
+                             
+
+SIEHE AUCH
+----------
+::
+
+     P_LEAVEMSG, P_ENTERMSG, P_ENTERFAIL, transporter
+
+LETZTE AENDERUNG
+----------------
+::
+
+    Don, 24.01.2002, 10:15:07h von Tilly
+
diff --git a/doc/sphinx/props/P_LEAVEMSG.rst b/doc/sphinx/props/P_LEAVEMSG.rst
new file mode 100644
index 0000000..3253e77
--- /dev/null
+++ b/doc/sphinx/props/P_LEAVEMSG.rst
@@ -0,0 +1,38 @@
+P_LEAVEMSG
+==========
+
+NAME
+----
+::
+
+    P_LEAVEMSG                    "leavemsg"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+     Array mit zwei Meldungen. Der erste Eintrag wird an den Transporter
+     ausgegeben, der zweite an den Raum in den der Spieler kommt.
+
+BEISPIEL
+--------
+::
+
+     SetProp(P_LEAVEMSG, ({ "klettert vom Ruecken der Wildgans",
+                            "kommt vom Ruecken einer Wildgans herunter" }) );
+
+SIEHE AUCH: 
+     P_ENTERMSG, P_LEAVEFAIL, P_ENTERFAIL, transporter
+
+LETZTE AENDERUNG
+----------------
+::
+
+    Don, 24.01.2002, 10:15:07h von Tilly
+
diff --git a/doc/sphinx/props/P_LEP.rst b/doc/sphinx/props/P_LEP.rst
new file mode 100644
index 0000000..afca4cb
--- /dev/null
+++ b/doc/sphinx/props/P_LEP.rst
@@ -0,0 +1,22 @@
+P_LEP
+=====
+
+NAME
+----
+::
+
+    P_LEP                         "lep"                         
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player.h
+
+BESCHREIBUNG
+------------
+::
+
+     Levelpunkte eines Spielers
+     NICHT VON HAND SETZEN!!!
+
diff --git a/doc/sphinx/props/P_LEVEL.rst b/doc/sphinx/props/P_LEVEL.rst
new file mode 100644
index 0000000..8cbe8f8
--- /dev/null
+++ b/doc/sphinx/props/P_LEVEL.rst
@@ -0,0 +1,48 @@
+P_LEVEL
+=======
+
+NAME
+----
+::
+
+    P_LEVEL                       "level"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Spieler-Level (!= Magierlevel)
+
+     In Krankheits- (CL_DISEASE) und Giftobjekten (CL_POISON) drueckt 
+     P_LEVEL aus, wie schwer die Krankheit/das Gift ist. Je nachdem, wie 
+     hoch oder niedrig der Level gesetzt wird, muss z.B. ein Kleriker mehr 
+     oder weniger oft kurieren, um  eine (ggf. stufenweise) Heilung zu 
+     bewirken.
+
+     In Fluchobjekten (CL_CURSE) gibt P_LEVEL ebenfalls die Schwere des
+     Fluches an, jedoch ist hier zu beachten, dass z.B. Kleriker aktuell
+     keine stufenweise Schwaechung bewirken koennen, sondern entweder den
+     Fluch entfernen koennen oder komplett scheitern. 
+     Der Fluchlevel ist hier grob als Chance des Scheiterns in einem 
+     Wertebereich von 1-100 zu sehen, was bedeutet, dass ein Fluchlevel 
+     von 100 als permanenter, nicht entfernbarer Fluch anzusehen ist.
+
+     Genaueres ist in der Klerusgilde nachzulesen oder beim GM Klerus zu
+     erfragen.
+
+SIEHE AUCH
+----------
+::
+
+     Properties:  P_GUILD_LEVEL
+     Allgemeines: /doc/wiz/gift, /doc/help/gift
+     Funktionen:  AddClass(L), is_class_member(L)
+
+Letzte Aenderung: 2015-Feb-02, Arathorn.
+
diff --git a/doc/sphinx/props/P_LIFETIME.rst b/doc/sphinx/props/P_LIFETIME.rst
new file mode 100644
index 0000000..09f7d4a
--- /dev/null
+++ b/doc/sphinx/props/P_LIFETIME.rst
@@ -0,0 +1,54 @@
+P_LIFETIME
+==========
+
+NAME
+----
+::
+
+     P_LIFETIME                    "std_food_lifetime"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/food.h
+
+BESCHREIBUNG
+------------
+::
+
+     Zeit in Sekunden, die die Speise haltbar ist.
+     Mit Setzen dieser Property wird der Wert fuer P_RESET_LIFETIME und
+     dort gespeichert.
+     Nach dieser Zeit wird diese Speise schlecht und je nach Konfiguration
+     der Speise eventuell zerstoert. Sichergestellt wird dies durch den
+     Aufruf von reset() nach dieser Anzahl Sekunden.
+     Moechte man eine Speise haben, die niemals verdirbt
+     (genehmigungspflichtig!), nutzt man die Property P_NO_BAD
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Sobald der Countdown zum Schlechtwerden der Speise laeuft, also ein
+     Spieler damit in Beruehrung kam, zeigt SetProp auf diese Property keine
+     Wirkung mehr.
+
+DEFAULT
+-------
+::
+
+     Ohne Setzen von P_LIFETIME ,P_RESET_LIFETIME und P_NO_BAD verdirbt die
+     Speise nach einem Reset, also zwischen 30 und 60 Minuten
+
+SIEHE AUCH
+----------
+::
+
+     wiz/food, P_RESET_LIFETIME, P_NO_BAD
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_LIGHT.rst b/doc/sphinx/props/P_LIGHT.rst
new file mode 100644
index 0000000..5f06359
--- /dev/null
+++ b/doc/sphinx/props/P_LIGHT.rst
@@ -0,0 +1,81 @@
+P_LIGHT
+=======
+
+NAME
+----
+::
+
+    P_LIGHT                       "light"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Gibt den Lichtlevel eines Objektes an, d.h. wie hell das Objekt von sich
+    aus leuchtet. Moechte man den gesamten Lichtlevel haben der von einem
+    Objekt ausgeht, so sollte man P_TOTAL_LIGHT nehmen, das den Inhalt eines
+    Containers direkt mit verrechnet.
+
+    Bitte _nur_ ueber SetProp bzw. QueryProp zugreifen, da es fuer die
+    Berechnung wichtig ist, das in allen Containern P_LAST_CONTENT_CHANGE
+    gesetzt wird um ein neuberechnen des Lichtlevels auszuloesen!
+
+ANMERKUNG
+---------
+::
+
+    Um ein ungefaehres Gefuehl davon zu bekommen was ein Lichtlevel in
+    etwa bedeutet hier einige allgemeine Beispiele von Gegenstaenden.
+    Grundsaetzlich sollten Lichtlevel <0 und >2 nur in Ruecksprache mit dem
+    Balanceteam benutzt werden.
+
+    Lichtlevel -1,  z.B. ein schwarzer Ring, von dem eine kleine dunkle Aura
+                    ausgeht, die den Spieler umgibt.
+    Lichtlevel  0,  der Gegenstand beeinflusst das Licht ueberhaupt nicht
+    Lichtlevel  1,  der Spieler haelt eine kleine Lichtquelle in Haenden,
+                    dieses kann ein Leuchtpfirsich, eine Fackel oder ein
+                    Feuerschwert oder aehnliches sein.
+    Lichtlevel  2,  eine etwas groessere Lichtquelle, die aber immer noch
+                    nicht den Raum beleuchtet sondern lediglich dem Spieler
+                    einen Lichtschein gewaehrt mit dem er sehen kann.
+    Lichtlevel >2,  extrem helle Lichtquellen, die den gesamten Raum
+                    ausleuchten, in der Regel wohl eher magischer Natur.
+                    Solche Lichtquellen sollten sich mit der Zeit
+                    verbrauchen, dem Spieler Schaden zufuegen oder
+                    aehnliches, damit die Spieler nicht defaultmaessig mit
+                    einer solchen Lichtquelle durchs MG ziehn.
+
+    Daraus ergeben sich dann folgende Konsequenzen fuer Raeume:
+    Lichtlevel  >1: Der Raum ist sehr hell erleuchtet und kann von Spielern
+                    nicht oder nur sehr schwer abgedunkelt werden. Ein Wert
+                    von 2-3 kann interessant sein, wenn die NPCs im Raum
+                    ueber keine Nachtsicht verfuegen. Ueber ein Abdunkeln des
+                    Raumes kann der Spieler dann doch den Nachtkampf nutzen.
+    Lichtlevel   1: Der Raum ist erleuchtet und die Spieler koennen ohne
+                    weitere Lichtquellen sehen...
+    Lichtlevel   0: Ein dunkler Raum in dem man mit jeder Fackel sehen kann.
+    Lichtlevel  -1: man benoetigt zwei einfache Lichtquellen oder Nachtsicht
+                    um in diesem Raum etwas sehen zu koennen.
+    Lichtlevel  -2: Man benoetigt schon eine besondere Lichtquelle um in
+                    diesem Raum noch etwas sehen zu koennen. Solche
+                    Lichtquellen sind nichts fuer Anfaenger oder mittlere
+                    Spieler da sie schwer zu beschaffen und in der Regel
+                    auch einige Handicaps haben.
+    Lichtlevel <-2: Der Raum ist wirklich absolut stockduster und
+                    Lichtquellen die solch einen Raum ausleuchten koennen,
+                    sind ausserordentlich selten und haben immer ihre
+                    Tuecken. Diese Lichtlevel sollten nur mit Vorsicht
+                    genossen werden.
+
+SIEHE AUCH
+----------
+::
+
+    P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+
diff --git a/doc/sphinx/props/P_LIGHTDESC.rst b/doc/sphinx/props/P_LIGHTDESC.rst
new file mode 100644
index 0000000..5bab936
--- /dev/null
+++ b/doc/sphinx/props/P_LIGHTDESC.rst
@@ -0,0 +1,56 @@
+P_LIGHTDESC
+===========
+
+NAME
+----
+::
+
+    P_LIGHTDESC                   "lightdesc"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    String oder Array von Strings mit Adjektiven, die das Leuchten der 
+    Lichtquelle beschreiben (z.B. leuchtend, brennend, gluehend).
+    Standardmaessig ist die Property auf "brennend" gesetzt.
+
+    Wenn ein Array angegeben wird, werden die Beschreibungen passend auf
+    die Benndauer aufgeteilt und das zur aktuell noch vorhandenen Rest-
+    Brenndauer passende Adjektiv ausgegeben. Das Array wird dabei rueck-
+    aerts durchlaufen, d.h. fuer eine frisch entzuendete Lichtquelle wird
+    der letzte Eintrag des Arrays verwendet (s. Beispiele).
+
+BEISPIELE
+---------
+::
+
+    Eine einfache Oellampe:
+
+    SetProp(P_LIGHTDESC, "angezuendet");
+
+    Eine Fackel mit mehreren Brennstadien (aus /items/fackel.c):
+
+    SetProp(P_LIGHTDESC, ({"glimmend","flackernd","leicht flackernd",
+                         "brennend","hell lodernd","frisch angezuendet"}));
+
+SIEHE AUCH
+----------
+::
+
+    Basisklassen: /std/lightsource.c
+    Properties:   P_FUEL, P_DO_DESTRUCT, P_LIGHT
+    Methoden:     AddFuel(L)
+
+LETZTE AENDERUNG
+----------------
+::
+
+    22. Dez. 2015, Arathorn
+
diff --git a/doc/sphinx/props/P_LIGHTED.rst b/doc/sphinx/props/P_LIGHTED.rst
new file mode 100644
index 0000000..05fb255
--- /dev/null
+++ b/doc/sphinx/props/P_LIGHTED.rst
@@ -0,0 +1,21 @@
+P_LIGHTED
+=========
+
+NAME
+----
+::
+
+    P_LIGHTED                     "lighted"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Flag, ob die Lichtquelle in Betrieb ist.
+
diff --git a/doc/sphinx/props/P_LIGHT_ABSORPTION.rst b/doc/sphinx/props/P_LIGHT_ABSORPTION.rst
new file mode 100644
index 0000000..c397ee2
--- /dev/null
+++ b/doc/sphinx/props/P_LIGHT_ABSORPTION.rst
@@ -0,0 +1,31 @@
+P_LIGHT_ABSORPTION
+==================
+
+NAME
+----
+::
+
+    P_LIGHT_ABSORPTION                  "light_absorption"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/room/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    In Raeumen verteilt sich aufgrund ihrer Groesse das Licht und gerade in
+    groesseren Raeumen kann eine kleine Fackel unter Umstaenden nicht mehr
+    ausreichen den gesamten Raum auszuleuchten. In diesem Fall kann man
+    ueber diese Property das Verhalten des Lichts steuern.
+    Ein "normaler" durchschnittlicher Raum hat hier den Defaultwert 1.
+
+SIEHE AUCH
+----------
+::
+
+    P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+
diff --git a/doc/sphinx/props/P_LIGHT_MODIFIER.rst b/doc/sphinx/props/P_LIGHT_MODIFIER.rst
new file mode 100644
index 0000000..b714418
--- /dev/null
+++ b/doc/sphinx/props/P_LIGHT_MODIFIER.rst
@@ -0,0 +1,75 @@
+P_LIGHT_MODIFIER
+================
+
+NAME
+----
+::
+
+    P_LIGHT_MODIFIER                     "light_modifier"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Veraendert das Lichtlevel das von einem Lebewesen wahrgenommen wird.
+    Der Wert dieser Property wird additiv in P_PLAYER_LIGHT beruecksichtigt.
+    Es ist hiermit z.B. moeglich eine Sonnenbrille zu programmieren, diese
+    veraendert ja nicht das tatsaechliche Lichtlevel, sondern verdunkelt nur
+    die Sicht.
+
+ANMERKUNG
+---------
+::
+
+    Damit NPCs in der Lage sind solche Gegenstaende richtig einzuschaetzen,
+    sollte diese Property in jedem Gegenstand der einen Light-Modifier setzt,
+    auch gesetzt sein. Das veraendern dieser Property in Spielern durch NPCs
+    oder Gegenstaende ist selbstverstaendlich genehmigungspflichtig.
+
+BEISPIELE
+---------
+::
+
+       // Ein NPC der auch in relativ dunklen Raeumen mit Lichtlevel -2
+       // noch sehen kann...
+       create_default_npc(10);
+       SetProp(P_LIGHT_MODIFIER, 3);
+
+       // Eine Sonnenbrille, die das Lichtlevel um eins senkt.
+
+       create()
+       {
+
+          :
+
+          SetProp(P_ARMOUR_TYPE, AT_GLASSES);
+          SetProp(P_LIGHT_MODIFIER, -1);
+
+          :
+
+       }
+
+       // Achtung: Falls pl Query- oder Set-Methoden auf P_LIGHT_MODIFIER hat,
+       // wird diese Methode hier furchtbar schief gehen und im besten Fall
+       // nichts veraendern. In realen Objekten empfiehlt sich zumindest eine
+       // Pruefung im Vorfeld, ob eine Query-/Set-Methode gesetzt ist.
+       protected void InformWear(object pl, int silent, int all) {
+           pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) -1);
+       }
+
+       protected void InformUnwear(object pl, int silent, int all) {
+           pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) +1);
+       }
+
+SIEHE AUCH
+----------
+::
+
+    P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+
diff --git a/doc/sphinx/props/P_LIGHT_TRANSPARENCY.rst b/doc/sphinx/props/P_LIGHT_TRANSPARENCY.rst
new file mode 100644
index 0000000..72fe6c0
--- /dev/null
+++ b/doc/sphinx/props/P_LIGHT_TRANSPARENCY.rst
@@ -0,0 +1,30 @@
+P_LIGHT_TRANSPARENCY
+====================
+
+NAME
+----
+::
+
+    P_LIGHT_TRANSPARENCY             "light_transparency"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/container.h
+
+BESCHREIBUNG
+------------
+::
+
+    Wieviel Licht schluckt ein Container, d.h. wieviel Licht dringt aus
+    einem Behaelter noch nach draussen. Bei Containern die _nicht_
+    transparent sind, liefert eine _query_method hier immer 999 zurueck.
+    Defaultmaessig steht diese Property auf 2.
+
+SIEHE AUCH
+----------
+::
+
+    P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+
diff --git a/doc/sphinx/props/P_LIGHT_TYPE.rst b/doc/sphinx/props/P_LIGHT_TYPE.rst
new file mode 100644
index 0000000..38021ce
--- /dev/null
+++ b/doc/sphinx/props/P_LIGHT_TYPE.rst
@@ -0,0 +1,106 @@
+P_LIGHT_TYPE
+============
+
+NAME
+----
+::
+
+    P_LIGHT_TYPE                       "light_type"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    Gibt an, was fuer ein Licht in einem Objekt vorherrscht. 
+
+    
+
+    Es sind verschiedene 'atomare' Lichttypen, vordefiniert:
+    LT_MISC         Unbestimmt, keine Angaben.
+
+    LT_SUN          Sonnenlicht.
+    LT_MOON         Mondlicht 
+    LT_STARS        Sternenlicht.
+
+    
+
+    LT_DIFFUSE      Indirektes Tageslicht. (z.B. im Wald)
+
+    LT_CANDLE       Kerzenlicht.
+    LT_TORCH        Fackelschein.
+    LT_OPEN_FIRE    Sonstiges offenes Feuer. (Lagerfeuer etc.)
+
+    
+
+    LT_MAGIC        Irgendeine magische Lichtquelle.
+
+    LT_GLOWING      Eine selbstleuchtende Lichtquelle.
+
+    LT_DARKNESS     Kein wirkliches Licht, aber auch Dunkelheit soll
+                    explizit gesetzt werden koennen.
+
+    In einem Objekt koennen mehrere Lichttypen gesetzt werden. Dies
+    geschieht durch logische Oder-Verknuepfungen, siehe man operators.
+
+    Wenn in einem Raum mehr als ein Lichttyp gesetzt ist, bedeutet das, 
+    normalerweise, dass mehrere Lichtquellen verschiedenen Typs im Raum 
+    sind.
+
+    Es gibt zudem noch Lichttypen, die zusammengesetzt sind:
+
+    LT_DAYLIGHT    Tageslicht (Sonne/Diffuse)
+    LT_NATURAL     Natuerliches Licht (Daylight/Sterne/Mond)
+    LT_ARTIFICIAL  Kuenstliches Licht (Magie/Feuer/Gluehen)
+    LT_FIRE        Feuer (Kerzen/Fackeln/offenes Feuer)
+
+BEISPIELE
+---------
+::
+
+    Ein Objekt soll ein geheimnisvolles Gluehen von sich geben:
+
+    
+
+    objekt->SetProp( P_LIGHT_TYPE, LT_GLOWING )
+
+    Soll ein Raum beschrieben werden, der durch Sternenlicht erhellt ist,
+    in dem aber zusaetzlich noch ein Lagerfeuer brennt, sieht die Syntax
+    folgendermassen aus:
+
+    
+
+    raum->SetProp( P_LIGHT_TYPE, LT_STARS|LT_OPEN_FIRE );
+
+    Einer brennenden Hose kann der Lichttyp fuer offenes Feuer mitgegeben 
+    werden. Es muss jedoch nicht zwingend der Lichttyp fuer magische
+    Lichtquellen benutzt werden. Es ist klar, dass es irgendwas mit Magie
+    zu tun hat, wenn brennende Spieler durch die Gegend laufen, ohne zu 
+    schreien. P_LIGHT_TYPE sollte jedoch das fassbare Licht beschreiben.
+    LT_MAGIC ist also eher eine Notloesung fuer Licht, dessen Ursache man
+    nicht erklaeren kann.
+
+ANMERKUNG
+---------
+::
+
+    P_LIGHT_TYPE dient ausschliesslich der Beschreibung des Lichtes, das 
+    vorherrscht. Es ist nicht verbunden mit dem Lichtsystem, und soll es
+    auch nicht werden.
+
+    Die Empfindlichkeit der Dunkelelfen gegen Sonnenlicht wird ueber diese
+    Property gesteuert. Soll ein Raum mit (P_INDOORS==0) so dunkel sein, dass
+    sie nicht in Gefahr sind, sollten nicht LT_MISC oder LT_SUN gesetzt
+    sein.
+
+SIEHE AUCH
+----------
+::
+
+    CheckLightType, /std/thing/description.h, operators
+
diff --git a/doc/sphinx/props/P_LIQUID.rst b/doc/sphinx/props/P_LIQUID.rst
new file mode 100644
index 0000000..e764287
--- /dev/null
+++ b/doc/sphinx/props/P_LIQUID.rst
@@ -0,0 +1,21 @@
+P_LIQUID
+========
+
+NAME
+----
+::
+
+    P_LIQUID                      "w_max_wasserfuellmenge"      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/fishing.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_LOCALCMDS.rst b/doc/sphinx/props/P_LOCALCMDS.rst
new file mode 100644
index 0000000..f558c45
--- /dev/null
+++ b/doc/sphinx/props/P_LOCALCMDS.rst
@@ -0,0 +1,25 @@
+P_LOCALCMDS
+===========
+
+NAME
+----
+::
+
+    P_LOCALCMDS                   "localcmds"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Ein Array von Arrays aller Befehle die im Spieler selbst definiert sind.
+    ({ ({ "befehl", "funktion", flag, wizlevel }) })
+    Wenn flag gesetzt ist werden nur die ersten Zeichen die auch in Befehl
+    angegeben sind mit dem Verb ueberprueft. Siehe auch
+    add_action("funktion", "befehl", 1) und AddCmd("befehl", "funktion", 1).
+
diff --git a/doc/sphinx/props/P_LOCATION.rst b/doc/sphinx/props/P_LOCATION.rst
new file mode 100644
index 0000000..13e37b9
--- /dev/null
+++ b/doc/sphinx/props/P_LOCATION.rst
@@ -0,0 +1,39 @@
+P_LOCATION
+==========
+
+NAME
+----
+::
+
+    P_LOCATION                   "location"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+    Hier kann der Spieler mit dem Befehl "ort" den Ort setzen,
+    von dem er kommt bzw. zu kommen glaubt ;)
+    Um wieder den automatisch ermittelten Ort anzuzeigen, ist
+    P_LOCATION auf 0 zu setzen.
+
+    
+
+SIEHE AUCH
+----------
+::
+
+    ort
+
+
+Last modified: Sat Jul 01 23:16:00 2000 by Mupfel
+
+    
+
+    
+
diff --git a/doc/sphinx/props/P_LOG_INFO.rst b/doc/sphinx/props/P_LOG_INFO.rst
new file mode 100644
index 0000000..71a44f1
--- /dev/null
+++ b/doc/sphinx/props/P_LOG_INFO.rst
@@ -0,0 +1,55 @@
+P_LOG_INFO
+==========
+
+NAME
+----
+::
+
+    P_LOG_INFO                    "log_info"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn diese Property gesetzt ist wird jede Frage, die ein
+     Monster nicht beantworten kann, im Report-File des
+     zustaendigen Magiers geloggt.
+
+     Es ist jedoch auch moeglich, direkt einen Filenamen anzugeben.
+     Bei diesen wird dann jedoch automatisch ein /log/ vorne angehaengt.
+
+BEISPIELE
+---------
+::
+
+     SetProp(P_LOG_INFO,1);           // Alle fehlenden Infos dieses
+                                         Monsters werden in das Report-
+                                         File unter /log/report/ gelogt.
+
+     SetProp(P_LOG_INFO,"tilly/opa"); // Alle fehlenden Infos dieses
+                                         Monsters werden in das File
+                                         monster unter /log/tilly/ ge-
+                                         logt.
+
+BEMERKUNGEN
+-----------
+::
+
+     Bei nachtraeglich angeschlossenen Monstern empfiehlt sich Variante 
+     2 der Beispiele. Ein muehsames Suchen (und Loeschen) der fehlenden 
+     Infos des Monsters im Report-File eruebrigt sich dann naemlich.
+
+SIEHE AUCH
+----------
+::
+
+     P_LOG_FILE, write_file(), log_file(), AddInfo
+
+Letzte Aenderung: 13.09.04 Tilly@MorgenGrauen
+
diff --git a/doc/sphinx/props/P_LONG.rst b/doc/sphinx/props/P_LONG.rst
new file mode 100644
index 0000000..04b0404
--- /dev/null
+++ b/doc/sphinx/props/P_LONG.rst
@@ -0,0 +1,49 @@
+P_LONG
+======
+
+NAME
+----
+::
+
+     P_LONG					"long"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/description.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Die Langbeschreibung des Objektes als String oder Closure (diese muss
+     einen String zurueckgeben). Die Langbeschreibung wird beim Untersuchen
+     des Objektes ausgegeben. Sie sollte umgebrochen sein.
+
+     Diese Property bestimmt die Ansicht des Objektes von aussen. Fuer die
+     Innen(lang)ansicht von Raeumen muss man P_INT_LONG benutzen.
+
+BEMERKUNGEN
+-----------
+::
+
+     - long() ("untersuche") filtert P_LONG durch process_string()
+       -> daher sind Closures moeglich
+
+BEISPIELE
+---------
+::
+
+     SetProp(P_LONG, "Diese Axt ist eine furchtbare Waffe!\n");
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches:	P_SHORT, long()
+     Sonstiges:		P_INT_LONG, process_string(), break_string()
+
+
+Last modified: Sun May 19 20:10:18 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_LONG_EMPTY.rst b/doc/sphinx/props/P_LONG_EMPTY.rst
new file mode 100644
index 0000000..ea94fe5
--- /dev/null
+++ b/doc/sphinx/props/P_LONG_EMPTY.rst
@@ -0,0 +1,21 @@
+P_LONG_EMPTY
+============
+
+NAME
+----
+::
+
+    P_LONG_EMPTY                  "w_longdesc_empty"            
+
+DEFINIERT IN
+------------
+::
+
+    /sys/fishing.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_LONG_FULL.rst b/doc/sphinx/props/P_LONG_FULL.rst
new file mode 100644
index 0000000..ab623e0
--- /dev/null
+++ b/doc/sphinx/props/P_LONG_FULL.rst
@@ -0,0 +1,21 @@
+P_LONG_FULL
+===========
+
+NAME
+----
+::
+
+    P_LONG_FULL                   "w_longdesc_full"             
+
+DEFINIERT IN
+------------
+::
+
+    /sys/fishing.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_MAGIC.rst b/doc/sphinx/props/P_MAGIC.rst
new file mode 100644
index 0000000..ec394f1
--- /dev/null
+++ b/doc/sphinx/props/P_MAGIC.rst
@@ -0,0 +1,21 @@
+P_MAGIC
+=======
+
+NAME
+----
+::
+
+    P_MAGIC                       "magic"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Dieses Objekt ist magisch.
+
diff --git a/doc/sphinx/props/P_MAGIC_RESISTANCE_OFFSET.rst b/doc/sphinx/props/P_MAGIC_RESISTANCE_OFFSET.rst
new file mode 100644
index 0000000..a1be37e
--- /dev/null
+++ b/doc/sphinx/props/P_MAGIC_RESISTANCE_OFFSET.rst
@@ -0,0 +1,52 @@
+P_MAGIC_RESISTANCE_OFFSET
+=========================
+
+NAME
+----
+::
+
+     P_MAGIC_RESISTANCE_OFFSET                     "mag_res_offset"                     
+
+DEFINIERT IN
+------------
+::
+
+     /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mapping mit ganzzahligen Prozentwerten in 0.01%-Schritten
+     (0-10000) zur Resistenz/Empfindlichkeit gegen bestimmte
+     Magieklassen.
+
+     Die Property wird in der Methode SpellDefend() ausgewertet und
+     fuer einen auf den NPC/Spieler gesprochenen Spell werden die
+     Werte fuer all dessen Magieklassen aufaddiert. Daher sind auch
+     negative Werte fuer einzelne Magieklassen sinnvoll.
+
+     P_MAGIC_RESISTANCE_OFFSET und SpellDefend werden von den Spellbooks
+     ausgewertet. Der Einfluss ist daher abhaengig vom Spellbook.
+
+BEISPIELE
+---------
+::
+
+     // Goblins
+     SetProp(P_MAGIC_RESISTANCE_OFFSET,
+               ([MT_ANGRIFF:600,         // 6% Resistenz gegen Angriff
+	         MT_ILLUSION:500,        // 6% Resistenz gegen Illusionen
+                 MT_VERWANDLUNG:-300,    // 3% Empfindlichkeit
+		 MT_HELLSICHT:-750,      // 7.5% Empfindlichkeit
+		 MT_BEHERRSCHUNG:250])); // 2.5% Resistenz
+
+SIEHE AUCH
+----------
+::
+
+     Verwandt:     SpellDefend
+     Aehnlich:     P_NOMAGIC
+
+29.Dez 2007 Gloinson
+
diff --git a/doc/sphinx/props/P_MAILADDR.rst b/doc/sphinx/props/P_MAILADDR.rst
new file mode 100644
index 0000000..4a680bf
--- /dev/null
+++ b/doc/sphinx/props/P_MAILADDR.rst
@@ -0,0 +1,21 @@
+P_MAILADDR
+==========
+
+NAME
+----
+::
+
+    P_MAILADDR                    "mailaddr"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     EMailadresse des Spielers.
+
diff --git a/doc/sphinx/props/P_MAP_RESTRICTIONS.rst b/doc/sphinx/props/P_MAP_RESTRICTIONS.rst
new file mode 100644
index 0000000..51cefec
--- /dev/null
+++ b/doc/sphinx/props/P_MAP_RESTRICTIONS.rst
@@ -0,0 +1,57 @@
+P_MAP_RESTRICTIONS
+==================
+
+NAME
+----
+::
+
+    P_MAP_RESTRICTIONS                      "lib_p_map_restrictions"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/rooms.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mit dieser Property laesst sich beeinflussen, welche Informationen ueber
+     den Raum das Morgengrauen dem Client zukommen laesst (zur Zeit nur via
+     GMCP, aber es mag irgendwann auch andere Wege geben).
+     Beispielsweise sollen vielleicht in einem Labyrinth keine eindeutigen
+     Raum-IDs uebermittelt werden.
+
+     Als Werte duerfen alle MR_-Konstanten aus <rooms.h> verwendet werden.
+     Diese duerfen auch ver-ODER-t werden, wenn mehr als eine davon gelten
+     soll.
+
+     Moegliche Werte:
+       MR_NOUID - verhindert, dass die eindeutige Raum-ID uebertragen wird.
+       MR_NOINFO - verhindert, dass ueberhaupt irgendetwas an den Client
+                   uebermittelt wird. Damit kriegt er ggf. auch nicht mit,
+                   dass er Raum gewechselt wurde. Ist fuer Sequenzraeume
+                   gedacht. Bitte SEHR sparsam einsetzen.
+
+     Die Verwendung dieser Property sollte der Ausnahmefall sein!
+
+BEISPIEL
+--------
+::
+
+     (in einem Raum)
+     SetProp(P_MAP_RESTRICTIONS, MR_NOUID);
+
+     Nun bekommt der Client zwar die Kurzbeschreibung des Raums, die Region
+     und die sichtbaren Ausgaenge, aber keine UID mehr uebermittelt.
+
+SIEHE AUCH
+----------
+::
+
+     gmcp
+
+
+23.02.2013, Zesstra
+
diff --git a/doc/sphinx/props/P_MARRIED.rst b/doc/sphinx/props/P_MARRIED.rst
new file mode 100644
index 0000000..5a1e040
--- /dev/null
+++ b/doc/sphinx/props/P_MARRIED.rst
@@ -0,0 +1,28 @@
+P_MARRIED
+=========
+
+NAME
+----
+::
+
+    P_MARRIED                     "married"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Enthaelt einen String mit der uid des Partners
+     (sofern vorhanden)
+
+SIEHE AUCH
+----------
+::
+
+     scheidung
+
diff --git a/doc/sphinx/props/P_MATERIAL.rst b/doc/sphinx/props/P_MATERIAL.rst
new file mode 100644
index 0000000..1223b56
--- /dev/null
+++ b/doc/sphinx/props/P_MATERIAL.rst
@@ -0,0 +1,99 @@
+P_MATERIAL
+==========
+
+NAME
+----
+::
+
+     P_MATERIAL					"material"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/material.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Mapping mit prozentualen Anteilen von Materialien, aus denen ein Objekt 
+     besteht.
+
+BEMERKUNGEN
+-----------
+::
+
+     Bei SetProp kann man zu Vereinfachung auch ein einzelnes Material oder 
+     ein Array aus Materialien angeben. Die Anteile werden dann 
+     gleichmaessig verteilt.
+
+BEISPIELE
+---------
+::
+
+     // 100% Eis
+     SetProp(P_MATERIAL, MAT_ICE);
+     // QueryProp(P_MATERIAL) -> ([MAT_ICE:100])
+
+     // 50% Eis, 50% Misc-Holz
+     SetProp(P_MATERIAL, ({ MAT_ICE, MAT_MISC_WOOD }));
+     // QueryProp(P_MATERIAL) -> ([MAT_ICE:50, MAT_MISC_WOOD: 50])
+
+     // 60% Eis, 40% Misc-Holz
+     SetProp(P_MATERIAL, ([ MAT_ICE: 60, MAT_MISC_WOOD: 40 ]));
+
+     // 100% Papier
+     SetProp(P_MATERIAL, MAT_PAPER);
+     // QueryProp(P_MATERIAL) -> ([MAT_PAPER:100])
+
+     // 50% Silber, 50% Gold
+     SetProp(P_MATERIAL, ({MAT_SILVER, MAT_GOLD}))
+     // QueryProp(P_MATERIAL) -> ([MAT_SILVER:50,MAT_GOLD:50])
+
+     // ein weiser Schmied, der was daraus macht:
+     int i;
+     string *mat, mname, mgroup;
+     mat=m_indices(ob->QueryProp(P_MATERIAL));
+     i=sizeof(mat);
+
+     write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
+     while(i--) {
+      // den Namen erkennen/aussprechen:
+      // Materialien werden allgemein ganz schlecht erkannt (zu 5%), aber
+      // alles aus Metall wird zu +100% gut erkannt ...
+      mname=MATERIALDB->MaterialName(mat[i], WER,
+	     ({5, ([MATERIAL_SYMMETRIC_RECOGNIZABILITY:
+			({MATGROUP_METAL, 100})])}));
+
+      // und nur Metalle analysieren ...
+      if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
+       int j;
+       string *mgr;
+       mgr=MATERIALDB->GetMatMembership(mat[i]);
+       j=sizeof(mgr);
+       mgroup=" gehoert zu ";
+       while(j--) {
+        mgroup+=MATERIALDB->GroupName(mgr[j]);
+        if(j>0) mgroup+=", ";
+       }
+      } else mgroup=" kenne ich nicht";
+      printf("%-12.12s: %s\n",mname, mgroup);
+     }
+
+SIEHE AUCH
+----------
+::
+
+     Konzepte:	  material, materialerkennung
+     Grundlegend: /sys/thing/material.h
+     Methoden:    QueryMaterial(), QueryMaterialGroup(), MaterialList(),
+     Listen:	  AllMaterials(), AllGroups(), Dump()
+		  materialliste, materialgruppen
+     Master:	  AddMaterial(), ConvMaterialList(), MaterialGroup(),
+		  GroupName(), MaterialName(),
+		  GetGroupMembers(), GetMatMembership()
+     Sonstiges:	  P_MATERIAL_KNOWLEDGE
+
+7. Mai 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_MATERIAL_KNOWLEDGE.rst b/doc/sphinx/props/P_MATERIAL_KNOWLEDGE.rst
new file mode 100644
index 0000000..e8ba8a3
--- /dev/null
+++ b/doc/sphinx/props/P_MATERIAL_KNOWLEDGE.rst
@@ -0,0 +1,56 @@
+P_MATERIAL_KNOWLEDGE
+====================
+
+NAME
+----
+::
+
+     P_MATERIAL_KNOWLEDGE				"material_knowledge"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/material.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Mapping, Closure oder Integer mit Regeln zur Materialienerkennung. Die
+     Regeln sind in "man materialerkennung" zu lesen.
+
+     Diese werden bei Angabe eines Spielerobjektes in MaterialList() oder
+     MaterialName() an diesem abgefragt und hat Einfluss darauf, ob ein
+     Material genau, generell oder gar nicht erkannt wird.
+
+     In den einzelnen Rassenshells sind Defaultwerte dafuer angegeben.
+
+BEISPIELE
+---------
+::
+
+     // Erkennungsbonus auf diverse Materialgruppen und
+     // Erkennungsbonus/-malus auf biologische/nichtbiologische Materialien
+     SetProp(P_MATERIAL_KNOWLEDGE,
+	([MATGROUP_WOOD:20,
+	  MATGROUP_METAL:20,
+	  MATGROUP_ELEMENTAL:20,
+	  MATGROUP_CLOTH:20,
+	  MATERIAL_SYMMETRIC_RECOGNIZABILITY: ({MATGROUP_BIO,5})]));
+
+SIEHE AUCH
+----------
+::
+
+     Konzepte:	  material, materialerkennung
+     Grundlegend: P_MATERIAL, /sys/thing/material.h
+     Methoden:    QueryMaterial(), QueryMaterialGroup(), MaterialList(),
+     Listen:	  AllMaterials(), AllGroups(), Dump()
+		  materialliste, materialgruppen
+     Master:	  AddMaterial(), ConvMaterialList(), MaterialGroup(),
+		  GroupName(), MaterialName(),
+		  GetGroupMembers(), GetMatMembership()
+
+7. Mai 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_MAX_ALCOHOL.rst b/doc/sphinx/props/P_MAX_ALCOHOL.rst
new file mode 100644
index 0000000..9289522
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_ALCOHOL.rst
@@ -0,0 +1,40 @@
+P_MAX_ALCOHOL
+=============
+
+NAME
+----
+::
+
+	P_MAX_ALCOHOL			"max_alcohol"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+	Numerischer Wert fuer den maximalen Grad der Betrunkenheit eines
+	Lebewesens.
+
+ANMERKUNGEN
+-----------
+::
+
+	Der Wert von P_MAX_ALCOHOL ist bei den einzelnen Rassen verschieden,
+	ebenso wie der fuer P_ALCOHOL_DELAY. Die genauen Werte stehen in den
+	Rassen-Shells (/std/shells).
+
+SIEHE AUCH
+----------
+::
+
+	P_ALCOHOL, P_ALCOHOL_DELAY, drink_alcohol,
+	P_MAX_FOOD, P_MAX_DRINK
+
+
+Last modified: Tue Dec 18 12:16:10 2001 by Patryn
+
diff --git a/doc/sphinx/props/P_MAX_DRINK.rst b/doc/sphinx/props/P_MAX_DRINK.rst
new file mode 100644
index 0000000..a637902
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_DRINK.rst
@@ -0,0 +1,40 @@
+P_MAX_DRINK
+===========
+
+NAME
+----
+::
+
+	P_MAX_DRINK			"max_drink"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+	Numerischer Wert fuer die maximale Saettigung eines Lebewesens mit
+	Getraenken.
+
+ANMERKUNGEN
+-----------
+::
+
+	Der Wert von P_MAX_DRINK ist bei den einzelnen Rassen verschieden,
+	ebenso wie der fuer P_DRINK_DELAY. Die genauen Werte stehen in den
+	Rassen-Shells (/std/shells).
+
+SIEHE AUCH
+----------
+::
+
+	P_DRINK, P_DRINK_DELAY, drink_soft,
+	P_MAX_FOOD, P_MAX_ALCOHOL
+
+
+Last modified: Tue Dec 18 12:16:10 2001 by Patryn
+
diff --git a/doc/sphinx/props/P_MAX_FOOD.rst b/doc/sphinx/props/P_MAX_FOOD.rst
new file mode 100644
index 0000000..bfe87b4
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_FOOD.rst
@@ -0,0 +1,39 @@
+P_MAX_FOOD
+==========
+
+NAME
+----
+::
+
+	P_MAX_FOOD			"max_food"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+	Numerischer Wert fuer die maximale Saettigung eines Lebewesens.
+
+ANMERKUNGEN
+-----------
+::
+
+	Der Wert von P_MAX_FOOD ist bei den einzelnen Rassen verschieden, 
+	ebenso wie der fuer P_FOOD_DELAY. Die genauen Werte stehen in den
+	Rassen-Shells (/std/shells).
+
+SIEHE AUCH
+----------
+::
+
+	P_FOOD, P_FOOD_DELAY, eat_food,
+	P_MAX_DRINK, P_MAX_ALCOHOL
+
+
+Last modified: Tue Dec 18 12:16:10 2001 by Patryn
+
diff --git a/doc/sphinx/props/P_MAX_HANDS.rst b/doc/sphinx/props/P_MAX_HANDS.rst
new file mode 100644
index 0000000..911fe3a
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_HANDS.rst
@@ -0,0 +1,45 @@
+P_MAX_HANDS
+===========
+
+NAME
+----
+::
+
+     P_MAX_HANDS                   "max_hands"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der Haende, die ein Wesen hat.
+
+BEMERKUNGEN
+-----------
+::
+
+     An dieser Propertie sollte bei Spielern nur im Rahmen der
+     Gilden 'gespielt' werden.
+
+     Fuer Magier, die in ihren Npc gerne alle Properties setzen,
+     gilt folgendes:
+
+                  Setzt diese Propertie NIE auf 0 !
+
+     Ohne Haende wird kein Npc irgendeinen Spieler angreifen koennen.
+
+SIEHE AUCH
+----------
+::
+
+     P_HANDS, P_HANDS_USED_BY
+     P_USED_HANDS, P_FREE_HANDS
+     UseHands, FreeHands
+
+1.Feb.2004 Gloinson
+
diff --git a/doc/sphinx/props/P_MAX_HP.rst b/doc/sphinx/props/P_MAX_HP.rst
new file mode 100644
index 0000000..3e23b46
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_HP.rst
@@ -0,0 +1,30 @@
+P_MAX_HP
+========
+
+NAME
+----
+::
+
+    P_MAX_HP                      "max_hp"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Maximale Anzahl der Lebenspunkte.
+
+SIEHE AUCH
+----------
+::
+
+     Props:	P_HP
+     Verwandt:	UpdateAttributes()
+
+21.April 2006 Gloinson
+
diff --git a/doc/sphinx/props/P_MAX_OBJECTS.rst b/doc/sphinx/props/P_MAX_OBJECTS.rst
new file mode 100644
index 0000000..3761d71
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_OBJECTS.rst
@@ -0,0 +1,44 @@
+P_MAX_OBJECTS
+=============
+
+NAME
+----
+::
+
+    P_MAX_OBJECTS                  "max_objects"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/container.h
+
+BESCHREIBUNG
+------------
+::
+
+     Maximale Anzahl an Objekten, die in einen Container passen.
+     P_MAX_OBJECTS sollte im Normfall zwischen 0 - 100 liegen.
+
+BEMERKUNGEN
+-----------
+::
+
+     Soll es sich um einen herausragenden Container handeln, der zum
+     Beispiel das Gewicht um mehr als 50% reduziert, sollte P_MAX_OBJECTS
+     einen kleineren Wert haben. Das Verhaeltnis von P_MAX_WEIGHT,
+     P_WEIGHT_PERCENT und dieser Property sollte stimmen.
+
+BEISPIELE
+---------
+::
+
+     Als Beispiel sollte man sich das Postpaket ansehen und sich an dessen
+     Werten orientieren (/p/service/loco/obj/parcel).
+
+SIEHE AUCH
+----------
+::
+
+     P_MAX_WEIGHT, P_WEIGHT_PERCENT, P_LIGHT_TRANSPARENCY, container
+
diff --git a/doc/sphinx/props/P_MAX_PASSENGERS.rst b/doc/sphinx/props/P_MAX_PASSENGERS.rst
new file mode 100644
index 0000000..d85ce26
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_PASSENGERS.rst
@@ -0,0 +1,22 @@
+P_MAX_PASSENGERS
+================
+
+NAME
+----
+::
+
+    P_MAX_PASSENGERS              "maxpass"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+     Numerischer Wert fuer die maximale Anzahl von Wesen in dem Transporter.
+     0 bedeutet unbeschaenkte Spielerzahl.
+
diff --git a/doc/sphinx/props/P_MAX_POISON.rst b/doc/sphinx/props/P_MAX_POISON.rst
new file mode 100644
index 0000000..65739b2
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_POISON.rst
@@ -0,0 +1,21 @@
+P_MAX_POISON
+============
+
+NAME
+----
+::
+
+    P_MAX_POISON                  "max_poison"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Maximale Vergiftung
+
diff --git a/doc/sphinx/props/P_MAX_SP.rst b/doc/sphinx/props/P_MAX_SP.rst
new file mode 100644
index 0000000..2269cd2
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_SP.rst
@@ -0,0 +1,30 @@
+P_MAX_SP
+========
+
+NAME
+----
+::
+
+    P_MAX_SP                      "max_sp"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Maximale Anzahl der Magiepunkte.
+
+SIEHE AUCH
+----------
+::
+
+     Props:	P_SP
+     Verwandt:	UpdateAttributes()
+
+21.April 2006 Gloinson
+
diff --git a/doc/sphinx/props/P_MAX_WEIGHT.rst b/doc/sphinx/props/P_MAX_WEIGHT.rst
new file mode 100644
index 0000000..80b63af
--- /dev/null
+++ b/doc/sphinx/props/P_MAX_WEIGHT.rst
@@ -0,0 +1,38 @@
+P_MAX_WEIGHT
+============
+
+NAME
+----
+::
+
+    P_MAX_WEIGHT                  "max_weight"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/container.h
+
+BESCHREIBUNG
+------------
+::
+
+     Maximales Gewicht in Gramm, das in dem Container verstaut werden
+     kann.
+
+BEMERKUNGEN
+-----------
+::
+
+     Das Verhaeltnis von P_WEIGHT_PERCENT, P_MAX_OBJECTS und dieser Property
+     sollte stimmen. Eine feste Grenze gibt es nicht. Als Beispiel kann 
+     das Postpaket von Loco unter /p/servive/loco/obj herangezogen werden.
+     Bessere Werte als in diesem sollte es nicht, und wenn doch nur gut be-
+     gruendet, geben.
+
+SIEHE AUCH
+----------
+::
+
+     P_WEIGHT_PERCENT, P_MAX_OBJECTS, P_LIGHT_TRANSPARENCY, container
+
diff --git a/doc/sphinx/props/P_MESSAGE_BEEP.rst b/doc/sphinx/props/P_MESSAGE_BEEP.rst
new file mode 100644
index 0000000..90b3f72
--- /dev/null
+++ b/doc/sphinx/props/P_MESSAGE_BEEP.rst
@@ -0,0 +1,38 @@
+P_MESSAGE_BEEP
+==============
+
+NAME
+----
+::
+
+    P_MESSAGE_BEEP                        "message_beep"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/comm.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wertebereich: int=0..3600 (Sekunden)
+     Wenn gesetzt wird in der Kommunikation des Spielers in den angegebenen
+     Zeitraeumen ein Signalton ausgegeben. Wird in player/comm.c in comm_beep()
+     verarbeitet.
+     Ausgabe erfolgt nur, wenn P_VISUALBELL nicht gesetzt ist.
+     Wird im Spielerobjekt gespeichert!
+
+SIEHE AUCH
+----------
+::
+
+     klingelton, ton, P_VISUALBELL, P_MESSAGE_LAST_BEEP
+
+LETZTE AENDERUNG
+----------------
+::
+
+   16. Mai 2007  Ennox
+
diff --git a/doc/sphinx/props/P_MESSAGE_PREPEND.rst b/doc/sphinx/props/P_MESSAGE_PREPEND.rst
new file mode 100644
index 0000000..ab85748
--- /dev/null
+++ b/doc/sphinx/props/P_MESSAGE_PREPEND.rst
@@ -0,0 +1,37 @@
+P_MESSAGE_PREPEND
+=================
+
+NAME
+----
+::
+
+    P_MESSAGE_PREPEND                        "message_prepend"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/comm.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wertebereich: int = 0,1
+     Wenn vom Ziel eingeschaltet, wird von teile mit (_tell) und sag (_communicate) das 
+     BS_PREPEND_INDENT Flag fuer break_string genutzt, um den Indent (Sender) ggf.
+     vor dem Textblock anzuzeigen.
+     Wird im Spielerobjekt gespeichert!
+
+SIEHE AUCH
+----------
+::
+
+     grafik aus, break_string, senderwiederholung
+
+LETZTE AENDERUNG
+----------------
+::
+
+   16. Mai 2007  Ennox
+
diff --git a/doc/sphinx/props/P_MIN_STOCK.rst b/doc/sphinx/props/P_MIN_STOCK.rst
new file mode 100644
index 0000000..4bd5eec
--- /dev/null
+++ b/doc/sphinx/props/P_MIN_STOCK.rst
@@ -0,0 +1,56 @@
+P_MIN_STOCK
+===========
+
+NAME
+----
+::
+
+	P_MIN_STOCK			"min_stock"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/bank.h
+
+BESCHREIBUNG
+------------
+::
+
+	P_MIN_STOCK enthaelt die Anzahl an Objekten, die ein Lager eines
+	Ladens minimal behaelt. Standardmaessig entspricht dies 20 Objekten
+	und sollte auch nicht wesentlich erhoeht werden. Nur fuer
+	Anfaengergebiete waeren Werte zwischen 20 und 60 akzeptabel. In die
+	Berechnung der Anzahl von Objekten gehen keine Objekte ein, die im
+	Laden mittels AddFixedObject() staendig verfuegbar gemacht worden
+	sind und auch keine Objekte, die per AddItem() im Lager hinzugefuegt
+	wurden und nach jedem Reset aufgefrischt werden.
+	Bei jedem Reset wird nun aus Speicher- und Laggruenden das Lager um
+	eine bestimmte Prozentzahl an Objekten dezimiert. Entscheidend
+	dafuer ist der Wert in der Property P_STORE_CONSUME.
+	Beide hier erwaehnten Properties sollten ueberigens nur mittels
+	QueryProp/SetProp ausgelesen bzw. veraendert werden.
+
+BEISPIEL
+--------
+::
+
+	In '/std/store.c' befindet sich bereits ein gutes Beispiel, da dort
+	der Standardwert von 20 Objekten bereitgestellt wird:
+	  create()
+	  { ...
+	    SetProp(P_MIN_STOCK,20);
+	  }
+	Diesen Wert kann man in einem davon abgeleiteten eigenen Lager
+	natuerlich auch veraendern.
+
+SIEHE AUCH
+----------
+::
+
+	P_STORE_CONSUME, SetStorageRoom(), /std/store.c, /std/shop.c
+	AddItem(), RemoveItem(), AddFixedObject(), RemoveFixedObject()
+
+
+Last modified: 19-Jun-2015, Arathorn 
+
diff --git a/doc/sphinx/props/P_MMSGIN.rst b/doc/sphinx/props/P_MMSGIN.rst
new file mode 100644
index 0000000..4d4dbb4
--- /dev/null
+++ b/doc/sphinx/props/P_MMSGIN.rst
@@ -0,0 +1,22 @@
+P_MMSGIN
+========
+
+NAME
+----
+::
+
+    P_MMSGIN                      "mmsgin"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     String mit der Meldung, die beim Verlassen eines Raumes mit M_TPORT
+     an die uebrigen Anwesenden ausgegeben wird.
+
diff --git a/doc/sphinx/props/P_MMSGOUT.rst b/doc/sphinx/props/P_MMSGOUT.rst
new file mode 100644
index 0000000..762f43e
--- /dev/null
+++ b/doc/sphinx/props/P_MMSGOUT.rst
@@ -0,0 +1,22 @@
+P_MMSGOUT
+=========
+
+NAME
+----
+::
+
+    P_MMSGOUT                     "mmsgout"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     String mit der Meldung, die beim Betreten eines Raumes mit M_TPORT
+     an die uebrigen Anwesenden ausgegeben wird.
+
diff --git a/doc/sphinx/props/P_MSGIN.rst b/doc/sphinx/props/P_MSGIN.rst
new file mode 100644
index 0000000..ab7d73b
--- /dev/null
+++ b/doc/sphinx/props/P_MSGIN.rst
@@ -0,0 +1,22 @@
+P_MSGIN
+=======
+
+NAME
+----
+::
+
+    P_MSGIN                       "msgin"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     String mit der Meldung, die beim Betreten eines Raumes mit M_GO
+     an die uebrigen Anwesenden ausgegeben wird.
+
diff --git a/doc/sphinx/props/P_MSGOUT.rst b/doc/sphinx/props/P_MSGOUT.rst
new file mode 100644
index 0000000..ce046cb
--- /dev/null
+++ b/doc/sphinx/props/P_MSGOUT.rst
@@ -0,0 +1,22 @@
+P_MSGOUT
+========
+
+NAME
+----
+::
+
+    P_MSGOUT                      "msgout"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     String mit der Meldung, die beim Verlassen eines Raumes mit M_GO
+     an die uebrigen Anwesenden ausgegeben wird.
+
diff --git a/doc/sphinx/props/P_MSG_PROB.rst b/doc/sphinx/props/P_MSG_PROB.rst
new file mode 100644
index 0000000..1f0e9ea
--- /dev/null
+++ b/doc/sphinx/props/P_MSG_PROB.rst
@@ -0,0 +1,35 @@
+P_MSG_PROB
+==========
+
+NAME
+----
+::
+
+    P_MSG_PROB                    "msg_prob"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/room/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Parameter fuer die Wartezeit in Sekunden bis zur naechsten Ausgabe
+     einer Raumnachricht.
+     Wird in AddRoomMessage() explizit mitgesetzt. Koennte natuerlich von
+     einer Nachrichtenmethode auch regelmaessig geaendert werden, um
+     mehr Zufall in die Intervalle zu bringen.
+
+SIEHE AUCH
+----------
+::
+
+     LFuns:    AddRoomMessage()
+     Props:    P_ROOM_MSG, P_MSG_PROB
+     Verwandt: call_out()
+
+2.Feb 2016 Gloinson
+
diff --git a/doc/sphinx/props/P_MUD_NEWBIE.rst b/doc/sphinx/props/P_MUD_NEWBIE.rst
new file mode 100644
index 0000000..ce6b8b8
--- /dev/null
+++ b/doc/sphinx/props/P_MUD_NEWBIE.rst
@@ -0,0 +1,31 @@
+P_MUD_NEWBIE
+============
+
+NAME
+----
+::
+
+    P_MUD_NEWBIE                      "_lib_mud_newbie" 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+    Der Spieler hat bei Erstellung des Charakters angegeben, noch nie in einem
+    Mud gespielt zu haben. In diesem Fall enthaelt die Property den
+    Zeitstempel der Charaktererstellung.
+
+    ACHTUNG: Diese Prop wird nicht gespeichert, d.h. nachdem ein solcher
+    Spieler "ende" gemacht hat oder ein Reboot erfolgte, ist diese Information
+    verloren.
+
+SIEHE AUCH
+----------
+::
+
diff --git a/doc/sphinx/props/P_MURDER_MSG.rst b/doc/sphinx/props/P_MURDER_MSG.rst
new file mode 100644
index 0000000..b7d4e9a
--- /dev/null
+++ b/doc/sphinx/props/P_MURDER_MSG.rst
@@ -0,0 +1,83 @@
+P_MURDER_MSG
+============
+
+NAME
+----
+::
+
+     P_MURDER_MSG			"murder_msg"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Property kann man einen String oder eine Closure ablegen
+     dessen Wert bzw. deren Resultat beim Tod des NPCs auf dem
+     Moerder-Kanal erscheint.
+     Normalerweise ist die Property nicht gesetzt, woraufhin zufaellig
+     eine Meldung generiert wird.
+
+     Ob der Tod eines NPCs auf dem Moerder-Kanal erscheint, haengt davon ab,
+     wie oft und welche Art von NPCs in der letzten Zeit getoetet wurden. Zum
+     Beispiel ist es eher selten, dass ein schwacher NPC auf dem Kanal
+     erscheint, wenn kuerzlich viele starke NPCs getoetet wurden. Allerdings
+     kann man auf diese Regelung mittels der Property P_FORCE_MURDER_MSG
+     Einfluss nehmen.
+
+     Wird in einen String der Platzhalter %s eingefuegt, so erscheint an der
+     Stelle spaeter der Name des Moerders.
+
+BEISPIELE
+---------
+::
+
+     // Zum Beispiel koennte man ja bei einer Ratte, die getoetet wird,
+     // folgendes auf dem Moerder-Kanal ausgeben lassen:
+     SetProp(P_MURDER_MSG,
+       "Ratten aller MUDs, vereinigt euch gegen %s!");
+
+
+     // Um auch mal eine Closure zu zeigen: die Ratte koennte auch ihre
+     // Meldung erst bei ihrem Tod erstellen lassen:
+     private string moerder_meldung() {
+       return ({"Achweh!", "Au!", "Weia!"})[random(3)];
+     }
+
+     SetProp(P_MURDER_MSG, #'moerder_meldung);
+
+BEMERKUNGEN
+-----------
+::
+
+     - P_NOCORPSE:
+       Ist in dem NPC die Property P_NOCORPSE gesetzt, so wird die
+       Moerdermeldung nicht auf dem Kanal gesendet, da diese Ausgabe ueber
+       /std/corpse laeuft.
+       Will man dennoch eine Meldung, so sollte man /std/corpse im die()
+       selbst clonen, daran Identify(this_object()) rufen und das geclonte
+       Objekt wieder entsorgen.
+
+     - Closures:
+       Closures bieten sich an, wenn ein zentrales Objekt fuer mehrere NPCs
+       bestimmte Moerdermeldungen generieren soll. Dann muss nur noch bei
+       den NPCs die Closure, die auf die erstellende Methode zeigt gesetzt
+       werden.
+
+SIEHE AUCH
+----------
+::
+
+     Tod:		die(L)
+     Verwandt:		P_FORCE_MURDER_MSG
+     Todesmeldungen:	P_KILL_NAME, P_KILL_MSG, P_DIE_MSG
+			P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+     Sonstiges:		P_CORPSE, P_NOCORPSE, /std/corpse.c
+
+30. Mai 2006, Gloinson
+
diff --git a/doc/sphinx/props/P_M_ATTR_MOD.rst b/doc/sphinx/props/P_M_ATTR_MOD.rst
new file mode 100644
index 0000000..9c20023
--- /dev/null
+++ b/doc/sphinx/props/P_M_ATTR_MOD.rst
@@ -0,0 +1,64 @@
+P_M_ATTR_MOD
+============
+
+NAME
+----
+::
+
+    P_M_ATTR_MOD                  "magic_attributes_modifier"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mapping, das die Attribute des Spielers veraendert, der diese Ruestung
+    bzw. Waffe traegt bzw. benutzt.
+
+    Zu beachten:
+    P_M_ATTR_MOD kann problemlos durch ein SetProp() gesetzt werden. Es wird
+    nur dann beruecksichtigt, wenn die Ruestung/Waffe getragen/benutzt wird.
+    Beim Tragen/Ausziehen/Zuecken/Wegstecken wird im Spieler automatisch
+    UpdateAttributes() aufgerufen.
+
+    Fuer Krankheiten etc. oder Objekte, deren *Besitz* allein schon die
+    Attribute veraendern sollen, verwendet man besser P_X_ATTR_MOD.
+
+    P_X_ATTR_MOD und P_M_ATTR_MOD duerfen einen gemeinsamen kumulierten
+    positiven Grenzwert nicht ueberschreiten. Dieser Grenzwert,
+    CUMULATIVE_ATTR_LIMIT, ist in /sys/living/attributes.h definiert.
+
+BEMERKUNGEN
+-----------
+::
+
+    Die Werte sollten moeglichst nicht dynamisch geaendert werden.
+    Wenn doch, muss mit TestLimitViolation() am Spieler auf Validitaet
+    geprueft und ggf. mit UpdateAttributes() an ihm upgedatet werden.
+
+BEISPIELE
+---------
+::
+
+    // Dem Spieler, der das Objekt benutzt, wird 2 von A_INT abgezogen und
+    // dafuer 1 auf A_STR aufaddiert.
+    SetProp(P_M_ATTR_MOD, ([A_INT:-2, A_STR:1]) );
+
+SIEHE AUCH
+----------
+::
+
+    QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+    SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+    SetTimedAttrModifier(), QueryTimedAttrModifier(),
+    DeleteTimedAttrModifier(),
+    P_X_HEALTH_MOD, P_M_HEALTH_MOD, P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
+    P_TIMED_ATTR_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
+02.02.2016, Gloinson
+
diff --git a/doc/sphinx/props/P_M_HEALTH_MOD.rst b/doc/sphinx/props/P_M_HEALTH_MOD.rst
new file mode 100644
index 0000000..d04d0d7
--- /dev/null
+++ b/doc/sphinx/props/P_M_HEALTH_MOD.rst
@@ -0,0 +1,64 @@
+P_M_HEALTH_MOD
+==============
+
+NAME
+----
+::
+
+     P_M_HEALTH_MOD                  "magic_health_modifier"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mapping, mit dem die maximalen Lebenspunkte und Magiepunkte eines 
+     Spielers veraendert werden, der diese Ruestung/Waffe traegt/benutzt. Im 
+     Gegensatz zu P_M_ATTR_MOD erfolgt hier jedoch keine Blockade.
+
+     Zu beachten: P_M_HEALTH_MOD kann problemlos durch ein SetProp() gesetzt 
+     werden, es wird nur beruecksichtigt, wenn die Ruestung/Waffe 
+     getragen/benutzt wird. Beim tragen/ausziehen/zuecken/wegstecken wird im 
+     Spieler automatisch UpdateAttributes() aufgerufen.
+
+     Fuer Krankheiten etc. verwendet man besser die Property P_X_HEALTH_MOD.
+
+     Bitte beachten: Die positiven Modifier werden nicht mehr 1:1 auf die
+     Lebens- und Magiepunkte draufaddiert. Stattdessen wird nur noch ein 
+     gewisser Teil dort hinzuaddiert, der mit groesserer Menge von Punkten
+     zunimmt, und im unteren Bereich grob dem Wert entspricht. Das 
+     theoretische Maximum ist insgesamt 149.
+
+BEMERKUNGEN
+-----------
+::
+
+     Die Werte sollten moeglichst nicht dynamisch geaendert werden.
+     Wenn doch, muss mit TestLimitViolation() am Spieler auf Validitaet 
+     geprueft werden und mit UpdateAttributes() an ihm ggf. upgedatet.
+
+BEISPIEL
+--------
+::
+
+     SetProp(P_M_HEALTH_MOD,([P_HP:5,P_SP:-5]));
+     // Dem Spieler, der das Objekt benutzt, wird P_MAX_HP um 5 erhoeht und
+     // P_MAX_SP um 5 erniedrigt.
+
+SIEHE AUCH
+----------
+::
+
+     P_X_HEALTH_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, balance
+
+LETZTE AeNDERUNG
+----------------
+::
+
+    Fre,11.05.2007, 00:20 von Humni
+
diff --git a/doc/sphinx/props/P_NAME.rst b/doc/sphinx/props/P_NAME.rst
new file mode 100644
index 0000000..a50981f
--- /dev/null
+++ b/doc/sphinx/props/P_NAME.rst
@@ -0,0 +1,85 @@
+P_NAME
+======
+
+NAME
+----
+::
+
+     P_NAME "name"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/description.h>
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Property wird der Name eines Objektes vermerkt. Wenn der Name
+     regelmaessig dekliniert wird, reicht ein einfacher String. Wird der
+     Name unregelmaessig dekliniert, so kann man ein Array von vier Strings
+     mit dem Namen im Nominativ, Genitiv, Dativ und Akkusativ (in dieser
+     Reihenfolge) angeben.
+
+     Die Funktion name() behandelt recht viele Sonderfaelle; man sollte den
+     Namen also erst einmal in der Form eines einzelnen Strings pruefen.
+
+     Eine Sonderrolle nehmen Unit-Objekte ein: Hier kann man einen Namen
+     fuer den Singular und einen Namen fuer den Plural vergeben.
+
+     Setzt man P_NAME eines Unit-Objekts auf einen einfachen String, so wird
+     dieser als Name sowohl im Singular als auch im Plural verwendet.
+
+     Uebergibt man ein Array von Strings, so wird der erste Eintrag fuer den
+     Singular und der zweite Eintrag fuer den Plural benutzt.
+
+     Bei Unit-Objekten ist es nicht moeglich, auch noch zwischen den
+     verschiedenen Faellen zu unterscheiden.
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Property sollte nur den reinen Namen enthalten; will man dem
+     Namen noch Adjektive voranstellen, so sollte man dies mit P_NAME_ADJ
+     bewerkstelligen, also statt
+
+     SetProp(P_NAME, ({ "alter Hut", "alten Huts",
+                        "alten Hut", "alten Hut" }) );
+
+     besser
+
+     SetProp(P_NAME, "Hut");
+     SetProp(P_NAME_ADJ, "alt");
+
+     Bei Lebewesen wird lower_case(P_NAME) (bei Arrays das erste Element 
+     daraus) automatisch als LivingName gesetzt.
+
+BEISPIELE
+---------
+::
+
+     Ein regelmaessig deklinierbarer Name:
+
+     SetProp(P_NAME, "Arkshat");
+
+     Hier ein Beispiel fuer einen unregelmaessig deklinierbaren Namen:
+
+     SetProp(P_NAME, ({ "Drache", "Drachen", "Drachen", "Drachen" }));
+
+     Und schliesslich der Name eines allseits bekannten Unit-Objektes:
+
+     SetProp(P_NAME, ({ "Muenze", "Muenzen" }));
+
+SIEHE AUCH
+----------
+::
+
+     /std/thing/description.c, name(), P_NAME_ADJ, set_living_name(),
+     find_living(), find_livings()
+
+
+Last modified: 19. Okt. 2015, Arathorn. 
+
diff --git a/doc/sphinx/props/P_NAME_ADJ.rst b/doc/sphinx/props/P_NAME_ADJ.rst
new file mode 100644
index 0000000..815c9a6
--- /dev/null
+++ b/doc/sphinx/props/P_NAME_ADJ.rst
@@ -0,0 +1,74 @@
+P_NAME_ADJ
+==========
+
+NAME
+----
+::
+
+     P_NAME_ADJ "name_adj"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/description.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt ein oder mehrere Adjektive in Form eines Arrays
+     von Strings. Es ist nur der Wortstamm anzugeben! Die Adjektive werden
+     von der Funktion name() dekliniert und vor den Namen gesetzt, wirken
+     also als Aufzaehlung von Adjektiven vor dem Namen.
+
+     Die hier angegebenen Adjektive dienen nur zur Ausgabe! Soll sich das
+     Objekt auch ueber Adjektive ansprechen lassen, muss man diese mit
+     AddAdjective() uebergeben.
+
+     Soll das Objekt nur ein einzelnes Namensadjektiv besitzen, kann man dem
+     SetProp()-Aufruf auch einen String uebergeben; gespeichert wird die
+     Property aber in jedem Fall als Array.
+
+     Wenn ein Adjektiv unregelmaessig ist, kann man die vier Faelle auch
+     als Array uebergeben. Man muss dann aber Arrays schachteln, damit von den
+     mehrfachen Adjektiven unterschieden werden kann.
+
+	
+
+BEISPIELE
+---------
+::
+
+     SetProp(P_NAME, "Hut");
+     SetProp(P_NAME_ADJ, "alt");
+
+     name(WESSEN,1)      => "des alten Huts"
+
+
+     // Zwei Adjektive, gleichrangig zu Substantiv
+     SetProp(P_NAME_ADJ, ({"alt", "gammelig"}));
+
+     name(WESSEN,1)      => "des alten, gammeligen Huts"
+
+
+     // Zwei Adjektive, erstes ist Attribut zu zweitem
+     falsch:  SetProp(P_NAME_ADJ, ({"gruen", "gestreift"}));
+              name(WESSEN,1)      => "des gruenen, gestreiften Huts"
+     richtig: SetProp(P_NAME_ADJ, ({"gruen gestreift"}));
+              name(WESSEN,1)      => "des gruen gestreiften Huts"
+
+     // Unregelmaessiges Adjektiv
+     SetProp( P_NAME_ADJ,({({"rosa","rosa","rosa","rosa"})});
+              name(WESSEN,1)         => "des rosa Huts"
+     // Ohne inneres Array haette man 4 mal rosa als Adjektiv
+     // => "des rosaen, rosaen, rosaen, rosaen Huts"
+
+SIEHE AUCH
+----------
+::
+
+     /std/thing/description.c, name(), P_NAME, DeclAdj()
+
+23.April 2007 Rumata
+
diff --git a/doc/sphinx/props/P_NEEDED_QP.rst b/doc/sphinx/props/P_NEEDED_QP.rst
new file mode 100644
index 0000000..3b084e6
--- /dev/null
+++ b/doc/sphinx/props/P_NEEDED_QP.rst
@@ -0,0 +1,31 @@
+P_NEEDED_QP
+===========
+
+NAME
+----
+::
+
+    P_NEEDED_QP                   "needed_qp"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     APs, die man fuer den Seherstatus braucht
+
+     Diese Property ist mittlerweile obsolet. Die
+     aktuell geltenden Seher-Anforderungen stehen in
+     /secure/lepmaster.h
+
+LETZTE AENDERUNG
+----------------
+::
+
+     2006-09-30, Zook.
+
diff --git a/doc/sphinx/props/P_NETDEAD_ENV.rst b/doc/sphinx/props/P_NETDEAD_ENV.rst
new file mode 100644
index 0000000..a87cf51
--- /dev/null
+++ b/doc/sphinx/props/P_NETDEAD_ENV.rst
@@ -0,0 +1,43 @@
+P_NETDEAD_ENV
+=============
+
+NAME
+----
+::
+
+    P_NETDEAD_ENV                  "netdead_env"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property kann in netztoten Spielern abgefragt werden,
+		um herauszufinden, in welchem Raum sie netztot geworden sind.
+
+		Es wird der selbe Wert zurueckgegeben, den die Mudlib benutzen
+		wuerde, um die Spieler beim reconnect wieder an den richtigen
+		ort zu bringen. Das ist normalerweise das Raumobjekt oder der
+		Dateiname des Raums (zum Beispiel so dieser ein clone war).
+
+		Bei nicht netztoten Spielern wird 0 zurueckgegeben.
+
+BEMERKUNGEN
+-----------
+::
+
+    Diese Property ist read-only.
+
+SIEHE AUCH
+----------
+::
+
+    P_NETDEAD_INFO
+
+2009-08-04 Rumata
+
diff --git a/doc/sphinx/props/P_NETDEAD_INFO.rst b/doc/sphinx/props/P_NETDEAD_INFO.rst
new file mode 100644
index 0000000..b1fc201
--- /dev/null
+++ b/doc/sphinx/props/P_NETDEAD_INFO.rst
@@ -0,0 +1,120 @@
+P_NETDEAD_INFO
+==============
+
+NAME
+----
+::
+
+    P_NETDEAD_INFO                "netdead_info"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wird im Raum X gesetzt und wirkt nur, falls dieser Raum ein '#' im
+     object_name() hat (normale Clones, zB "/room/void#10153018").
+
+     
+
+     Bei Einschlafen eines Spielers in diesem Raum werden die Werte aus
+     der Property im Spieler gespeichert (Netztoteninformationen).
+
+     Ist beim Aufwachen des Spielers das Raumobjekt X zerstoert worden, dann
+     wird bei der Blueprint von X per SetProp() die gespeicherte Information
+     gesetzt. Der Rueckgabewert des SetProp wird als Pfad zu einem Ausweich-
+     Aufwach-Raum interpretiert und der Spieler wird in dem Fall dorthin
+     bewegt.
+
+BEMERKUNGEN
+-----------
+::
+
+     Zum Clonen von Raeumen sollten Virtual Compiler benutzt werden:
+     Wird in den erzeugten Objektnamen KEIN '#' verwendet, dann ist diese
+     Property nicht sinnvoll und wird nicht verwendet. Ein ordentlicher
+     VC kann Bewegen eines Spielers in dessen alten, nicht mehr existierenden
+     Raum oder einen Ersatzraum beim Aufwachen selbst loesen.
+
+BEISPIELE
+---------
+::
+
+     // #1: geclonter Raum mit Ausweich-Aufwachraum: Klerus-Gilde
+     #include <properties.h>
+     inherit "/std/room";
+
+     
+
+     void create() {
+       ::create();
+
+       SetProp(P_NETDEAD_INFO, "/gilden/klerus");
+       SetProp(P_LIGHT, 1);
+     }
+
+     
+
+     // #2: komplexerer Beispielraum fuer P_NETDEAD_INFO-Funktionalitaet
+     // Siehe auch: /doc/beispiele/testobjekte/netdead_info_testraum.c
+     #include <properties.h>
+     inherit "/std/room";
+
+     void create() {
+       ::create();
+
+       if (clonep(this_object()))
+         // setze Informationen, die im Netztoten gespeichert werden sollen
+         Set(P_NETDEAD_INFO, random(5));
+       else
+         // Blueprint: hier kann man zu einem Cloneraum gehen
+         AddExit("cloneraum", #'create_room);
+
+       // Set-Method, um die Informationen aus P_NETDEAD_INFO beim Aufwachen
+       // in der Blueprint auswerten zu koennen
+       Set(P_NETDEAD_INFO, #'create_destiny, F_SET_METHOD);
+       SetProp(P_LIGHT, 1);
+     }
+
+     
+
+     // Raum entfernen, normalerweise so KEINE GUTE IDEE!
+     void BecomesNetDead(object pl) {
+       call_out(#'remove, 30);
+     }
+
+     // erzeuge einen Cloneraum und bewege den Spieler dahin
+     int create_room(string dir) {
+       object dest = clone_object(object_name(this_object()));
+       this_player()->move(dest, M_NOCHECK);
+       return 1;
+     }
+
+     
+
+     // Set-Method fuer P_NETDEAD_INFO: gibt Pfad zurueck
+     // benutze die Informationen aus dem jetzt aufwachenden Netztoten, um
+     // einen alternativen Aufwachraum zu ermitteln, da der Einschlafraum
+     // zerstoert ist
+     string create_destiny(mixed val) {
+       if (intp(val)) {
+         switch (val) {
+           case 0:
+             return "/d/ebene/room/PortVain/po_haf1";
+           case 1:
+             return "/gilden/klerus";
+           case 2:
+             return "/gilden/karate";
+           default:
+         }
+         return "/d/ebene/room/waldweg4";
+       }
+     }
+
+2. Jan 2012 Gloinson
+
diff --git a/doc/sphinx/props/P_NEVERDROP.rst b/doc/sphinx/props/P_NEVERDROP.rst
new file mode 100644
index 0000000..3c4b161
--- /dev/null
+++ b/doc/sphinx/props/P_NEVERDROP.rst
@@ -0,0 +1,51 @@
+P_NEVERDROP
+===========
+
+NAME
+----
+::
+
+	P_NEVERDROP			"neverdrop"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+	Objekte, welche diese Property gesetzt haben, werden beim Tod eines
+	Lebewesens nicht automatisch in die Leiche oder in den umgebenden
+	Raum (z.B. bei bei gesetztem P_NOCORPSE) transportiert.
+
+BEMERKUNGEN
+-----------
+::
+
+	Soll das Objekt vom Lebewesen nicht weggelegt werden koennen, so ist
+	die Property P_NODROP zu verwenden.
+	Beide Properties zusammen stellen sicher, dass ein Objekt nicht
+	weitergegeben werden kann.
+
+BEISPIELE
+---------
+::
+
+	Eine dauerhafte Belohnung, die auch beim Tod des Spielers bei ihm
+	verbleiben soll, setzt das so:
+	  SetProp(P_NEVERDROP,1);
+	Sollen auch Reboots ueberstanden werden, ist zusaetzlich
+	P_AUTOLOADOBJ zu setzen.
+
+SIEHE AUCH
+----------
+::
+
+	P_NODROP, P_NOGET, P_NOCORPSE, P_AUTOLOADOBJ, /std/living/life.c
+
+
+Last modified: Thu Jun 14 22:26:29 2001 by Patryn
+
diff --git a/doc/sphinx/props/P_NEVER_CLEAN.rst b/doc/sphinx/props/P_NEVER_CLEAN.rst
new file mode 100644
index 0000000..3d50a4e
--- /dev/null
+++ b/doc/sphinx/props/P_NEVER_CLEAN.rst
@@ -0,0 +1,54 @@
+P_NEVER_CLEAN
+=============
+
+NAME
+----
+::
+
+	P_NEVER_CLEAN			" never clean "                   
+
+DEFINIERT IN
+------------
+::
+
+	/sys/rooms.h
+
+BESCHREIBUNG
+------------
+::
+
+	Normalerweise wird ein Raum nach 2 Resets zerstoert, wenn er waerend
+	dieser Zeit von keinem Lebewesen betreten wurde und wenn
+	keine REFRESH_NONE- oder REFRESH_DESTRUCT-Objekte existieren, die
+	nicht mehr im Raum vorhanden sind.
+	Mit dieser Property kann man den sogenannten Clean-Up unterbinden.
+
+BEISPIEL
+--------
+::
+
+	Der folgende Raum wird nicht mehr zerstoert, wenn er einmal geladen
+	wurde:
+	  #include <properties.h>
+	  // #include <rooms.h> ... wird schon von properties.h included!
+	  inherit "std/room";
+	  void create()
+	  { ::create();
+	    SetProp(P_SHORT,"Ein toller Raum");
+	    ...
+	    SetProp(P_NEVER_CLEAN,1);
+	    ...
+	  }
+	Man sollte die Anwendung nicht uebertreiben! Wichtig ist diese
+	Funktion zum Beispiel fuer Raeume, die gleichzeitig Masterobjekte
+	darstellen.
+
+SIEHE AUCH
+----------
+::
+
+	/std/room.c
+
+
+Last modified: Wed Feb  3 00:54:32 1999 by Patryn
+
diff --git a/doc/sphinx/props/P_NEWSKILLS.rst b/doc/sphinx/props/P_NEWSKILLS.rst
new file mode 100644
index 0000000..066f50c
--- /dev/null
+++ b/doc/sphinx/props/P_NEWSKILLS.rst
@@ -0,0 +1,39 @@
+P_NEWSKILLS
+===========
+
+NAME
+----
+::
+
+	P_NEWSKILLS			"newskills"                   
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	In dieser Property sind saemtliche Skills und Spells vermerkt, die
+	das Lebewesen kennt.
+
+BEMERKUNGEN
+-----------
+::
+
+	Man sollte diese Property nicht per Hand veraendern, sondern die
+	Funktionen von "/std/living/skills.c" nutzen.
+
+SIEHE AUCH
+----------
+::
+
+	ModifySkill(), LearnSkill(), UseSkill(), /std/living/skills.c,
+	P_GUILD_SKILLS, P_SB_SPELLS
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_NEXT_DEATH_SEQUENCE.rst b/doc/sphinx/props/P_NEXT_DEATH_SEQUENCE.rst
new file mode 100644
index 0000000..eb4e85a
--- /dev/null
+++ b/doc/sphinx/props/P_NEXT_DEATH_SEQUENCE.rst
@@ -0,0 +1,68 @@
+P_NEXT_DEATH_SEQUENCE
+=====================
+
+NAME
+----
+::
+
+     P_NEXT_DEATH_SEQUENCE         "p_lib_next_death_sequence"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+     Im Spieler kann damit dessen eigene Todessequenz fuer den naechsten
+     Tod festgelegt werden. Nach einem Tod (egal welche Todessequenz
+     gewaehlt wurde) wird die Property geloescht und muesste neu gesetzt
+     werden.
+
+     Es gibt folgende gueltige Werte:
+     - string: Pfad zu einer eigenen Todessequenz im gueltigen Format
+     - mixed*  Eine Todessequenz im Format des Todesraumes:
+               ({<int gesamtlaenge>,
+                 ([<int index1>: <string umgebrochene Meldung1>,
+                   <int index2>: <string umgebrochene Meldung2>,
+                   ...])
+               })
+     - mapping In die Standard-Lars-Todessequenz einzufuegende Zeilen:
+               ([<int zeitindex>: <string umgebrochener Text>])
+
+BEMERKUNGEN
+-----------
+::
+
+     Eine Todessequenz eines Gegners, festgelegt ueber
+     P_ENEMY_DEATH_SEQUENCE hat Vorrang vor dieser Property.
+
+BEISPIELE
+---------
+::
+
+     // Pfad zu einer eigenen DSQ
+     SetProp(P_NEXT_DEATH_SEQUENCE,  ".../passende_dsq.txt");
+
+     // eigene DSQ im Todesraumformat:
+     SetProp(P_NEXT_DEATH_SEQUENCE,
+             ({ 2, ([1: "Der Tod entlaesst dich eilig.\n"])}));
+
+     // Einfuegen einer Meldung in die Standard-Todessequenz
+     SetProp(P_NEXT_DEATH_SEQUENCE,
+             ([5: "Du fuehlst dich etwas daemlich.\n"]));
+
+SIEHE AUCH
+----------
+::
+
+     Tod:            die(L)
+     Todesmeldungen: P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
+                     P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+     Sonstiges:      P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
+10. Nov 2011 Gloinson
+
diff --git a/doc/sphinx/props/P_NEXT_DISABLE_ATTACK.rst b/doc/sphinx/props/P_NEXT_DISABLE_ATTACK.rst
new file mode 100644
index 0000000..2b2357f
--- /dev/null
+++ b/doc/sphinx/props/P_NEXT_DISABLE_ATTACK.rst
@@ -0,0 +1,52 @@
+P_NEXT_DISABLE_ATTACK
+=====================
+
+PROPERTY
+--------
+::
+
+  P_NEXT_DISABLE_ATTACK    "next_diable_attack"
+
+DEFINIERT IN 
+-------------
+::
+
+  combat.h
+
+BESCHREIBUNG
+------------
+::
+
+  Diese Property gibt an, wann der NPC das naechste Mal paralysiert
+  werden kann. Ueblicherweise wird sie automatisch beim Setzen
+  von P_DISABLE_ATTACK gesetzt. Sie gibt einen Zeitpunkt wie
+  die Funktion time() an, an dem zum ersten Mal wieder Paralyse
+  moeglich ist.
+
+  Will man einen NPC schreiben, der immer paralysierbar ist und nicht erst
+  nach einer gewissen Wartezeit nach der letzten Paralyse, laesst sich dies
+  durch eine Set-Methode auf P_NEXT_DISABLE_ATTACK erreichen:
+
+    
+
+  Set(P_NEXT_DISABLE_ATTACK, function int () {return 0;}, F_SET_METHOD);
+
+  Diese Set-Methode verhindert das Setzen von P_NEXT_DISABLE_ATTACK mittels
+  eines SetProp-Aufrufes.
+
+BEMERKUNGEN
+-----------
+::
+
+  Die Zeit zum Schutz vor erneuter Paralyse existiert absichtlich. Bitte
+  waegt sorgfaeltig ab, bevor ihr diese Property an Gegnern/Spielern
+  manipuliert.
+
+SIEHE AUCH
+----------
+::
+
+  P_DISABLE_ATTACK
+
+21.Jul 2014 Gloinson
+
diff --git a/doc/sphinx/props/P_NOBUY.rst b/doc/sphinx/props/P_NOBUY.rst
new file mode 100644
index 0000000..fc880f0
--- /dev/null
+++ b/doc/sphinx/props/P_NOBUY.rst
@@ -0,0 +1,23 @@
+P_NOBUY
+=======
+
+NAME
+----
+::
+
+    P_NOBUY                       "nobuy"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn diese Property gesetzt ist, wird das Objekt nach einem
+     Verkauf im Laden zerstoert, damit es nicht wieder von einem Spieler
+     gekauft werden kann.
+
diff --git a/doc/sphinx/props/P_NOCORPSE.rst b/doc/sphinx/props/P_NOCORPSE.rst
new file mode 100644
index 0000000..cf45f20
--- /dev/null
+++ b/doc/sphinx/props/P_NOCORPSE.rst
@@ -0,0 +1,52 @@
+P_NOCORPSE
+==========
+
+NAME
+----
+::
+
+	P_NOCORPSE			"nocorpse"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property ist gesetzt, wenn im Todesfall kein Leichnam
+	automatisch erzeugt werden soll.
+
+BEMERKUNGEN
+-----------
+::
+
+	In diesem Fall wird die Property P_CORPSE ignoriert, mit der man
+	ein spezielles Leichenobjekt angeben kann, sofern nicht die
+	Standardleiche "/std/corpse.c" verwendet werden soll.
+	Da die Moerdermeldungen ueber ebendiese Objekt laufen, werden
+	hierbei auch keine ausgegeben.
+
+BEISPIELE
+---------
+::
+
+	Das Lebewesen soll keine Leiche hinterlassen, weil es zu Staub
+	zerfaellt:
+	  SetProp(P_DIE_MSG," zerfaellt zu Staub!\n");
+	  SetProp(P_NOCORPSE,1)
+	Es wurde auch gleich die Sterbemeldung dementsprechend gesetzt.
+
+SIEHE AUCH
+----------
+::
+
+	P_CORPSE, P_ZAP_MSG, P_DIE_MSG, P_MURDER_MSG, P_KILL_MSG,
+	P_NEVERDROP, /std/corpse.c
+
+
+Last modified: Thu Jun 14 22:26:29 2001 by Patryn
+
diff --git a/doc/sphinx/props/P_NODRINK_MSG.rst b/doc/sphinx/props/P_NODRINK_MSG.rst
new file mode 100644
index 0000000..82a4798
--- /dev/null
+++ b/doc/sphinx/props/P_NODRINK_MSG.rst
@@ -0,0 +1,51 @@
+P_NODRINK_MSG
+=============
+
+NAME
+----
+::
+
+     P_NODRINK_MSG                 "std_food_nodrink_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Konsumenten, wenn versucht wird, ein Nicht-Getraenk
+     zu trinken. Sobald eine Speise einen Wert in P_FOOD setzt, gilt es als
+     Nicht-Getraenk.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "@WEN1 kann man nicht trinken!"
+
+SIEHE AUCH
+----------
+::
+
+     P_FOOD, P_DRINK, wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_NODROP.rst b/doc/sphinx/props/P_NODROP.rst
new file mode 100644
index 0000000..8c3102f
--- /dev/null
+++ b/doc/sphinx/props/P_NODROP.rst
@@ -0,0 +1,61 @@
+P_NODROP
+========
+
+NAME
+----
+::
+
+	P_NODROP			"nodrop"                      
+
+DEFINIERT IN
+------------
+::
+
+	/sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+	Ist diese Property in einem Objekt gesetzt, so kann ein Lebewesen
+	das Objekt nicht weglegen.
+	Als Standardmeldung kommt in diesem Fall beispielsweise:
+	  Du kannst <Objektname> nicht wegwerfen!
+	  Du kannst <Objektname> nicht weggeben.
+	Man kann auch eine alternative Meldung angeben, wobei selbstaendig
+	auf einen korrekten Zeilenumbruch zu achten ist.
+
+BEMERKUNGEN
+-----------
+::
+
+	Soll ein Objekt beim Tod des Lebewesens oder bei Ende eines Spielers
+	nicht in der Leiche bzw. im Raum zurueckgelassen werden, so ist
+	die Property P_NEVERDROP zu nutzen.
+	Beide Properties zusammen stellen sicher, dass ein Objekt nicht
+	weitergegeben werden kann.
+
+BEISPIELE
+---------
+::
+
+	Ein schwer zu erkaempfender Dolch koennte folgendes beinhalten,
+	um nicht weitergegeben werden zu koennen:
+	  SetProp(P_NODROP,1);
+	Informativer jedoch ist eine eigene Meldung:
+	  SetProp(P_NODROP,
+	 "Den Dolch hast Du Dir hart erkaempft, nicht wegwerfen!\n");
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_NOGET, P_NEVERDROP, P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG,
+                 P_TOO_MANY_MSG, P_NOINSERT_MSG, P_NOLEAVE_MSG,  
+     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+                 P_WEAR_MSG, P_WIELD_MSG
+     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
+
+Last modified: Thu Jun 14 22:26:29 2001 by Patryn
+
diff --git a/doc/sphinx/props/P_NOFOOD_MSG.rst b/doc/sphinx/props/P_NOFOOD_MSG.rst
new file mode 100644
index 0000000..3276983
--- /dev/null
+++ b/doc/sphinx/props/P_NOFOOD_MSG.rst
@@ -0,0 +1,51 @@
+P_NOFOOD_MSG
+============
+
+NAME
+----
+::
+
+     P_NOFOOD_MSG                  "std_food_nofood_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung an den Konsumenten, wenn versucht wird, ein Getraenk zu essen.
+     Sobald eine Speise keinen Wert in P_FOOD und einen Wert in P_DRINK
+     setzt, gilt es als Getraenk.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "@WEN1 kann man nicht essen!"
+
+SIEHE AUCH
+----------
+::
+
+     P_FOOD, P_DRINK, wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_NOGET.rst b/doc/sphinx/props/P_NOGET.rst
new file mode 100644
index 0000000..9e231fd
--- /dev/null
+++ b/doc/sphinx/props/P_NOGET.rst
@@ -0,0 +1,50 @@
+P_NOGET
+=======
+
+NAME
+----
+::
+
+	P_NOGET				"noget"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+	Ist diese Property in einem Objekt gesetzt, so kann ein Lebewesen
+	das Objekt nicht nehmen.
+	Als Standardmeldung kommt in diesem Fall beispielsweise:
+	  Du kannst <Objektname> nicht nehmen.
+	  Du kannst <Objektname> so nirgendwo reinstecken.
+	Man kann auch eine alternative Meldung angeben, wobei selbstaendig
+	auf einen korrekten Zeilenumbruch zu achten ist.
+
+BEISPIELE
+---------
+::
+
+	Ein Objekt, welches fest im Raum verankert ist, kann natuerlich
+	nicht entfernt werden, z.B. ein angebundenes Seil:
+	  SetProp(P_NOGET,"Das Seil ist fest am Baum verknotet!\n");
+	In einem Kommando zum Losknoten koennte man die Property dann
+	loeschen, um ein Wegnehmen zu ermoeglichen.
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_NODROP, P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG,
+                 P_TOO_MANY_MSG, P_NOINSERT_MSG, P_NOLEAVE_MSG 
+     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+                 P_WEAR_MSG, P_WIELD_MSG
+     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
+
+Last modified: Thu Jun 14 22:26:29 2001 by Patryn
+
diff --git a/doc/sphinx/props/P_NOINSERT_MSG.rst b/doc/sphinx/props/P_NOINSERT_MSG.rst
new file mode 100644
index 0000000..f7e510b
--- /dev/null
+++ b/doc/sphinx/props/P_NOINSERT_MSG.rst
@@ -0,0 +1,65 @@
+P_NOINSERT_MSG
+==============
+
+NAME
+----
+::
+
+    P_NOINSERT_MSG                      "noinsert_msg"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn
+     jemand versucht, ein Objekt in einen Behaelter zu bewegen und der
+     Behaelter dieses im PreventInsert() verhindert.
+     Die Property ist im Zielbehaelter zu setzen.
+     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+     so wird die Standardmeldung ausgegeben.
+     ("<Objekt> kannst Du dort nicht hineinstecken.")
+     Der String in der Property wird noch durch replace_personal()
+     verarbeitet, das zu bewegende Objekt wird als erstes, der Zielbehaelter
+     als zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
+     umgebrochen.
+     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+     ganz.
+
+BEISPIELE
+---------
+::
+
+     1. Ein Kochtopf laesst im PreventInsert nur bestimmte Objekte zu, die zu
+     einer Suppe gehoeren. Fuer eine passende Meldung wird im Topf jetzt die
+     Property gesetzt:
+     SetProp(P_NOINSERT_MSG, "Du kannst @WEN1 nicht in den Kochtopf tun, da"
+	                     " gehoeren doch nur Suppenzutaten rein!");
+     Wenn jemand jetzt versucht, eine Muenze reinzustecken, dann wuerde
+     folgende Meldung erscheinen:
+	Du kannst die Muenze nicht in den Kochtopf tun, da gehoeren doch nur
+	Suppenzutaten rein!
+
+     2. Ein Rucksack soll in einer bestimmten Reihenfolge gepackt werden, dazu
+     kann im PreventInsert die Meldung je nach Bedarf gesetzt werden:
+     if (<objekt noch nicht an der Reihe>)
+	SetProp(P_NOINSERT_MSG, "@WEN1 solltest du erst spaeter einpacken.");
+     else if (<objekt schon im Rucksack>)
+	SetProp(P_NOINSERT_MSG, "Aber @WER1 ist doch schon eingepackt!");
+     else ...
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+                 P_NOLEAVE_MSG, P_NODROP, P_NOGET 
+     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+                 P_WEAR_MSG, P_WIELD_MSG
+     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
diff --git a/doc/sphinx/props/P_NOLEAVE_MSG.rst b/doc/sphinx/props/P_NOLEAVE_MSG.rst
new file mode 100644
index 0000000..0518409
--- /dev/null
+++ b/doc/sphinx/props/P_NOLEAVE_MSG.rst
@@ -0,0 +1,52 @@
+P_NOLEAVE_MSG
+=============
+
+NAME
+----
+::
+
+    P_NOLEAVE_MSG                      "noleave_msg"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn
+     jemand versucht, ein Objekt aus einem Behaelter zu entfernen und der
+     Behaelter dieses im PreventLeave() verhindert.
+     Die Property ist im verhindernden Behaelter zu setzen.
+     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+     so wird die Standardmeldung ausgegeben.
+     ("Du kannst <Objekt> nicht nehmen.")
+     Der String in der Property wird noch durch replace_personal()
+     verarbeitet, das zu bewegende Objekt wird als erstes, der verhindernde
+     Behaelter als zweites Objekt angegeben. Danach wird der String auf 78
+     Zeichen umgebrochen.
+     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+     ganz.
+
+BEISPIELE
+---------
+::
+
+     Nur Bierschuettler sollen eine Bierflasche aus einem Kasten nehmen
+     koennen, neben einer entsprechenden Behandlung im PreventLeave setzt man
+     dazu die Property:
+     SetProp(P_NOLEAVE_MSG, "Nur Bierschuettler duerfen das!");
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+                 P_NOINSERT_MSG, P_NODROP, P_NOGET 
+     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+                 P_WEAR_MSG, P_WIELD_MSG
+     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
diff --git a/doc/sphinx/props/P_NOMAGIC.rst b/doc/sphinx/props/P_NOMAGIC.rst
new file mode 100644
index 0000000..9f31acc
--- /dev/null
+++ b/doc/sphinx/props/P_NOMAGIC.rst
@@ -0,0 +1,42 @@
+P_NOMAGIC
+=========
+
+NAME
+----
+::
+
+    P_NOMAGIC                     "nomagic"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Angabe in Prozent, mit welcher Wahrscheinlichkeit Magie fehlschlaegt.
+
+     
+
+     Fuer einen Raum ist es eine generelle Aussage, wie wahrscheinlich ein
+     Spell in ihm fehlschlaegt. Bei NPC zeigt es an, wie wahrscheinlich
+     ein auf ihn gesprochener Spell fehlschlaegt.
+
+BEISPIEL
+--------
+::
+
+     // in einem Raum keine Spells zulassen
+     SetProp(P_NOMAGIC, 100)
+
+SIEHE AUCH
+----------
+::
+
+     Aehnlich:     P_MAGIC_RESISTANCE_OFFSET, SpellDefend
+
+29.Dez 2007 Gloinson
+
diff --git a/doc/sphinx/props/P_NOSELL.rst b/doc/sphinx/props/P_NOSELL.rst
new file mode 100644
index 0000000..e716c37
--- /dev/null
+++ b/doc/sphinx/props/P_NOSELL.rst
@@ -0,0 +1,51 @@
+P_NOSELL
+========
+
+NAME
+----
+::
+
+    P_NOSELL                      "nosell"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn diese Property gesetzt ist, kann das Objekt nicht in einem
+     Laden verkauft werden.
+     Gibt man in der Property einen String an, wird dieser ausgegeben,
+     ansonsten erfolgt eine Meldung "Du kannst <NAME> nicht verkaufen!"
+
+     Diese Meldung beinhaltet auch den Namen des in P_NAME einge-
+     tragenen Besitzer des Ladens. Ist dies nicht gesetzt, wird per
+     default 'Der Haendler' ausgegeben.
+
+BEISPIEL
+--------
+::
+
+     SetProp(P_NOSELL,"Den Schrott behaeltst Du lieber selber.");
+
+     ==> Apu sagt: Den Schrott behaeltst Du lieber selber.
+     ==> Der Haendler sagt: Den Schrott behaeltst Du lieber selber.
+
+     SetProp(P_NOSELL,1);
+
+     ==> Apu sagt: Du kannst <name> nicht verkaufen!
+     ==> Der Haendler sagt: Du kannst <name> nicht verkaufen!
+
+SIEHE AUCH
+----------
+::
+
+     P_NOBUY, P_NODROP, P_KEEPER
+
+
+03.09.2010, Zesstra
+
diff --git a/doc/sphinx/props/P_NO_ASCII_ART.rst b/doc/sphinx/props/P_NO_ASCII_ART.rst
new file mode 100644
index 0000000..5ba9bdc
--- /dev/null
+++ b/doc/sphinx/props/P_NO_ASCII_ART.rst
@@ -0,0 +1,37 @@
+P_NO_ASCII_ART
+==============
+
+NAME
+----
+::
+
+    P_NO_ASCII_ART                   "no_ascii_art"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property kann der Spieler mit dem Befehl "grafik aus" auf
+    1 setzen. Damit zeigt er an, dass er keine ASCII Art sehen moechte.
+
+    Wer ASCII-Art einsetzt, sollte an diesen Stellen die Property 
+    abfragen und textliche Umschreibungen oder Alternativloesungen
+    einbauen.
+
+    
+
+SIEHE AUCH
+----------
+::
+
+    grafik
+
+
+    Letzte Aenderung: 2005-10-18, Zook.   
+
diff --git a/doc/sphinx/props/P_NO_ATTACK.rst b/doc/sphinx/props/P_NO_ATTACK.rst
new file mode 100644
index 0000000..bd2ad4d
--- /dev/null
+++ b/doc/sphinx/props/P_NO_ATTACK.rst
@@ -0,0 +1,99 @@
+P_NO_ATTACK
+===========
+
+NAME
+----
+::
+
+     P_NO_ATTACK "no_attack"
+
+DEFINIERT IN
+------------
+::
+
+     <living/combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn ein NPC nicht angreifbar sein soll (weil er zum Beispiel in einer
+     Gilde oder einer Quest Informationen vermittelt oder aehnlichen), sollte
+     man diese Property auf einen Wert ungleich Null setzen. Sie wird immer
+     abgefragt, wenn ermittelt wird, ob ein Lebewesen prinzipiell angreifbar
+     ist. D.h. auch, dass nach Abfragen von P_NO_ATTACK _nicht_ immer ein
+     Kampf gestartet wird und dass man dabei _nicht_ im Kampf sein muss!
+
+     Gibt man hier einen String an (mit einem Satzzeichen und "\n" abge-
+     schlossen), wird dieser bei direkten Angriffen ausgegeben. Bei anderen
+     Datentypen wird eine Defaultmeldung ausgegeben. Die Defaultmeldung
+     lautet: "<Name> laesst sich nicht angreifen!\n"
+
+     Mit direkten Angriffen sind 'toete <name>' und Angriffszauber gemeint
+     (bzw. alles, was living/life::Kill(), spellbook::TryAttackSpell(),
+     spellbook::TryDefaultAttackSpell() und spellbook::FindEnemyVictim()
+     aufruft).
+
+ACHTUNG
+-------
+::
+
+  1) Zum Thema QueryMethoden auf P_NO_ATTACK
+     Grundsaetzlich legt man entweder eine Query-Methode auf P_NO_ATTACK:
+        Set(P_NO_ATTACK, #'my_no_attack, F_QUERY_METHOD);
+     oder definiert eine Funktion _query_no_attack() im NPC.
+
+     Wie muss nun eine solche Funktion aussehen? Z.B.:
+
+     
+
+     int|string my_no_attack() {
+       if (!objectp(this_player())) return 0;
+       if (opfer==getuid(this_player()) || this_player()==this_object())
+         return(0);
+       return(1); //nicht angreifbar
+     }
+
+     Diese Funktion macht den NPC nun nur fuer den Spieler 'opfer' angreifbar.
+     Stattdessen kann natuerlich auch jede andere Bedingung genutzt werden.
+
+     Aber warum die zweite Bedingung, this_player()==this_object()?
+     Warum sollte der NPC sich selber angreifen duerfen?
+
+     Das liegt an folgenden 2 Dingen:
+
+     1. Kaempfer kriegen bei eingeschaltetem Fokus Probleme, wenn man das 
+     nicht macht. Das liegt an folgendem: Wenn der NPC angreift, ruft er 
+     natuerlich Defend() im Spieler auf. Dieses schaut nach, ob der Spieler 
+     den Skill SK_MAGICAL_DEFENSE hat. Dieser ist bei Kaempfern das Parieren.
+     Dieses schaut nach, ob der Fokus aktiv ist, wenn ja, wird dem 
+     ge'fokus'te Gegner besonders gut ausgewichen. Zu diesem Zweck wird die 
+     Liste der Feind im Raum erstellt mit PresentEnemies() abgerufen. Dieses 
+     fragt aber in allen (potentiellen) Gegnern P_NO_ATTACK ab und beendet 
+     den Kampf mit allen Gegnern, die nicht angreifbar sind. Bei dieser 
+     Abfrage ist jedoch TP==NPC, weil der ja angreift. Wenn er nun 1 
+     zurueckgibt, wird der Kampf an der Stelle beendet. 
+
+     2. Wenn der NPC den Spieler angreift, wird im Spieler InsertEnemy(NPC)
+     aufgerufen. Auch diesem Fall findet die Abfrage von P_NO_ATTACK statt, 
+     da InsertEnemy() ja erstmal rausfinden muss, ob der Gegner angreifbar 
+     ist, bevor er in die Feindliste eingetragen wird. Da der NPC den 
+     Angriff beginnt, ist TP der NPC. Wenn die Query-Methode auf P_NO_ATTACK
+     hier abbricht, wird der NPC nicht in die Feindliste des Spielers 
+     eingetragen. Dann bekaempft der NPC den Spieler, aber der Spieler nicht
+     den NPC.
+
+
+  2) P_NO_ATTACK des NPC wird z.B. beim Kampf eines Kaempfers mit dem NPC 
+     pro Kampfrunde um die 10mal abgerufen. Wenn der Kaempfer nur eine 
+     Attacke macht. Wenn er noch Sonderattacken machen, Spells ausfuehrt, 
+     etc. wird das noch mehr. D.h. was auch immer ihr in der Query-Methode 
+     im NPC macht: 
+     Es sollte schnell sein, jeder Tick an Rechenzeit zaehlt hier xfach!
+
+LETZTE AENDERUNG
+----------------
+::
+
+09.11.2015, Arathorn
+
diff --git a/doc/sphinx/props/P_NO_BAD.rst b/doc/sphinx/props/P_NO_BAD.rst
new file mode 100644
index 0000000..81ff011
--- /dev/null
+++ b/doc/sphinx/props/P_NO_BAD.rst
@@ -0,0 +1,46 @@
+P_NO_BAD
+========
+
+NAME
+----
+::
+
+     P_NO_BAD                      "std_food_no_bad"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Flag, ob die Speise ewig haltbar ist.
+     0: Speise verdirbt nach der Anzahl Sekunden, die in P_LIFETIME
+        angegeben ist bzw. nach einem Reset
+     1: Speise verdirbt nicht
+
+     
+
+     ACHTUNG: Diese Property darf nur in Absprache mit der Balance
+              geaendert werden.
+
+     
+
+DEFAULT
+-------
+::
+
+     Initial ist diese Property auf 0 gesetzt.
+
+SIEHE AUCH
+----------
+::
+
+     /std/food.c, wiz/food
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_NO_GLOBAL_ATTACK.rst b/doc/sphinx/props/P_NO_GLOBAL_ATTACK.rst
new file mode 100644
index 0000000..a77ee9b
--- /dev/null
+++ b/doc/sphinx/props/P_NO_GLOBAL_ATTACK.rst
@@ -0,0 +1,34 @@
+P_NO_GLOBAL_ATTACK
+==================
+
+NAME
+----
+::
+
+     P_NO_GLOBAL_ATTACK "no_global_attack"
+
+DEFINIERT IN
+------------
+::
+
+     <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Setzt man diese Property in einem NPC auf einen Wert ungleich 0, so
+     wird der NPC bei einem "toete alle" nicht angegriffen.
+
+     Damit kann man zB. NPCs, die dem eigenen Schutz dienen (als Folge von
+     Zauberspruechen o.ae.) vor versehentlichen Angriffen schuetzen.
+
+SIEHE AUCH
+----------
+::
+
+     /std/npc.c, P_FRIEND
+
+
+Last modified: Sat May 18 15:26:28 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_NO_PARA_TRANS.rst b/doc/sphinx/props/P_NO_PARA_TRANS.rst
new file mode 100644
index 0000000..59f71d1
--- /dev/null
+++ b/doc/sphinx/props/P_NO_PARA_TRANS.rst
@@ -0,0 +1,30 @@
+P_NO_PARA_TRANS
+===============
+
+NAME
+----
+::
+
+	P_NO_PARA_TRANS				"no_para_trans"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+	Wenn in einem Raum diese Property gesetzt ist, darf dort kein
+	Wechsel in oder aus der Paralellwelt erfolgen. Objekte die so
+	einen Wechsel ermoeglichen sind dafuer verantwortlich diese
+	Property abzufragen.
+
+SIEHE AUCH
+----------
+::
+
+	P_NO_TPORT
+
diff --git a/doc/sphinx/props/P_NO_PLAYERS.rst b/doc/sphinx/props/P_NO_PLAYERS.rst
new file mode 100644
index 0000000..de235ed
--- /dev/null
+++ b/doc/sphinx/props/P_NO_PLAYERS.rst
@@ -0,0 +1,56 @@
+P_NO_PLAYERS
+============
+
+NAME
+----
+::
+
+    P_NO_PLAYERS                     "no_players"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/rooms.h
+
+BESCHREIBUNG
+------------
+::
+
+    Wenn in einem Raum die Property P_NO_PLAYERS auf einen Wert != 0 gesetzt
+    ist, kann dieser von Spielern auf normalem Wege nicht mehr betreten werden.
+    Magier und Testspieler(*) koennen den Raum betreten; Spieler muessen mit
+    M_NOCHECK hineinbewegt werden.
+
+    Auf diese Weise koennen Gebiete, die noch nicht offiziell angeschlossen
+    sind, vor 'unbeabsichtigtem' Betreten durch Spieler geschuetzt werden.
+
+    Moechte man zu einem schon angeschlossenen Gebiet nachtraeglich eine
+    Parallelwelt einbauen, so sollte P_NO_PLAYERS *dringend* in den
+    Parallelweltraeumen gesetzt werden, bis die Parallelwelt ausdruecklich
+    fuer Spieler freigegeben wird. Andernfalls sind alle Parallelweltraeume,
+    zu denen angeschlossene Normalweltraeume mit gleichem Filenamen existieren,
+    automatisch durch Spieler erreichbar!
+
+    (*) Ausschliesslich Testspieler, die auf den Namen eines existierenden
+    Magiers markiert sind, koennen 'geschuetzte' Raeume betreten.
+    Gildentesties werden wie Spieler behandelt.
+
+ANMERKUNG
+---------
+::
+
+    Im Gegensatz zu Bewegungen von Livings wird bei der Bewegung von Gegen-
+    staenden P_NO_PLAYERS nur beim Wechsel der Welt ausgewertet, um z.B. zu
+    verhindern, dass Bumerangs in noch nicht angeschlossene Gebiete fliegen.
+
+    Moechte man in seinem eigenen Gebiet mit Bumerangs o.ae. testen, muss
+    in diesen P_TESTPLAYER gesetzt sein. Das ist zwar eher ein Missbrauch
+    der Property, aber ein Umkompieren vom Werfer war auf Dauer zu teuer. ;-)
+
+SIEHE AUCH
+----------
+::
+
+    P_PARA, move
+
diff --git a/doc/sphinx/props/P_NO_REGENERATION.rst b/doc/sphinx/props/P_NO_REGENERATION.rst
new file mode 100644
index 0000000..9940f13
--- /dev/null
+++ b/doc/sphinx/props/P_NO_REGENERATION.rst
@@ -0,0 +1,53 @@
+P_NO_REGENERATION
+=================
+
+NAME
+----
+::
+
+     P_NO_REGENERATION    "no_regeneration"
+
+DEFINIERT IN
+------------
+::
+
+     <living/life.h> und <health.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Durch das Setzen dieser Property kann man verhindern, das ein Lebewesen
+     sich regeneriert.
+     Es gibt sieben moegliche Werte, die man durch verodern kombinieren
+     kann:
+     NO_REG_HP        : es werden keine HP regeneriert
+     NO_REG_BUFFER_HP : es werden beim "tanken" keine HP regeneriert
+     NO_REG_SP        : es werden keine SP regeneriert
+     NO_REG_BUFFER_SP : es werden beim "tanken" keine SP regeneriert
+     NO_REG_ALCOHOL   : der Alkoholspiegel wird nicht gesenkt
+     NO_REG_DRINK     : der Fluessigkeitsspiegel wird nicht gesenkt
+     NO_REG_FOOD      : der Nahrungsspiegel wird nicht gesenkt
+     sowie die Konstante NO_REG, die eine Kombination aller moeglichen
+     Werte darstellt (quasi das groesstmoegliche Uebel ;).
+
+BEISPIELE
+---------
+::
+
+     Dieses Lebewesen heilt nur beim "tanken" in der Kneipe, ansonsten
+     nicht:
+
+     
+
+     SetProp( P_NO_REGENERATION, NO_REG_HP|NO_REG_SP );
+
+SIEHE AUCH
+----------
+::
+
+     /std/living/life.c
+
+
+Last modified: 14-05-2001 by Mupfel
+
diff --git a/doc/sphinx/props/P_NO_SCORE.rst b/doc/sphinx/props/P_NO_SCORE.rst
new file mode 100644
index 0000000..b61c75a
--- /dev/null
+++ b/doc/sphinx/props/P_NO_SCORE.rst
@@ -0,0 +1,73 @@
+P_NO_SCORE
+==========
+
+NAME
+----
+::
+
+     P_NO_SCORE               "no_score"
+
+DEFINIERT IN
+------------
+::
+
+     /secure/scoremaster.h
+
+BESCHREIBUNG
+------------
+::
+
+     Die Property stellt ein Flag innerhalb von Lebewesen dar, welches
+     standardmaessig nicht gesetzt ist. In diesem Fall werden
+     Erstkillstufenpunkte an den Angreifer vergeben, sofern er ein Opfer
+     toetet.
+
+     Innerhalb eines Teams koennen Erstkillstufenpunkte auch an
+     Mitglieder vergeben werden, die das Lebewesen nicht selbst getoetet
+     haben. Voraussetzung hierfuer ist, dass derjenige, der den letzten
+     Schlag ausfuehrte, den Kill schon hat. Danach werden Mitglieder des
+     Teams gesucht, welche den Kill noch nicht haben und in der Formation
+     moeglichst weit vorne stehen.
+
+     Mit der gesetzten Property P_NO_SCORE im Opfer erreicht man nun,
+     dass diese Gutschrift fuer den/die Angreifer unterbunden wird.
+
+BEISPIEL
+--------
+::
+
+     Folgendermassen unterbindet man die Vergabe von
+     Erstkillstufenpunkten fuer den Tod eines NPC's:
+
+       include "/secure/scoremaster.h"
+       inherit "std/npc";
+       void create() {
+         ::create();
+         ...
+         SetProp(P_NO_SCORE,1);
+       }
+
+     Damit kann P_XP einen Wert haben, der eigentlich zum automatischen
+     Eintragen von Erstkillstufenpunkten fuer ein Lebewesen fuehrt, und
+     trotzdem wird dieser Eintrag nicht vorgenommen.
+     Sinnvoll ist dies insbesondere bei Lebewesen, die nicht jeder
+     Spieler erreichen kann (man moechte doch eine gewisse
+     Chancengleichheit fuer das Erreichen von Stufenpunkten bieten).
+
+BEMERKUNGEN
+-----------
+::
+
+     Auch die Vergabe von Erfahrungspunkten kann explizit unterbunden
+     werden. Hierfuer gibt es die aehnlich geartete Property P_NO_XP.
+
+SIEHE AUCH
+----------
+::
+
+     Funktionen:  GiveKillScore(), do_damage()
+     Verwandt:    P_NO_XP
+     Sonstiges:   P_XP
+
+14.Feb 2007 Gloinson
+
diff --git a/doc/sphinx/props/P_NO_STD_DRINK.rst b/doc/sphinx/props/P_NO_STD_DRINK.rst
new file mode 100644
index 0000000..926de9c
--- /dev/null
+++ b/doc/sphinx/props/P_NO_STD_DRINK.rst
@@ -0,0 +1,38 @@
+P_NO_STD_DRINK
+==============
+
+NAME
+----
+::
+
+	P_NO_STD_DRINK			"no_std_drink"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/pub.h
+
+BESCHREIBUNG
+------------
+::
+
+        Durch setzen dieser Property in einer Kneipe sorgt man dafuer, dass 
+        "Standard-Drinks" (z.B. Gluehwein im Dezember) nicht in das Menue
+        der Kneipe aufgenommen werden.
+
+BEMERKUNGEN
+-----------
+::
+
+        Keine.
+
+SIEHE AUCH
+----------
+::
+
+	/std/room/pub.c
+
+
+Last modified: Sat Mar 04 22:42:00 2000 by Paracelsus
+
diff --git a/doc/sphinx/props/P_NO_TPORT.rst b/doc/sphinx/props/P_NO_TPORT.rst
new file mode 100644
index 0000000..5161f0f
--- /dev/null
+++ b/doc/sphinx/props/P_NO_TPORT.rst
@@ -0,0 +1,30 @@
+P_NO_TPORT
+==========
+
+NAME
+----
+::
+
+    P_NO_TPORT                    "tport"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Kann folgende Werte annnehmen (definiert in moving.h):
+     NO_TPORT_IN	= Man kann nicht in den Raum hinein teleportieren.
+     NO_TPORT_OUT = Man kann nicht aus dem Raum hinaus teleportieren.
+     NO_TPORT	= Weder noch.
+
+SIEHE AUCH
+----------
+::
+
+	P_NO_PARA_TRANS
+
diff --git a/doc/sphinx/props/P_NO_TRAVELING.rst b/doc/sphinx/props/P_NO_TRAVELING.rst
new file mode 100644
index 0000000..be63938
--- /dev/null
+++ b/doc/sphinx/props/P_NO_TRAVELING.rst
@@ -0,0 +1,50 @@
+P_NO_TRAVELING
+==============
+
+NAME
+----
+::
+
+    P_NO_TRAVELING                   "no_traveling"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+    Hier steht der allgemeine reise-Befehl nicht zur Verfuegung.
+
+BEMERKUNGEN
+-----------
+::
+
+    P_NO_TRAVELING wird in Transportern gesetzt wenn Spieler ihn 
+    nicht mehr 'automatisch' mittels des 'reise'-Befehls betreten
+    koennen sollen.
+
+    Sie bekommen in dem Transporter und in den Zielraeumen auch 
+    keinerlei Hinweise darauf, wohin sie evtl. reisen koennten.
+
+    
+
+    Standardmaessig ist P_NO_TRAVELING natuerlich 0.
+
+SIEHE AUCH
+----------
+::
+
+    reise
+
+LETZTER AENDERUNG
+-----------------
+::
+
+    Don, 24.01.2002, 10:15:07h von Tilly
+
+    
+
diff --git a/doc/sphinx/props/P_NO_XP.rst b/doc/sphinx/props/P_NO_XP.rst
new file mode 100644
index 0000000..0405a0b
--- /dev/null
+++ b/doc/sphinx/props/P_NO_XP.rst
@@ -0,0 +1,65 @@
+P_NO_XP
+=======
+
+NAME
+----
+::
+
+     P_NO_XP                    "no_xp"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Im Normalfall bekommt man im Kampf gegen einen Gegner fuer Treffer
+     und beim Toeten eine XP-Gutschrift.
+
+     Ist P_NO_XP gesetzt, so erhaelt man keinerlei XP-Gutschriften
+     fuer den Kampf oder den Tod des NPCs.
+
+BEISPIEL
+--------
+::
+
+     Folgendermassen unterbindet man die Vergabe von Erfahrungspunkte
+     fuer den Angriff eines NPC's:
+
+       include "/sys/living/life.h"
+       inherit "std/npc";
+       void create() {
+         ::create();
+         ...
+         SetProp(P_NO_XP,1);
+       }
+
+     Damit kann P_XP trotzdem einen Wert im NPC haben, der
+     Erstkillstufenpunkte fuer Lebewesen automatisch eintraegt!
+
+     Auch fuer das kurzzeitige Unterbinden der Vergabe von
+     Erfahrungspunkten ist diese Property sinnvoller, als P_XP im NPC
+     auf 0 zu setzen.
+
+BEMERKUNGEN
+-----------
+::
+
+     Auch die Vergabe von Erstkillstufenpunkten kann explizit unterbunden
+     werden. Hierfuer gibt es die aehnlich geartete Property P_NO_SCORE.
+
+SIEHE AUCH
+----------
+::
+
+     Funktionen:  AddExp(), DistributeExp(), do_damage()
+     Properties:  P_XP, P_LAST_XP
+     Verwandt:    P_NO_SCORE
+     Sonstiges:   P_TOTAL_WC, create_default_npc()
+
+14.Feb 2007 Gloinson
+
diff --git a/doc/sphinx/props/P_NPC.rst b/doc/sphinx/props/P_NPC.rst
new file mode 100644
index 0000000..9f2b1e3
--- /dev/null
+++ b/doc/sphinx/props/P_NPC.rst
@@ -0,0 +1,21 @@
+P_NPC
+=====
+
+NAME
+----
+::
+
+    P_NPC                         "is_npc"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gesetzt bei Monstern.
+
diff --git a/doc/sphinx/props/P_NPC_FASTHEAL.rst b/doc/sphinx/props/P_NPC_FASTHEAL.rst
new file mode 100644
index 0000000..b9bb65d
--- /dev/null
+++ b/doc/sphinx/props/P_NPC_FASTHEAL.rst
@@ -0,0 +1,40 @@
+P_NPC_FASTHEAL
+==============
+
+NAME
+----
+::
+
+	P_NPC_FASTHEAL			"npc_fastheal"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/pub.h
+
+BESCHREIBUNG
+------------
+::
+
+        Durch setzen dieser Property in einer Kneipe sorgt man dafuer, dass 
+        bei NPCs, die dort "tanken", die Lebens- und Konzentrationspunkte
+        direkt erhoeht werden und nicht, wie bei ungesetzter Property, in
+        die jew. Buffer geschrieben werden.
+
+BEMERKUNGEN
+-----------
+::
+
+        Die Benutzung dieser Property sollte nicht unbedingt zum Standard
+        werden.
+
+SIEHE AUCH
+----------
+::
+
+	/std/room/pub.c
+
+
+Last modified: Wed Sep 29 13:58:00 1999 by Paracelsus
+
diff --git a/doc/sphinx/props/P_NR_HANDS.rst b/doc/sphinx/props/P_NR_HANDS.rst
new file mode 100644
index 0000000..2182ed3
--- /dev/null
+++ b/doc/sphinx/props/P_NR_HANDS.rst
@@ -0,0 +1,46 @@
+P_NR_HANDS
+==========
+
+NAME
+----
+::
+
+     P_NR_HANDS "nr_hands"
+
+DEFINIERT IN
+------------
+::
+
+     <weapon.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Wieviele Haende muss man frei haben, um die Waffe zuecken oder den
+     Schild tragen zu koennen?
+     Dieser Wert muss mindestens 1 betragen!
+
+     Sollen Spieler die Waffe benutzen koennen, so sind hier nur die Werte 1
+     und 2 moeglich. Falls die Waffe nur von Monstern benutzbar sein soll,
+     kann man hier auch hoehere Werte eintragen (dazu muss man beim Monster
+     P_MAX_HANDS entsprechend hoch setzen). Als Beispiel sei hier nur das
+     vierhaendige Schwert aus dem Friedhof genannt.
+
+     Defaultmaessig sind alle Waffen Zweihaender.
+
+     Diese Property kann auch bei Zaubern benutzt werden, bei denen man eine
+     oder mehrere Haende frei haben muss.
+
+SIEHE AUCH
+----------
+::
+
+     P_HANDS, P_HANDS_USED_BY
+     P_MAX_HANDS, P_USED_HANDS, P_FREE_HANDS
+     UseHands, FreeHands
+     /std/weapon.c, /std/spellbook.c
+
+
+Last modified: Sun May 19 15:00:02 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_ORAKEL.rst b/doc/sphinx/props/P_ORAKEL.rst
new file mode 100644
index 0000000..ca412f3
--- /dev/null
+++ b/doc/sphinx/props/P_ORAKEL.rst
@@ -0,0 +1,22 @@
+P_ORAKEL
+========
+
+NAME
+----
+::
+
+    P_ORAKEL                      "orakel"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn diese Property gesetzt ist, kann der Wanderer in diesen
+     Raum hinein.
+
diff --git a/doc/sphinx/props/P_ORIG_FILE_NAME.rst b/doc/sphinx/props/P_ORIG_FILE_NAME.rst
new file mode 100644
index 0000000..f7220e1
--- /dev/null
+++ b/doc/sphinx/props/P_ORIG_FILE_NAME.rst
@@ -0,0 +1,21 @@
+P_ORIG_FILE_NAME
+================
+
+NAME
+----
+::
+
+    P_ORIG_FILE_NAME                "original_object_name"               
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     In einer Leiche der Filename des Gestorbenen.
+
diff --git a/doc/sphinx/props/P_ORIG_NAME.rst b/doc/sphinx/props/P_ORIG_NAME.rst
new file mode 100644
index 0000000..8361ae8
--- /dev/null
+++ b/doc/sphinx/props/P_ORIG_NAME.rst
@@ -0,0 +1,21 @@
+P_ORIG_NAME
+===========
+
+NAME
+----
+::
+
+    P_ORIG_NAME                   "original_name"               
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     In einer Leiche der Name des Gestorbenen. (name(RAW))
+
diff --git a/doc/sphinx/props/P_PARA.rst b/doc/sphinx/props/P_PARA.rst
new file mode 100644
index 0000000..aecb22d
--- /dev/null
+++ b/doc/sphinx/props/P_PARA.rst
@@ -0,0 +1,75 @@
+P_PARA
+======
+
+NAME
+----
+::
+
+    P_PARA                        "para"                        
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Nummer der Parallelwelt, in der sich ein Spieler befindet.
+
+    Ist die Property P_PARA auf Null gesetzt, so befindet sich der Spieler in
+    der 'Normalwelt'. Gibt es bei einer Bewegung dieses Spielers mehrere
+    moegliche Zielraeume mit identischem Namen aber unterschiedlichen Endungen
+    'name.c', 'name^1.c', 'name^2.c' etc., so wird der Spieler in den Raum
+    'name.c' bewegt. 
+
+    Wird die Property P_PARA auf einen Wert n>0 gesetzt, so landet der Spieler
+    bei einer Bewegung im Raum 'name^n.c'. Ist kein Raum mit entsprechender
+    Endung vorhanden, wird der Spieler stattdessen in den Normalweltraum
+    bewegt.
+
+    Diese Prop kann auch in einem Virtual Compiler gesetzt werden. In diesem
+    Fall schraenkt sie die Dimensionen ein, in denen der VC Objekte erzeugt.
+    Die Prop kann eine einzelne Ziffer (Int) oder ein Array von Ints 
+    aufnehmen, dann ist der VC fuer alle angegeben Dimensionen zustaendig. 
+    Ein leeres Array erlaubt gar keine Para-Objekte.
+
+ANMERKUNG
+---------
+::
+
+    Die Endung '^0' kennzeichnet _nicht_ die Normalwelt. So lange kein Ausgang
+    explizit auf den Raum 'name^0.c' verweist, wird kein Spieler den Raum
+    betreten koennen. Deshalb kann man die Endung '^0' z.B. dazu benutzen, um
+    eigene Standardraeume fuer ein Gebiet zu schreiben, die dann sowohl von
+    den Normal- als auch von den Parallelweltraeumen inheritet werden.
+
+    Raeume mit Endungen '^n.c', bei denen 'n' keine positive ganze Zahl ist,
+    werden nicht beachtet.
+
+    Fuer die Entscheidung, in welchem Raum ein Spieler in Abhaengigkeit von
+    P_PARA landet, ist die Funktion move() zustaendig. Als Magier muss man sich
+    darum nicht gesondert kuemmern. Das heisst aber auch, dass beim Anschluss
+    eines Normalweltraumes automatisch alle in dem Verzeichnis mit gleichem
+    Namen vorhandenen Parallelweltraeume mit angeschlossen werden.
+
+    Sollen einzelne Parallelweltraeume noch nicht angeschlossen werden, so muss
+    in ihnen die Property P_NO_PLAYERS gesetzt werden. Diese Raeume sind dann
+    nur durch Magier und Testspieler zu betreten (und zu testen).
+
+    In Paraweltraeumen liefert P_PARA 'n' zurueck.
+    Man kann also z.B. in NPCs einfach ueber environment()->QueryProp(P_PARA) 
+    abfragen, in welcher Parawelt sich dieser gerade befindet.
+
+SIEHE AUCH
+----------
+::
+
+    P_NO_PLAYERS, move, pararaeume
+
+    
+
+25.Jan 2015 Gloinson
+
diff --git a/doc/sphinx/props/P_PARRY.rst b/doc/sphinx/props/P_PARRY.rst
new file mode 100644
index 0000000..ffda4f8
--- /dev/null
+++ b/doc/sphinx/props/P_PARRY.rst
@@ -0,0 +1,48 @@
+P_PARRY
+=======
+
+NAME
+----
+::
+
+     P_PARRY "parry"
+
+DEFINIERT IN
+------------
+::
+
+     <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property legt fest, inwiefern eine Waffe als Parierwaffe
+     genutzt werden kann. Moegliche Werte:
+
+         PARRY_NOT     Eine reine Angriffswaffe ohne Parierfunktion.
+
+         PARRY_TOO     Eine kombinierte Angriffs- und Parierwaffe.
+
+         PARRY_ONLY    Eine reine Parierwaffe. Diese kann zusaetzlich
+                       zu einer normalen Waffe gezueckt werden.
+
+     Man sollte nur die in <combat.h> definierten Konstanten verwenden.
+
+BEMERKUNGEN
+-----------
+::
+
+     Durch diese Propertie laesst sich _kein_ Parade-Bonus fuer Trves 
+     setzen! Alle Gilden haben etwas davon. Vor Verwendung bitte mit
+     der Objekt-Balance absprechen.
+
+SIEHE AUCH
+----------
+::
+
+     /std/weapon/combat.c
+
+
+Last modified: Sat Jun 01 13:28:45 2001 by Tilly
+
diff --git a/doc/sphinx/props/P_PARRY_WEAPON.rst b/doc/sphinx/props/P_PARRY_WEAPON.rst
new file mode 100644
index 0000000..499bade
--- /dev/null
+++ b/doc/sphinx/props/P_PARRY_WEAPON.rst
@@ -0,0 +1,31 @@
+P_PARRY_WEAPON
+==============
+
+NAME
+----
+::
+
+     P_PARRY_WEAPON "parry_weapon"
+
+DEFINIERT IN
+------------
+::
+
+     <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property gibt an, welche Parierwaffe ein Spieler derzeit
+     gezueckt hat.
+
+SIEHE AUCH
+----------
+::
+
+     /std/weapon/combat.c, /std/living/combat.c
+
+
+Last modified: Sat Jun 26 15:23:00 1999 by Paracelsus
+
diff --git a/doc/sphinx/props/P_PEACE_HISTORY.rst b/doc/sphinx/props/P_PEACE_HISTORY.rst
new file mode 100644
index 0000000..e4e36a5
--- /dev/null
+++ b/doc/sphinx/props/P_PEACE_HISTORY.rst
@@ -0,0 +1,62 @@
+P_PEACE_HISTORY
+===============
+
+NAME
+----
+::
+
+     P_PEACE_HISTORY      "_peace_history"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Prop wird nach Gilden getrennt gespeichet, wie oft das Lebewesen
+    in letzter Zeit befriedet worden ist. Diese Information geht in die
+    Chance auf eine zukuenftige Befriedung ein.
+    Die Zaehler werden im Durchschnitt alle 2700s um 2-3 reduziert.
+    Die Datenstruktur ist ein Array, welches einen Zeitstempel als erstes
+    Element und ein Mapping als zweites enthaelt. Das Mapping enthaelt unter
+    den Gildennamen als Keys den ganzzahligen Zaehler erfolgreicher
+    Befriedungen von Spielern dieser Gilde.
+
+BEMERKUNGEN
+-----------
+::
+
+    * Diese Property sollte niemals direkt geaendert werden. Bitte greift also
+      nur lesend darauf zu. Sollte hiermit Schindluder getrieben werden,
+      werden die Daten vor externer Aenderung geschuetzt.
+    * Die Datenstruktur in dieser Prop kann in Zukunft u.U. geaendert werden.
+      Daher aendert sie am besten auch nicht im eigenen NPC oder seid darauf
+      gefasst, irgendwann Hand anlegen zu muessen.
+    * Die Aktualisierung (auch die Reduktion) findet im Zuge eines
+      QueryPacify() statt, nicht im Reset des Lebewesens.
+
+BEISPIEL
+--------
+::
+
+    In P_PEACE_HISTORY steht:
+    ({1209654597, (["zauberer": 3, "klerus": 4]) })
+    Bei der Berechnung der naechsten Befriede-Chance gehen bei Zauberern also
+    3 erfolgreiche Versuche, bei Klerikern 4 erfolgreiche Versuche ein.
+    Der Zeitwert an erster Stelle des Arrays wird der bei der Berechnung der
+    naechsten Reduktion der Zaehler beruecksichtigt. (Genaues: s. combat.c)
+
+SIEHE AUCH
+----------
+::
+
+     P_PEACE_ACCEPT
+     QueryPacify()
+     /std/living/combat.c
+
+01.05.2008, Zesstra
+
diff --git a/doc/sphinx/props/P_PERM_STRING.rst b/doc/sphinx/props/P_PERM_STRING.rst
new file mode 100644
index 0000000..86a7c20
--- /dev/null
+++ b/doc/sphinx/props/P_PERM_STRING.rst
@@ -0,0 +1,24 @@
+P_PERM_STRING
+=============
+
+NAME
+----
+::
+
+    P_PERM_STRING                 "perm_string"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/comm.h
+
+BESCHREIBUNG
+------------
+::
+
+     Fuer Sprachflueche, Property ist im Spieler-Objekt zu setzen. In dem
+     Objekt, das in P_PERM_STRING gespeichert ist, wird bei Sprachbefehlen
+     permutate_string(str) aufgerufen und der zurueckgegebene String 
+     stattdessen ausgegeben.
+
diff --git a/doc/sphinx/props/P_PICK_MSG.rst b/doc/sphinx/props/P_PICK_MSG.rst
new file mode 100644
index 0000000..e96333e
--- /dev/null
+++ b/doc/sphinx/props/P_PICK_MSG.rst
@@ -0,0 +1,78 @@
+P_PICK_MSG
+==========
+
+NAME
+----
+::
+
+     P_PICK_MSG				"pick_message"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/put_and_get.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mit P_PICK_MSG kann man die Meldung, die man beim Aufnehmen eines
+     Objektes bekommt, modifizieren.
+
+     Folgende Werte sind moeglich:
+
+     o 0
+       Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
+
+     o NO_PNG_MSG       == -1
+       Es wird keinerlei Meldung ausgegeben
+
+     o Ein Array aus Strings
+       Der erste String wird an den Spieler ausgegeben, der zweite
+       (optionale) an den Raum.
+
+       Die Strings werden durch die Funktion replace_personal() geparst.
+	Objekt1 - Spieler
+        Objekt2 - das Objekt, das genommen wird
+
+       Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
+       Raum.
+
+BEISPIEL
+--------
+::
+
+     void create() {
+      ...
+      SetProp( P_SHORT, "Etwas Sand" );
+      SetProp( P_LONG, break_string(
+       "Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));
+
+      SetProp( P_NAME, "Sand" );
+      AddId( ({"sand"}) );
+      SetProp( P_GENDER, MALE );
+
+      SetProp( P_PICK_MSG, ({
+       "Du schaufelst @WEN2 in deine Hand.",
+       "@WER1 schaufelt @WEN2 in eine Hand."}));
+      ...
+     }
+
+     Das ganze fuehrt bei Ugars "nimm sand" zu folgenden
+     Meldungen:
+
+     Ugar: "Du schaufelst den Sand in deine Hand."
+     Raum: "Ugar schaufelt den Sand in eine Hand."
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
+     Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+                 P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET 
+     Sonstiges:  replace_personal(E), pick_obj(L), /std/living/put_and_get.c
+
+14. Maerz 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_PILE_NAME.rst b/doc/sphinx/props/P_PILE_NAME.rst
new file mode 100644
index 0000000..cb801e0
--- /dev/null
+++ b/doc/sphinx/props/P_PILE_NAME.rst
@@ -0,0 +1,22 @@
+P_PILE_NAME
+===========
+
+NAME
+----
+::
+
+    P_PILE_NAME                   "file_name"               
+
+DEFINIERT IN
+------------
+::
+
+    /sys/container/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     In einer Leiche der Name des Gestorbenen im Dativ. (name(WEM))
+     Wird vom Haufen benoetigt.
+
diff --git a/doc/sphinx/props/P_PLAYER_LIGHT.rst b/doc/sphinx/props/P_PLAYER_LIGHT.rst
new file mode 100644
index 0000000..7148267
--- /dev/null
+++ b/doc/sphinx/props/P_PLAYER_LIGHT.rst
@@ -0,0 +1,44 @@
+P_PLAYER_LIGHT
+==============
+
+NAME
+----
+::
+
+    P_PLAYER_LIGHT                       "player_light"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Gibt den Lichtlevel an, mit dem ein Lebewesen sieht, ein Abfragen dieser
+    Property kann z.B. sinnvoll sein wenn man abfragen will ob ein Spieler
+    genug Licht dabei hat um ein bestimmtes Detail untersuchen zu koennen.
+
+    Bitte _nur_ ueber QueryProp auf diese Property zugreifen,
+    da das Lichtlevel ggf. neu berechnet werden muss!
+
+    Ein direktes setzen dieser Property ist NICHT moeglich. Es ist jedoch
+    moeglich entweder eine Closure zu benutzen oder den Wert ueber einen
+    P_LIGHT_MODIFIER zu veraendern.
+
+    Um zu erreichen, das ein NPC Nachtsicht bekommt, gibt es nun 3 Varianten.
+    - eine closure:
+        Set(P_PLAYER_LIGHT, function int () {return 1;} , F_QUERY_METHOD) 
+      dieses bedeutet, dass der NPC in jeder Dunkelheit perfekt sehen kann.
+    - das setzen von einem P_LIGHT_MODIFIER
+    - das benutzen des stdskills. Hierzu schreibt man in das create() des
+      NPCs einfach ein: ModifySkill(SK_NIGHTVISION, 10000);
+
+SIEHE AUCH
+----------
+::
+
+    P_LIGHT_MODIFIER, P_LIGHT, P_TOTAL_LIGHT, P_INT_LIGHT, CannotSee()
+
diff --git a/doc/sphinx/props/P_PLURAL.rst b/doc/sphinx/props/P_PLURAL.rst
new file mode 100644
index 0000000..c246d38
--- /dev/null
+++ b/doc/sphinx/props/P_PLURAL.rst
@@ -0,0 +1,58 @@
+P_PLURAL
+========
+
+NAME
+----
+::
+
+    P_PLURAL                      "plural"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/language.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mit Hilfe von P_PLURAL koennen auch nicht Unit Objekte als Pluralobjekte
+    markiert werden. Bei einem Wert > 1 wird der Wert ausserdem auch noch in
+    den Namen eingefuegt. Sollte man in eigenem Code zulassen wollen, das
+    etwas mit bestimmten Objekten geschieht, dann sollte man die Verben
+    entsprechen konjugieren.
+
+BEMERKUNGEN
+-----------
+::
+
+    Wirkt nicht auf Todesmeldungen -> siehe dafuer P_KILL_MSG
+
+BEISPIELE
+---------
+::
+
+    SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 2);
+    name(WER, 1) -> "die zwei Stiefel"
+
+    SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 1);
+    name(WER, 1) -> "die Stiefel"
+
+    // Ein Beispiel fuer das konjugieren von Verben
+    static int cmd_opfer(string str)
+    {
+       int i;
+       object *obs;
+       notify_fail("Was moechtest Du opfern?\n");
+       if (!str || !sizeof(obs=PL->find_obs(str))) return 0;
+       for (i=sizeof(obs)-1; i>=0; i--)
+          if (obs[i]->QueryProp(P_VALUE)<=0)
+            write(obs[i]->Name(WER)+" "
+                 +(ob->QueryProp(P_PLURAL) ? "sind" : "ist")
+                 +" doch gar nichts wert.\n");
+          else obs[i]->remove();
+    }
+
+26. Juni 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_POISON.rst b/doc/sphinx/props/P_POISON.rst
new file mode 100644
index 0000000..d4700b8
--- /dev/null
+++ b/doc/sphinx/props/P_POISON.rst
@@ -0,0 +1,21 @@
+P_POISON
+========
+
+NAME
+----
+::
+
+    P_POISON                      "poison"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wie stark wir vergiftet sind (0-11)
+
diff --git a/doc/sphinx/props/P_POISON_DELAY.rst b/doc/sphinx/props/P_POISON_DELAY.rst
new file mode 100644
index 0000000..662ed10
--- /dev/null
+++ b/doc/sphinx/props/P_POISON_DELAY.rst
@@ -0,0 +1,27 @@
+P_POISON_DELAY
+==============
+
+NAME
+----
+::
+
+    P_POISON_DELAY                     "poison_delay"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der heart_beats nach denen sich die Giftwirkung erneut 
+     zeigt. Je kleiner der Wert, desto empfindlicher ist das Lebewesen
+     gegen Gift.
+     Aenderungen dieser Property in Spielern beduerfen der Genehmigung
+     des EMs fuer Balance.
+
+     
+
diff --git a/doc/sphinx/props/P_PORTIONS.rst b/doc/sphinx/props/P_PORTIONS.rst
new file mode 100644
index 0000000..5147f61
--- /dev/null
+++ b/doc/sphinx/props/P_PORTIONS.rst
@@ -0,0 +1,42 @@
+P_PORTIONS
+==========
+
+NAME
+----
+::
+
+     P_PORTIONS                    "std_food_portions"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Property steht die Anzahl der Portionen einer Speise.
+     Es duerfen nur Werte > -1 gesetzt werden. Ist diese Property 0,
+     wird die Speise als leer bzw. verbraucht angesehen und kann nicht
+     konsumiert werden.
+
+     
+
+DEFAULT
+-------
+::
+
+     Initial ist diese Property auf 1 gesetzt, die Speise ist also mit
+     einem Bissen/Schluck verbraucht bzw. leer.
+
+SIEHE AUCH
+----------
+::
+
+     /std/food.c, wiz/food
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_POST.rst b/doc/sphinx/props/P_POST.rst
new file mode 100644
index 0000000..b1435bd
--- /dev/null
+++ b/doc/sphinx/props/P_POST.rst
@@ -0,0 +1,83 @@
+P_POST
+======
+
+NAME
+----
+::
+
+	P_POST				"Post"
+
+DEFINIERT IN
+------------
+::
+
+	/mail/post.h
+
+BESCHREIBUNG
+------------
+::
+
+	In dieser Property laesst sich die Versendeerlaubnis von Paketen
+	regeln. Hierbei gibt es zum einen die postlagernden Pakete, die man
+	in einer Post abholen muss, und es gibt die sogenannten
+	Kurierpakete, welche direkt und unmittelbar zugestellt werden.
+	Nicht immer ist es erwuenscht, dass Pakete aus der Ferne in einen
+	Raum geschickt werden duerfen. Dies duerfte insbesondere innerhalb
+	von Gebieten interessant sein, in welche man nur beschraenkt viele
+	Objekte mitfuehren kann. Mit dieser Property nun ist es leicht
+	moeglich, dies zu verbieten. Man kann auch in den Objekten selbst
+	angeben, ob diese per postlagerndem Paket bzw. Kurierpaket
+	verschickt werden duerfen. Dies duerfte zum Beispiel bei Komponenten
+	fuer Spells oder fuer Unique-Objekte interessant sein.
+	Folgende Werte sind moeglich, wobei in Raeumen und Objekten
+	Standardmaessig PP_DEFAULT genutzt wird:
+
+	  PP_FORBIDDEN		-2	// auf jeden Fall verboten
+	  PP_NO_EXPRESS		-1	// Kurierpakete verboten
+	  PP_DEFAULT		 0	// Default
+	  PP_NORMAL_ALLOWED	 1	// postlagernde Pakete erlaubt
+	  PP_ALLOWED		 2	// auf jeden Fall erlaubt
+
+	Raeume, die von /std/post.c abgeleitet wurden, nutzen als Standard
+	natuerlich PP_ALLOWED.
+
+BEISPIEL
+--------
+::
+
+	Um Kurierpakete fuer einen Raum zu verbieten, nutzt man die
+	Funktionalitaet dieser Property folgendermassen:
+
+	  include "/mail/post.h"
+	  ...
+	  void create()
+	  { ::create();
+	    ...
+	    SetProp(P_POST,PP_NO_EXPRESS);
+	    ...
+	  }
+
+	Objekte selbst koennte man folgendermassen aus Paketen verbannen,
+	welche versendet werden sollen:
+
+	  include "/mail/post.h"
+	  ...
+	  void create()
+	  { ::create();
+	    ...
+	    SetProp(P_POST,PP_FORBIDDEN);
+	    ...
+	  }
+
+	In letzterem Fall funktionieren im Gegensatz zum ersten Beispiel
+	auch keine postlagernden Pakete mehr.
+
+SIEHE AUCH
+----------
+::
+
+	/std/post.c, /std/mailcabin.c, /p/service/loco/std/mailcabin.c
+
+
+Last modified: Sun Sep  6 19:34:37 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_POTIONROOMS.rst b/doc/sphinx/props/P_POTIONROOMS.rst
new file mode 100644
index 0000000..c94ec4d
--- /dev/null
+++ b/doc/sphinx/props/P_POTIONROOMS.rst
@@ -0,0 +1,35 @@
+P_POTIONROOMS
+=============
+
+NAME
+----
+::
+
+    P_POTIONROOMS                 "potionrooms"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/potion.h
+
+BESCHREIBUNG
+------------
+::
+
+    Array mit den Nummern der Raeume, in denen der Spieler noch Zauber-
+    traenke hat. Die Freischaltung als bekannt geschieht im Orakel.
+    Die Zuordnung der Raeume und Nummern geschieht im Potionmaster.
+
+    Nur lesbare _query - Property.
+
+SIEHE AUCH
+----------
+::
+
+    Sonstiges: zaubertraenke, /secure/potionmaster.c, /room/orakel.c
+    Verwandt:  FindPotion(), AddKnownPotion(), RemoveKnownPotion(), InList()
+    Props:     P_KNOWN_POTIONROOMS
+
+6.Feb 2016 Gloinson
+
diff --git a/doc/sphinx/props/P_PRAY_ROOM.rst b/doc/sphinx/props/P_PRAY_ROOM.rst
new file mode 100644
index 0000000..183e870
--- /dev/null
+++ b/doc/sphinx/props/P_PRAY_ROOM.rst
@@ -0,0 +1,54 @@
+P_PRAY_ROOM
+===========
+
+NAME
+----
+::
+
+    P_PRAY_ROOM                      "_lib_p_pray_room"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+    Dies ist der Raum, in den der Spieler nach dem Ende der Todessequenz
+    bewegt wird, d.h. ein Raum, wo er beten kann, um einen neuen Koerper zu
+    erhalten.
+    Der Raum muss als String angegeben werden (kein Objekt).
+
+    Diese Property wird im Spieler rebootfest gespeichert.
+
+    Der jeweils gueltige Betraum wird im Spieler mittels QueryPrayRoom()
+    ermittelt. Jede Rasse hat einen Default fuer diese Funktion. Wird die
+    Property auf 0 dgesetzt, wird dieser Default wiederhergestellt.
+
+    Von einer Ueberlagerung mittels Query- oder gar Setmethoden wird
+    abgeraten. Ebenso lasst bitte die Modusbits unveraendert.
+
+    Vor einer Aenderung dieser Property sollte geprueft werden, ob sie 0 ist.
+    Wenn nicht, sollte von einem Setzen der Property abgesehen werden, da dann
+    schon jemand anders den Betraum des Spielers geaendert hat. (Gleiches gilt
+    fuers Loeschen.) Bitte niemals den Inhalt der Property woanders speichern
+    und spaeter zurueckschreiben.
+
+    Eine dauerhafte Aenderung des Betraums des Spielers muss mit dem EM
+    Rassen und dem EM Gilden abgestimmt werden.
+
+SIEHE AUCH
+----------
+::
+
+    QueryPrayRoom(), SetDefaultPrayRoom()
+
+LETZTE AeNDERUNG
+----------------
+::
+
+21.05.2013, Zesstra
+
diff --git a/doc/sphinx/props/P_PREFERED_ENEMY.rst b/doc/sphinx/props/P_PREFERED_ENEMY.rst
new file mode 100644
index 0000000..67c688b
--- /dev/null
+++ b/doc/sphinx/props/P_PREFERED_ENEMY.rst
@@ -0,0 +1,42 @@
+P_PREFERED_ENEMY
+================
+
+NAME
+----
+::
+
+	P_PREFERED_ENEMY		"pref_enemy"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property enthaelt ein Array mit folgenden Eintraegen:
+	  Eintrag 1:      Integerwert zwischen 0 und 100, welcher die
+	                  Wahrscheinlichkeit dafuer angibt, dass ein
+	                  Lebewesen bevorzugt bei einem Angriff gewaehlt
+	                  werden soll.
+	  Eintraege ab 2: Lebewesen, aus welchen per Zufall eines
+	                  ausgewaehlt wird, welches beim aktuellen Angriff
+	                  bevorzugt wird.
+	Es ist zu beachten, dass solch ein bevorzugtes Opfer natuerlich auch
+	wirklich Gegner sein muss und auch im selben Raum zu stehen hat, wie
+	der Angreifer. Ist dies nicht der Fall, wird dann doch irgendein
+	anderer Gegner aus diesem Raum genommen.
+
+SIEHE AUCH
+----------
+::
+
+	QueryPreferedEnemy(), IsEnemy(), SelectEnemy(), Attack(),
+	/std/living/combat.c, /std/living/life.c
+
+
+Last modified: Wed May 26 16:44:38 1999 by Patryn
+
diff --git a/doc/sphinx/props/P_PRESAY.rst b/doc/sphinx/props/P_PRESAY.rst
new file mode 100644
index 0000000..5f55be6
--- /dev/null
+++ b/doc/sphinx/props/P_PRESAY.rst
@@ -0,0 +1,22 @@
+P_PRESAY
+========
+
+NAME
+----
+::
+
+    P_PRESAY                      "presay"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Presay des Spielers. Erscheint vor dem Namen in Kurz/Langbeschreibung.
+     Erscheint auch in name(), also in sag, ruf, teile mit usw.
+
diff --git a/doc/sphinx/props/P_PREVENT_PILE.rst b/doc/sphinx/props/P_PREVENT_PILE.rst
new file mode 100644
index 0000000..54c52ee
--- /dev/null
+++ b/doc/sphinx/props/P_PREVENT_PILE.rst
@@ -0,0 +1,35 @@
+P_PREVENT_PILE
+==============
+
+NAME
+----
+::
+
+    P_PREVENT_PILE                   "prevent_pile"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/container/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Wenn in einem Raum diese Property gesetzt ist, endet das Verwesen einer
+    Leiche damit, dass ihr Inventar in dem Raum verteilt wird. Ist diese
+    Property nicht gesetzt, entsteht ein "Haufen", der das Inventar
+    enthaelt.
+
+    Diese Property sollte nur in Ausnahmefaellen benutzt werden!
+
+    Diese Property ist vor allem fuer "Store-Rooms" gedacht, in denen die
+    Magier die Leiche eines Spieler ablegen und in denen nachher die
+    gesammelten Sachen von einer anderen Stelle aus gesucht werden. In
+    diesem Fall wuerden Spieler sonst die Moeglichkeit haben, einen Haufen
+    als Ganzes zu bekommen, das soll aber *NIE* passieren.
+
+
+Last modified: Tue May 15 13:56:18 CEST 2007 by Rumata
+
diff --git a/doc/sphinx/props/P_PRE_INFO.rst b/doc/sphinx/props/P_PRE_INFO.rst
new file mode 100644
index 0000000..9efed27
--- /dev/null
+++ b/doc/sphinx/props/P_PRE_INFO.rst
@@ -0,0 +1,87 @@
+P_PRE_INFO
+==========
+
+NAME
+----
+::
+
+        P_PRE_INFO                        "npc_pre_info"
+
+DEFINIERT IN
+------------
+::
+
+        /sys/npc.h
+
+BESCHREIBUNG
+------------
+::
+
+        Ist die Property in einem NPC definiert, so wird ihr Ergebnis
+        ausgewertet, bevor eine Frage an das Infosystem uebergeben wird.
+
+        
+
+        Moegliche Werte:
+        - numerischer Wert ungleich 0
+          => der NPC gibt _keinerlei_ Antwort, die Frage fuehrt sozusagen
+             ins Leere
+
+        - Stringwert
+          => wird als Rueckgabe an den Fragenden ausgegeben, umstehende 
+             Personen bekommen den Text:
+            "XY ist nicht gewillt, Spieler YZ zu antworten".
+            Der Fragende selbst bekommt bei angegebenem Stringwert:
+            "XY " + Stringwert.
+
+        - Closure
+          => die Antwort bzw. Reaktion des NPCs obliegt ganz der 
+             angegebenen Closure. Diese muss dabei einen String oder 
+             Ganzzahlen-Wert zurueckgeben
+
+BEISPIEL
+--------
+::
+
+        Ein NPC der manchmal herumrennt, um z.B. eine Aufgabe zu verrichten,
+        koennte so lange Chats abschalten, z.B.
+
+          SetProp(P_CHAT_CHANCE,0); // NPC latscht los
+
+        
+
+        Und eine Weile spaeter:
+
+        
+
+          SetProp(P_CHAT_CHANCE,5); // NPC ruht wieder, quasselt rum
+
+        
+
+        Waehrend des Herumlaufens, also wenn er nicht automatisch schwatzt,
+        soll er auch keinerlei Fragen beantworten:
+
+          
+
+          Set(P_PRE_INFO, function mixed () {
+            return (QueryProp(P_CHAT_CHANCE) ? 0 : 
+              "hat gerade keine Zeit fuer Dich."); 
+            }, F_QUERY_METHOD);
+
+HINWEISE
+--------
+::
+
+        Bitte beachten, dass der interne Name der Property "npc_pre_info" 
+        ist und somit nur das Ueberschreiben von _query_npc_pre_info() 
+        funktioniert. 
+
+SIEHE AUCH
+----------
+::
+
+        AddInfo(), /std/npc/info.c
+
+
+Last modified: 01.03.2016 by Arathorn
+
diff --git a/doc/sphinx/props/P_PROMPT.rst b/doc/sphinx/props/P_PROMPT.rst
new file mode 100644
index 0000000..6345a77
--- /dev/null
+++ b/doc/sphinx/props/P_PROMPT.rst
@@ -0,0 +1,21 @@
+P_PROMPT
+========
+
+NAME
+----
+::
+
+    P_PROMPT                      "prompt"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Das Prompt (Nur fuer Magier).
+
diff --git a/doc/sphinx/props/P_PUB_NOT_ON_MENU.rst b/doc/sphinx/props/P_PUB_NOT_ON_MENU.rst
new file mode 100644
index 0000000..3c278a7
--- /dev/null
+++ b/doc/sphinx/props/P_PUB_NOT_ON_MENU.rst
@@ -0,0 +1,40 @@
+P_PUB_NOT_ON_MENU
+=================
+
+NAME
+----
+::
+
+	P_PUB_NOT_ON_MENU			"pub_not_on_menu"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/pub.h
+
+BESCHREIBUNG
+------------
+::
+
+        In diese Property kann man einen String schreiben, der ausgegeben
+        wird, wenn der Spieler etwas bestellt, was es in der Kneipe nicht
+        gibt.
+
+BEMERKUNGEN
+-----------
+::
+
+        Die Standardmeldung ist:
+        "Tut mir leid, das fuehren wir nicht! Wir sind ein anstaendiges
+         Lokal!\n"
+
+SIEHE AUCH
+----------
+::
+
+	/std/room/pub.c
+
+
+Last modified: Sat Mar 04 22:46:00 2000 by Paracelsus
+
diff --git a/doc/sphinx/props/P_PUB_NO_KEEPER.rst b/doc/sphinx/props/P_PUB_NO_KEEPER.rst
new file mode 100644
index 0000000..20c3d25
--- /dev/null
+++ b/doc/sphinx/props/P_PUB_NO_KEEPER.rst
@@ -0,0 +1,38 @@
+P_PUB_NO_KEEPER
+===============
+
+NAME
+----
+::
+
+	P_PUB_NO_KEEPER				"pub_no_keeper"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/pub.h
+
+BESCHREIBUNG
+------------
+::
+
+        In diese Property kann man einen String schreiben, der ausgegeben
+        wird, wenn der in P_KEEPER eingetragene NPC nicht anwesend ist.
+
+BEMERKUNGEN
+-----------
+::
+
+        Die Standardmeldung ist:
+        "Es ist niemand anwesend, der Dich bedienen koennte.\n"
+
+SIEHE AUCH
+----------
+::
+
+	/std/room/pub.c
+
+
+Last modified: Son Apr 11 19:28:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_PUB_NO_MONEY.rst b/doc/sphinx/props/P_PUB_NO_MONEY.rst
new file mode 100644
index 0000000..31e1b17
--- /dev/null
+++ b/doc/sphinx/props/P_PUB_NO_MONEY.rst
@@ -0,0 +1,40 @@
+P_PUB_NO_MONEY
+==============
+
+NAME
+----
+::
+
+	P_PUB_NO_MONEY				"pub_no_money"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/pub.h
+
+BESCHREIBUNG
+------------
+::
+
+        In diese Property kann man einen String schreiben, der ausgegeben
+        wird, wenn der Spieler nicht ueber genug Geld verfuegt, um das
+        gewuenschte Gericht zu bezahlen.
+        Fuer den Preis kann man ein %d als Platzhalter einfuegen.
+
+BEMERKUNGEN
+-----------
+::
+
+        Die Standardmeldung ist:
+        "Das kostet %d Goldstuecke, und Du hast nicht so viel!\n"
+
+SIEHE AUCH
+----------
+::
+
+	/std/room/pub.c
+
+
+Last modified: Sat Mar 04 22:48:00 2000 by Paracelsus
+
diff --git a/doc/sphinx/props/P_PUB_UNAVAILABLE.rst b/doc/sphinx/props/P_PUB_UNAVAILABLE.rst
new file mode 100644
index 0000000..80cd6ef
--- /dev/null
+++ b/doc/sphinx/props/P_PUB_UNAVAILABLE.rst
@@ -0,0 +1,39 @@
+P_PUB_UNAVAILABLE
+=================
+
+NAME
+----
+::
+
+	P_PUB_UNAVAILABLE			"pub_unavailable"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/pub.h
+
+BESCHREIBUNG
+------------
+::
+
+        In diese Property kann man einen String schreiben, der ausgegeben
+        wird, wenn in einer Kneipe ein Getraenk oder eine Speise nicht mehr
+        vorraetig ist.
+
+BEMERKUNGEN
+-----------
+::
+
+        Die Standardmeldung ist:
+        "Davon ist leider nichts mehr da.\n"
+
+SIEHE AUCH
+----------
+::
+
+	/std/room/pub.c
+
+
+Last modified: Sat Mar 04 22:44:00 2000 by Paracelsus
+
diff --git a/doc/sphinx/props/P_PURSUERS.rst b/doc/sphinx/props/P_PURSUERS.rst
new file mode 100644
index 0000000..24f2b88
--- /dev/null
+++ b/doc/sphinx/props/P_PURSUERS.rst
@@ -0,0 +1,30 @@
+P_PURSUERS
+==========
+
+NAME
+----
+::
+
+    P_PURSUERS                    "pursuers"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     Enthaelt Verfolger - nicht von Hand manipulieren!
+
+SIEHE AUCH
+----------
+::
+
+     AddPursuer(L), RemovePursuer(L)
+
+
+16.06.2016, Arathorn
+
diff --git a/doc/sphinx/props/P_PUT_MSG.rst b/doc/sphinx/props/P_PUT_MSG.rst
new file mode 100644
index 0000000..a86ec40
--- /dev/null
+++ b/doc/sphinx/props/P_PUT_MSG.rst
@@ -0,0 +1,79 @@
+P_PUT_MSG
+=========
+
+NAME
+----
+::
+
+     P_PUT_MSG				"put_message"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/put_and_get.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mit P_PUT_MSG kann man die Meldung, die man beim Hineinstecken eines
+     Objektes in einen Container bekommt, modifizieren.
+
+     Folgende Werte sind moeglich:
+
+     o 0
+       Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
+
+     o NO_PNG_MSG	== -1
+       Es wird keinerlei Meldung ausgegeben
+
+     o Ein Array aus Strings
+       Der erste String wird an den Spieler ausgegeben, der zweite
+       (optionale) an den Raum.
+
+       Die Strings werden durch die Funktion replace_personal() geparst.
+	Objekt1 - Spieler
+        Objekt2 - das Objekt, das irgendwohin gesteckt wird
+	Objekt3 - der Container
+
+       Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
+       Raum.
+
+BEISPIEL
+--------
+::
+
+     void create() {
+      ...
+      SetProp( P_SHORT, "Etwas Sand" );
+      SetProp( P_LONG, break_string(
+       "Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));
+
+      SetProp( P_NAME, "Sand" );
+      AddId( ({"sand"}) );
+      SetProp( P_GENDER, MALE );
+
+      SetProp( P_PUT_MSG, ({
+       "Du laesst @WEN2 in @WENU3 rieseln.",
+       "@WER1 laesst @WEN2 in @WENU3 rieseln."}));
+      ...
+     }
+
+     Das ganze fuehrt bei Ugars "stecke sand in paket" zu folgenden
+     Meldungen:
+
+     Ugar: "Du laesst den Sand in ein Paket rieseln."
+     Raum: "Ugar laesst den Sand in ein Paket rieseln."
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
+     Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+                 P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET 
+     Sonstiges:  replace_personal(E), put_obj(L), /std/living/put_and_get.c
+
+14. Maerz 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_QP.rst b/doc/sphinx/props/P_QP.rst
new file mode 100644
index 0000000..beba199
--- /dev/null
+++ b/doc/sphinx/props/P_QP.rst
@@ -0,0 +1,29 @@
+P_QP
+====
+
+NAME
+----
+::
+
+    P_QP                          "questpoints"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/quest.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der Questpunkte, die ein Spieler hat.
+
+HINWEIS
+-------
+::
+
+     Nur Abfragen der Property mit QueryProp() liefert den korrekten Wert,
+     da eine Quermethode fuer die Auslieferung der Daten sorgt. Query()
+     oder gar QueryProperties() enthalten u.U. einen veralteten Wert.
+
diff --git a/doc/sphinx/props/P_QUALITY.rst b/doc/sphinx/props/P_QUALITY.rst
new file mode 100644
index 0000000..cce352c
--- /dev/null
+++ b/doc/sphinx/props/P_QUALITY.rst
@@ -0,0 +1,58 @@
+P_QUALITY
+=========
+
+NAME
+----
+::
+
+     P_QUALITY "quality"
+
+DEFINIERT IN
+------------
+::
+
+     <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Ruestungen und Waffen koennen im Eifer des Gefechts beschaedigt werden.
+     Setzt man die Property P_QUALITY auf einen Wert n (n>0), so wird
+     eine Waffe (Ruestung) bei jedem n-ten Schlag (Treffer) beschaedigt,
+     d.h. P_WC (P_AC) wird um 1 erniedrigt und P_DAMAGED um 1 erhoeht.
+
+BEISPIEL
+--------
+::
+
+     inherit "/std/weapon";
+
+     ...
+     #include <combat.h>
+
+     create()
+     {
+       ...
+       SetProp(P_QUALITY,200);
+       ...
+     }
+
+     Diese Waffe wuerde bei jedem 200. Schlag etwas beschaedigt.
+
+BEMERKUNG
+---------
+::
+
+     Defaultmaessig ist P_QUALITY auf 0 gesetzt, d.h. die entspr.
+     Waffe/Ruestung wird nicht beschaedigt.
+
+SIEHE AUCH
+----------
+::
+
+     /std/armour.c, /std/weapon.c, TakeFlaw(), QueryFlaw(), Damage()
+
+
+Last modified: Thu May 22 10:42:39 1997 by Paracelsus
+
diff --git a/doc/sphinx/props/P_QUESTS.rst b/doc/sphinx/props/P_QUESTS.rst
new file mode 100644
index 0000000..9f8a61b
--- /dev/null
+++ b/doc/sphinx/props/P_QUESTS.rst
@@ -0,0 +1,21 @@
+P_QUESTS
+========
+
+NAME
+----
+::
+
+    P_QUESTS                      "quests"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/quest.h
+
+BESCHREIBUNG
+------------
+::
+
+     Liste der geloesten Quests.
+
diff --git a/doc/sphinx/props/P_QUEST_ITEM.rst b/doc/sphinx/props/P_QUEST_ITEM.rst
new file mode 100644
index 0000000..4110a03
--- /dev/null
+++ b/doc/sphinx/props/P_QUEST_ITEM.rst
@@ -0,0 +1,76 @@
+P_QUEST_ITEM
+============
+
+NAME
+----
+::
+
+	P_QUEST_ITEM				"quest_item" 
+
+DEFINIERT IN
+------------
+::
+
+	/sys/quest_items.h
+
+BESCHREIBUNG
+------------
+::
+
+        Diese Property gibt an, ob es sich bei dem Objekt um ein Quest-
+	relevantes Objekt handelt.
+
+	
+
+BEISPIEL
+--------
+::
+
+        Ein Schwert (Notung) koennte folgendermassen definiert sein:
+
+	create()
+	{
+	  ::create() ;
+	  SetProp(P_SHORT, "Notung das neidliche Schwert") ;
+	  SetProp(P_LONG, "Das aus seinen Truemmern neu geschmiedete Schwert " 
+	                  "Notung.\n");
+
+	  SetProp(P_NAME, "Notung");
+	  SetProp(P_GENDER, NEUTER);
+	  SetProp(P_ARTICLE,0);
+	  AddId(({"notung","schwert","Notung", "\nNotung"}));
+
+	
+
+	  SetProp(P_WEAPON_TYPE, WT_SWORD);
+	  SetProp(P_DAM_TYPE, DT_BLUDGEON);
+
+	  SetProp(P_QUEST_ITEM,QI_OBJ);
+	  ...
+	}
+
+	    
+
+	Andere Magier koennen nun auf Notung Ruecksicht nehmen, und zum
+	Beispiel davon absehen, es bei einem NPC-Spell zu destructen.
+
+BEMERKUNGEN
+-----------
+::
+
+        Alle questrelevanten Objekte sollten auf diese Weise markiert werden.
+
+	
+
+	Questrelevante Objekte anderer Magier sollten immer mit Vorsicht 
+	behandelt werden.
+
+SIEHE AUCH
+----------
+::
+
+	"/sys/quest_items.h"
+
+
+Last modified: Thu Jul 10 07:08:32 2003 by Vanion
+
diff --git a/doc/sphinx/props/P_RACE.rst b/doc/sphinx/props/P_RACE.rst
new file mode 100644
index 0000000..ba0bde3
--- /dev/null
+++ b/doc/sphinx/props/P_RACE.rst
@@ -0,0 +1,49 @@
+P_RACE
+======
+
+NAME
+----
+::
+
+	P_RACE				"race"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/description.h
+
+BESCHREIBUNG
+------------
+::
+
+	Die Rasse eines Lebewesens kann ueber diese Property ermittelt bzw.
+	gesetzt werden. Es empfiehlt sich hierbei, Rassen nur in Form von
+	grossgeschriebenen Strings zu setzen. Leichen erhalten mittels
+	dieser Property automatisch die Rasse der Lebewesen, aus denen sie
+	hervorgegangen sind.
+	Der Sinn des Ganzen liegt darin, das Spiel differenzierter zu
+	gestalten und auf Rassenspezifika einzugehen. Zum Beispiel koennen
+	Elfen weniger Alkohol vertragen als Zwerge, was in '/std/pub'
+	beruecksichtigt wurde.
+
+BEISPIEL
+--------
+::
+
+	void create()
+	{ ::create();
+	  // Definitionen
+	  SetProp(P_RACE,"Ork");
+	  // weitere Definitionen
+	}
+
+SIEHE AUCH
+----------
+::
+
+	/std/npc.c, /std/pub.c
+
+
+Last modified: Mon Sep 15 21:15:49 2003 by Vanion
+
diff --git a/doc/sphinx/props/P_RACESTRING.rst b/doc/sphinx/props/P_RACESTRING.rst
new file mode 100644
index 0000000..38f7da8
--- /dev/null
+++ b/doc/sphinx/props/P_RACESTRING.rst
@@ -0,0 +1,22 @@
+P_RACESTRING
+============
+
+NAME
+----
+::
+
+    P_RACESTRING                  "racestring"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gibt eine dem Geschlecht angepasste Beschreibung der Rasse zurueck
+     ("Zwerg" oder "Zwergin" etc.)
+
diff --git a/doc/sphinx/props/P_RACE_DESCRIPTION.rst b/doc/sphinx/props/P_RACE_DESCRIPTION.rst
new file mode 100644
index 0000000..edb6575
--- /dev/null
+++ b/doc/sphinx/props/P_RACE_DESCRIPTION.rst
@@ -0,0 +1,21 @@
+P_RACE_DESCRIPTION
+==================
+
+NAME
+----
+::
+
+    P_RACE_DESCRIPTION            "racedescr"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Beschreibung der Vor/Nachteile einer Rasse.
+
diff --git a/doc/sphinx/props/P_RANGE.rst b/doc/sphinx/props/P_RANGE.rst
new file mode 100644
index 0000000..a647147
--- /dev/null
+++ b/doc/sphinx/props/P_RANGE.rst
@@ -0,0 +1,43 @@
+P_RANGE
+=======
+
+NAME
+----
+::
+
+    P_RANGE     "range"
+
+DEFINIERT IN
+------------
+::
+
+    <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+    Legt die Reichweite einer Schusswaffe fest. Ist ein Schuetze in einem
+    Raum mit gueltigem P_TARGET_AREA (andere Raum) oder environment() und
+    ist fuer diesen Raum P_SHOOTING_AREA festgelegt, dann kann er mit seiner
+    Schusswaffe in diesen anderen Raum schiessen, wenn die P_RANGE groesser
+    als P_SHOOTING_AREA ist.
+
+BEISPIELE
+---------
+::
+
+    // Langbogen mit 100 Reichweite
+    SetProp(P_RANGE, 100);
+
+SIEHE AUCH
+----------
+::
+
+    Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
+    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+    Gebiet:    P_SHOOTING_AREA, P_TARGET_AREA
+    Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
+
diff --git a/doc/sphinx/props/P_READ_DETAILS.rst b/doc/sphinx/props/P_READ_DETAILS.rst
new file mode 100644
index 0000000..a068ae3
--- /dev/null
+++ b/doc/sphinx/props/P_READ_DETAILS.rst
@@ -0,0 +1,40 @@
+P_READ_DETAILS
+==============
+
+NAME
+----
+::
+
+    P_READ_DETAILS                "read_details"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mapping mit den Daten der Details, die durch Lesen ermittelt werden
+    koennen.
+
+BEMERKUNGEN
+-----------
+::
+
+    Bitte nur mit den entsprechenden Methoden veraendern!
+
+SIEHE AUCH
+----------
+::
+
+    Setzen:    AddReadDetail()
+    Loeschen:  RemoveReadDetail()
+    Aehnlich:  AddDetail(), P_DETAILS
+    Veraltet:  P_READ_MSG
+    Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
+
diff --git a/doc/sphinx/props/P_READ_NEWS.rst b/doc/sphinx/props/P_READ_NEWS.rst
new file mode 100644
index 0000000..149b2b4
--- /dev/null
+++ b/doc/sphinx/props/P_READ_NEWS.rst
@@ -0,0 +1,21 @@
+P_READ_NEWS
+===========
+
+NAME
+----
+::
+
+    P_READ_NEWS                   "read_news"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Welche Artikel bereits gelesen wurde (frueher: in der MPA)
+
diff --git a/doc/sphinx/props/P_REAL_RACE.rst b/doc/sphinx/props/P_REAL_RACE.rst
new file mode 100644
index 0000000..b8d5936
--- /dev/null
+++ b/doc/sphinx/props/P_REAL_RACE.rst
@@ -0,0 +1,100 @@
+P_REAL_RACE
+===========
+
+NAME
+----
+::
+
+	P_REAL_RACE				"real_race"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/description.h
+
+BESCHREIBUNG
+------------
+::
+
+        Diese Property enthaelt die Rasse des Livings. Sie darf nicht durch 
+	Shadows ueberschrieben werden.
+
+	
+
+	Wirklich interessant ist sie, wenn ein Spieler sich tarnt. Dort kann
+	man mit dieser Property trotz Tarnung feststellen, welche Rasse der
+	Spieler hat.
+
+	Bei NPC enthaelt sie den gleichen Wert wie P_RACE. Wenn P_REAL_RACE
+	allerdings gesetzt wird, kann man damit einen getarnten NPC simu-
+	lieren, da dann P_RACE und P_REAL_RACE voneinander abweichen.
+
+	
+
+BEISPIEL
+--------
+::
+
+        Ein Zwerg mag Zwergenbrot, fuer Elfen ist es giftig. Selbst wenn der
+	Elf sich als Zwerg tarnt, wird ihm durch lembas sicher uebel werden:
+
+        int futter(string arg)
+        {
+          notify_fail("Was willst Du essen?\n");
+          if(!arg || !id(arg)) return 0;
+
+          notify_fail("Du kannst nichts mehr essen.\n");
+          if(!this_player()->eat_food(55)) return 0;
+
+          write("Du isst ein Stueck Zwegenbrot. Du versuchst es zumindest!\n");
+          say(sprintf("%s beisst in ein Stueck Zwergenbrot. Zahnschmerz!!!\n",
+              this_player()->Name()));
+
+
+          switch( this_player()->QueryProp(P_REAL_RACE) )
+          {
+          case "Zwerg":
+	    if ((this_player()->QueryProp(P_RACE))!="Zwerg")
+	      write("Zur Tarnung spuckst Du etwas von dem Brot aus!\n"); 
+            this_player()->buffer_hp(100,10);
+            this_player()->buffer_sp(100,10);
+            break;
+
+          case "Elf":
+	    write("Das Zwergenbrot brennt wie Feuer auf Deiner Zunge!");
+	    // Getarnt?
+	    if ((this_player()->QueryProp(P_RACE))!="Elf")
+	      write(" Deine Tarnung nutzt Dir da wenig.\n"
+            else write("\n");
+            this_player()->restore_spell_points(-100);
+            this_player()->do_damage(100,this_object());
+            break;
+
+          default:
+	    write("Du bekommst nur wenig davon herunter..\n");
+            this_player()->buffer_hp(10,1);
+            this_player()->buffer_sp(10,2);
+            break;
+          }
+
+  
+
+          remove();
+
+  
+
+          return 1;
+        }
+
+	
+
+SIEHE AUCH
+----------
+::
+
+	/std/living/description.c, /sys/living/description.h, P_RACE
+
+
+Last modified: Mon Sep 15 21:15:49 2003 by Vanion
+
diff --git a/doc/sphinx/props/P_REFERENCE_OBJECT.rst b/doc/sphinx/props/P_REFERENCE_OBJECT.rst
new file mode 100644
index 0000000..67501f5
--- /dev/null
+++ b/doc/sphinx/props/P_REFERENCE_OBJECT.rst
@@ -0,0 +1,42 @@
+P_REFERENCE_OBJECT
+==================
+
+NAME
+----
+::
+
+     P_REFERENCE_OBJECT            "reference_object"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/player/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     In dieser Propertie wird das aktuelle Bezugsobjekt eines Spielers 
+     gespeichert. Untersucht der Spieler ein Monster, so ist dies das 
+     Monsterobjekt, untersucht der Spieler sich selber, ist es das 
+     Spielerobjekt.
+
+     Der Inhalt dieser Propertie besteht also immer aus dem zuletzt 
+     betrachteten Objekt. Sei es ein Raum, eine Ruestung, ein Monster oder 
+     was auch immer. Bewegungsbefehle und andere Kommandos werden nicht 
+     beruecksichtigt.
+
+     Einzig wenn der Spieler 'schau' tippt, wird der Inhalt der Propertie 
+     geloescht und betraegt 0.
+
+SIEHE AUCH
+----------
+::
+
+     Sonstiges:		P_INT_LONG, P_LONG, P_SHORT
+			int_long(), long(), short(), make_invlist()
+
+
+Letzte Aenderung: 29.06.02, 23:50:00 h, von Tilly
+
diff --git a/doc/sphinx/props/P_REJECT.rst b/doc/sphinx/props/P_REJECT.rst
new file mode 100644
index 0000000..82e6b45
--- /dev/null
+++ b/doc/sphinx/props/P_REJECT.rst
@@ -0,0 +1,73 @@
+P_REJECT
+========
+
+NAME
+----
+::
+
+	P_REJECT			"reject"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property zeigt standardmaessig nur in NPCs eine Wirkung. Mit
+	ihr laesst sich sehr einfach einstellen, wie sich ein solcher NPC
+	gegenueber Gegenstaenden verhalten soll, welche ihm zugesteckt
+	werden. Hierbei besteht die Property aus 2 Elementen, welche
+	bestimmt, was der NPC mit Dingen tuen soll, die ihm gegeben werden.
+	Standardmaessig behaelt der NPC die Sachen einfach.
+	Folgende Moeglichkeiten gibt es ausserdem:
+	  1. Arrayelement: Art der Handlung. (aus "/sys/moving.h")
+	    REJECT_GIVE: Der NPC gibt das Objekt zurueck.
+	    REJECT_DROP: Der NPC laesst das Objekt fallen.
+	    REJECT_KEEP: Der NPC behaelt das Objekt doch.
+	    REJECT_LIGHT_MODIFIER: Der NPC nimmt keine Gegenstaende an, die
+	      sein Lichtlevel veraendern und damit Einfluss auf sein
+	      Kampfverhalten haben koennten.
+	  2. Arrayelement: Meldung, mit welcher der NPC die Handlung
+	                   kommentiert.
+	    Der Meldung wird nichts automatisch vorangestellt und ein
+	    abschliessender Zeilenumbruch ist ebenfalls selbstaendig
+	    vorzunehmen. Mit einem Leerstring ist somit auch gar keine
+	    Rueckmeldung moeglich.
+
+BEISPIEL
+--------
+::
+
+	Der NPC schmeisst alle ihm gegebenen Gegenstaende einfach weg:
+	  void create()
+	  { ::create();
+	    ...
+	    SetProp(P_REJECT,({REJECT_GIVE,
+	    Name(WER)+" murmelt: Was soll ich denn damit?!\n"}));
+	    ...
+	  }
+	Manchmal ist das recht nuetzlich, z.B. kann man so eigentlich schwer
+	zu toetende NPCs dagegen schuetzen, dass man ihnen angezuendetes
+	Dynamit oder aehnliches ueberreicht.
+
+BEMERKUNGEN
+-----------
+::
+
+	Innerhalb von NPCs ist die Funktion give_notify() fuer die
+	automatische Auswertung dieser Property verantwortlich; das sollte
+	man insbesondere beim Ueberschreiben dieser Funktion beachten!
+
+SIEHE AUCH
+----------
+::
+
+	give_notify(), /std/npc/put_and_get.c
+
+
+Last modified: Mon Apr 23 16:54:07 2001 by Patryn
+
diff --git a/doc/sphinx/props/P_REMOVE_FUNC.rst b/doc/sphinx/props/P_REMOVE_FUNC.rst
new file mode 100644
index 0000000..0d13b79
--- /dev/null
+++ b/doc/sphinx/props/P_REMOVE_FUNC.rst
@@ -0,0 +1,42 @@
+P_REMOVE_FUNC
+=============
+
+NAME
+----
+::
+
+     P_REMOVE_FUNC "remove_func"
+
+DEFINIERT IN
+------------
+::
+
+     <armour.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Falls ein Objekt eine RemoveFunc() fuer die Ruestung oder Kleidung 
+     definiert, so muss dieses Objekt in dieser Property eingetragen sein.
+
+     Die Auswertung dieser Property erfolgt im Laufe des DoUnwear() in
+     der nicht-oeffentlichen Funktionen _check_unwear_restrictions().
+
+BEISPIELE
+---------
+::
+
+     Siehe das Beispiel zu RemoveFunc()
+
+SIEHE AUCH
+----------
+::
+
+     /std/armour.c, /std/clothing.c, clothing, armours
+     RemoveFunc()
+
+
+Letzte Aenderung:
+15.02.2009, Zesstra
+
diff --git a/doc/sphinx/props/P_REMOVE_MSG.rst b/doc/sphinx/props/P_REMOVE_MSG.rst
new file mode 100644
index 0000000..f0d100b
--- /dev/null
+++ b/doc/sphinx/props/P_REMOVE_MSG.rst
@@ -0,0 +1,54 @@
+P_REMOVE_MSG
+============
+
+NAME
+----
+::
+
+     P_REMOVE_MSG                  "std_food_remove_msg"
+
+DEFINIERT IN
+------------
+::
+
+     <sys/food.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Meldung, wenn eine verdorbene Speise gerade vernichtet wird.
+     Diese Meldung erscheint nur, wenn in P_DESTROY_BAD ein positiver
+     Integer-Wert gesetzt ist.
+     Befindet sich die Speise in einem Spieler, geht die Meldung an genau
+     diesen, liegt die Speise im Raum, geht die Meldung an alle anwesenden
+     Spieler.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Meldung wird von replace_personal mit den Argumenten:
+     1. Speise
+     2. Konsument
+     verarbeitet, kann als entsprechende Platzhalter enthalten
+
+     
+
+DEFAULT
+-------
+::
+
+     "@WER1 zerfaellt zu Staub."
+
+SIEHE AUCH
+----------
+::
+
+     P_DESTROY_BAD, wiz/food, replace_personal
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_RESET_LIFETIME.rst b/doc/sphinx/props/P_RESET_LIFETIME.rst
new file mode 100644
index 0000000..5671ee6
--- /dev/null
+++ b/doc/sphinx/props/P_RESET_LIFETIME.rst
@@ -0,0 +1,55 @@
+P_RESET_LIFETIME
+================
+
+NAME
+----
+::
+
+     P_RESET_LIFETIME              "std_food_lifetime_reset"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/food.h
+
+BESCHREIBUNG
+------------
+::
+
+     Zeit in Resets, die die Speise haltbar ist.
+     Jeder einzelne Reset wird in seiner Laenge zufaellig festgelegt und
+     zu einer Gesamtanzahl von Sekunden zusammengefasst. Diese Zeit in
+     Sekunden wird dann in P_LIFETIME gespeichert.
+     Nach dieser Zeit wird diese Speise schlecht und je nach Konfiguration
+     der Speise eventuell zerstoert. Sichergestellt wird dies durch den
+     Aufruf von reset() nach dieser Anzahl "Resets".
+     Moechte man eine Speise haben, die niemals verdirbt
+     (genehmigungspflichtig!), nutzt man die Property P_NO_BAD
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     Sobald der Countdown zum Schlechtwerden der Speise laeuft, also ein
+     Spieler damit in Beruehrung kam, zeigt SetProp auf diese Property keine
+     Wirkung mehr.
+
+DEFAULT
+-------
+::
+
+     Ohne Setzen von P_LIFETIME ,P_RESET_LIFETIME und P_NO_BAD verdirbt die
+     Speise nach einem Reset, also zwischen 30 und 60 Minuten
+
+SIEHE AUCH
+----------
+::
+
+     wiz/food, P_LIFETIME, P_NO_BAD
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_RESISTANCE.rst b/doc/sphinx/props/P_RESISTANCE.rst
new file mode 100644
index 0000000..fede888
--- /dev/null
+++ b/doc/sphinx/props/P_RESISTANCE.rst
@@ -0,0 +1,61 @@
+P_RESISTANCE
+============
+
+NAME
+----
+::
+
+     P_RESISTANCE                  "resistance"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+WICHTIG
+-------
+::
+
+     DIESE PROPERTY IST VERALTET! BITTE P_RESISTANCE_STRENGTHS
+     VERWENDEN! AUCH FUNKTIONIERT Set() NICHT WIE ES SOLLTE.
+
+BESCHREIBUNG
+------------
+::
+
+     Hiermit koennen die Resistenzen eines Lebewesens sehr einfach gesetzt
+     werden. Es kann ein Array mit Schadensarten gesetzt werden, jeder
+     Eintrag eines Schadens verdoppelt die Resistenz gegen diesen.
+
+BEMERKUNGEN
+-----------
+::
+
+     - P_RESISTANCE_STRENGTHS spiegelt diese Eintraege hier wieder
+     - um genauere Werte anzugeben einen AddResistanceModifier() oder
+       P_RESISTANCE_STRENGTHS benutzen.
+     - P_RESISTANCE kann und wird nicht aus P_RESISTANCE_STRENGTHS
+       upgedatet
+
+BEISPIELE
+---------
+::
+
+     // ein NPC mit halbierter Feuerempfindlichkeit und
+     // geviertelter Windempfindlichkeit
+     SetProp(P_RESISTANCE, ({DT_FIRE, DT_AIR, DT_AIR}));
+
+SIEHE AUCH
+----------
+::
+
+     simple Resistenz:	P_RESISTANCE
+     Modifikatoren:	AddResistanceModifier, RemoveResistanceModifier(),
+			P_RESISTANCE_MODIFIER
+     Hauptmapping:	P_RESISTANCE_STRENGTHS
+     Berechnung:	CheckResistance(), UpdateResistanceStrengths()
+     anderes:		balance, /std/armour/combat.c, /std/living/combat.c
+
+1.Dez 2004, Gloinson
+
diff --git a/doc/sphinx/props/P_RESISTANCE_MODIFIER.rst b/doc/sphinx/props/P_RESISTANCE_MODIFIER.rst
new file mode 100644
index 0000000..a87fdeb
--- /dev/null
+++ b/doc/sphinx/props/P_RESISTANCE_MODIFIER.rst
@@ -0,0 +1,45 @@
+P_RESISTANCE_MODIFIER
+=====================
+
+NAME
+----
+::
+
+     P_RESISTANCE_MODIFIER             "rstr:mod"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+     Hier werden die Resistenzmodifikatoren in einem Mapping abgespeichert.
+
+     Format:
+
+     (["me":<Aufaddition aller Resistenz/Empfindlichkeitsmodifikationen>;0,
+       "<Objektname>#<Schluessel>":<Resistenzmapping>;<Objekreferenz>,
+       ...])
+
+BEMERKUNGEN
+-----------
+::
+
+     Nur ueber AddResistanceModifier(), RemoveResistanceModifier() aendern!
+
+SIEHE AUCH
+----------
+::
+
+     Modifikatoren:	AddResistanceModifier, RemoveResistanceModifier()
+     simple Resistenz:	P_RESISTANCE, P_VULNERABILITY
+     Hauptmapping:	P_RESISTANCE_STRENGTHS
+     Berechnung:	CheckResistance(), UpdateResistanceStrengths()
+     anderes:		balance, /std/armour/combat.c, /std/living/combat.c
+
+29.Apr 2002, Gloinson@MG
+
diff --git a/doc/sphinx/props/P_RESISTANCE_STRENGTHS.rst b/doc/sphinx/props/P_RESISTANCE_STRENGTHS.rst
new file mode 100644
index 0000000..26a4ca8
--- /dev/null
+++ b/doc/sphinx/props/P_RESISTANCE_STRENGTHS.rst
@@ -0,0 +1,114 @@
+P_RESISTANCE_STRENGTHS
+======================
+
+NAME
+----
+::
+
+     P_RESISTANCE_STRENGTHS     "resistance_strengths"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+     Lebewesen:
+
+     Mapping mit Schadensarten, gegen die das Lebewesen resistent oder
+     anfaellig ist. Durch eine _query_method werden alle existierenden
+     Resistenzen hier zusammengefasst.
+
+     Die Staerke der Resistenz oder Anfaelligkeit wird numerisch aus-
+     gedrueckt:
+     - Resistenzen gehen bis von 0 bis -1.0 (absolute Resistenz)
+       - -0.5 == halbierter Schaden, -0.75 == geviertelter Schaden
+       -> in % des "aufgehaltenen" Schadens interpretierbar
+     - Empfindlichkeiten gehen von 0 bis MAX_INT
+       -  1.0 == verdoppelter Schaden, 3.0 == vervierfachter Schaden
+       -> als Faktor (x+1.0) interpretierbar
+
+     Ruestungen:
+
+     Mapping mit Prozentwerten der Maximalwerte fuer Ruestungen des
+     entsprechenden Typs. Dabei sind positive Werte Resistenzen und
+     negative Empfindlichkeiten. Dabei duerfen die Prozentwerte nur
+     im Bereich von +100 bis -800 (-1000 ?!) liegen.
+
+     Bei Ruestungen ist es damit unnoetig, Resistenzen mittels
+     AddResistanceModifier() im Traeger zu setzen, da dies bereits
+     in /std/armour automatisch gemacht wird. Der Schluessel fuer
+     den Eintrag ist dabei P_ARMOUR_TYPE.
+
+     Die Maximalwerte sind derzeit:
+      AT_CLOAK, AT_RING, AT_AMULET: max 10% Resistenz
+      AT_SHIELD, AT_ARMOUR:  max 15% Resistenz
+      alle anderen:   max 5% Resistenz
+
+BEMERKUNGEN
+-----------
+::
+
+     Ruestungen:
+     * die Property muss _nach_ P_ARMOUR_TYPE gesetzt werden (_set-Method)
+
+     Lebewesen:
+     * -1.0 bedeutet bereits absolute Resistenz, bei kleineren Werten werden
+       die anderen Schadensanteile im Kampf u.U. nicht mehr wie gewuenscht
+       bilanziert. Bitte daher drauf verzichten. ;-)
+     * Aenderungen an P_RESISTANCE und P_VULNERABILITY werden direkt in 
+       P_RESISTANCE_STRENGTHS gespeichert:
+       -> daher niemals im Nachhinein bei fremden NPCs P_RESISTANCE_STRENGTHS
+          manipulieren, dafuer gibt es AddResistanceModifier
+     * QueryProp(P_RESISTANCE_STRENGTHS) enthaelt die gesamten Resistenzen
+       P_RESISTANCE, P_VULNERABILITY, P_RESISTANCE_MODIFIER (_query-Method)
+
+     Die Werte in P_RESISTANCE_STRENGTHS sollten nur in Ausnahmefaellen oder
+     gut begruendet den Hoechstwert haben. Ein Eiswesen kann zwar sehr
+     resistent gegen Kaelteschaden sein, sollte aber zu gleichem Teil auch
+     anfaellig auf Feuerschaden sein.
+
+     Auf dieser Property liegt eine Querymethode, welche eine Kopie der
+     Daten zurueckliefert.
+
+BEISPIELE
+---------
+::
+
+     // ein Eistroll
+     SetProp(P_RESISTANCE_STRENGTHS,([DT_FIRE:0.5,DT_COLD:-0.5,
+                                      DT_MAGIC:0.1]));
+
+     Feuerangriffe werden mit 1.5 multipliziert, magische mit 1.1 und
+     der Schadenswert von Kaelteangriffen wird halbiert. Zum Beispiel
+     wuerde
+     Defend(100, ({DT_FIRE,DT_MAGIC}), ...)
+     einen Schaden von 130 statt den normalen 100 verursachen.
+
+
+     // eine Eisruestung
+     SetProp(P_RESISTANCE_STRENGTHS, ([DT_COLD:50, DT_FIRE:-100]));
+
+     Dieses Kettenhemd schuetzt nun mit 50% des Maximalwertes gegen
+     Kaelte (also 0.5*15%=7,5% Resistenz) und macht mit dem Maximal-
+     wert anfaellig gegen Feuer (1*15%=15% Empfindlichkeit).
+
+     ! der Code spricht zusaetzlich von
+       Empfindlichkeit=(Empfindlichkeit/4)*5 -> 15/4*5=18.75% !
+
+SIEHE AUCH
+----------
+::
+
+     simple Resistenz: P_RESISTANCE, P_VULNERABILITY
+     Modifikatoren: AddResistanceModifier, RemoveResistanceModifier(),
+     P_RESISTANCE_MODIFIER
+     Berechnung: CheckResistance(), UpdateResistanceStrengths()
+     anderes:  balance, /std/armour/combat.c, /std/living/combat.c
+
+6.Feb 2016 Gloinson
+
diff --git a/doc/sphinx/props/P_RESTRICTIONS.rst b/doc/sphinx/props/P_RESTRICTIONS.rst
new file mode 100644
index 0000000..c5682ff
--- /dev/null
+++ b/doc/sphinx/props/P_RESTRICTIONS.rst
@@ -0,0 +1,163 @@
+P_RESTRICTIONS
+==============
+
+NAME
+----
+::
+
+    P_RESTRICTIONS                                "restrictions"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/combat.h
+    (Die SR_*-Parameter sind in /sys/new_skills.h definiert.)
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt ein mapping mit den zu pruefenden Einschraenkungen.
+
+    In dieser Property lassen sich Restriktionen setzen, die vor dem
+    Zuecken einer Waffe / Anziehen einer Ruestung oder Kleidung geprueft
+    werden und dies gegebenfalls verhindern, ohne gleich auf eine evtl.
+    vorhandene WieldFunc / WearFunc zuzugreifen.
+
+    Die Auswertung erfolgt ueber den Aufruf von check_restrictions()
+    in /std/restriction_checker.c
+
+    Folgende Keys werden in dem Mapping ausgewertet:
+
+    P_LEVEL
+      Mindeststufe, die das Lebewesen besitzen muss, um die Aktion
+      auszufuehren.
+    P_GUILD_LEVEL
+      Gildenlevel, das das Lebewesen mindestens erreicht haben muss, um die
+      Aktion auszufuehren.
+    SR_SEER
+      Ist gesetzt, wenn das Lebewesen Seher sein muss.
+      Auswertung nur fuer Interactives, NSC ignorieren das Flag.
+    P_XP
+      Mindestmenge an Erfahrungspunkten, die ein Lebewesen besitzen muss,
+      um die Aktion auszufuehren.
+    P_QP
+      Mindestmenge an Abenteuerpunkten, die das Lebewesen haben muss.
+    P_ALCOHOL
+      Menge an Alkohol, unter der der Alkoholspiegel des Lebewesen liegen
+      muss, um die Aktion noch ausfuehren zu koennen.
+    P_DRINK
+      Menge an Fluessigkeit, unter der der Fluessigkeitsspiegel des
+      Lebewesen liegen muss, um die Aktion noch ausfuehren zu koennen.
+    P_FOOD
+      Beinhaltet die Menge an Nahrung, unter der der Nahrungsspiegel des
+      Spielers liegen muss, um die Aktion noch ausfuehren zu koennen.
+    P_DEAF
+      Ist gesetzt, falls der Spieler nicht taub sein darf.
+    P_FROG
+      Ist gesetzt, falls der Spieler kein Frosch sein darf.
+    P_BLIND
+      Ist gesetzt, falls der Spieler nicht blind sein darf.
+      Achtung: das ist nicht gleichbedeutend mit dem Umstand, dass er evtl.
+      nichts mehr sehen kann. Auch andere Gruende (zum Beispiel Dunkelheit)
+      koennen bewirken, dass ein Spieler nichts mehr sieht.
+    A_INT, A_DEX, A_CON, A_STR
+      Jeweilige Mindesthoehe eines Attribut, um eine Aktion ausfuehren zu
+      koennen.
+    SR_BAD, SR_GOOD
+      Gibt an, wie [minimal] boese bzw. wie [maximal] gut ein Charakter sein
+      darf, um eine Aktion ausfuehren zu koennen.
+    SR_MIN_SIZE, SR_MAX_SIZE
+      Gibt die minimale, bzw. die maximale Groesse an, die ein Charakter
+      maximal haben darf, um eine Aktion ausfuehren zu koennen.
+    SR_FREE_HANDS
+      Gibt an, wieviele freie Haende ein Charakter fuer diese Aktion
+      besitzen muss.
+    SR_EXCLUDE_RACE
+      Mitglieder aller in dieser Liste aufgefuehrten Rassen koennen
+      diese Aktion nicht ausfuehren.
+    SR_INCLUDE_RACE
+      Mitglieder aller NICHT in dieser Liste aufgefuehrten Rassen koennen
+      diese Aktion nicht ausfuehren.
+    SM_RACE
+      Hier kann pro Rasse ein Mapping mit besonderen (nur) fuer diese Rasse
+      geltenden Einschraenkungen vorgenommen werden. Als Keys sind die
+      in dieser Manpage beschriebenen Keys erlaubt, wobei SM_RACE nicht
+      rekursiv ausgewertet wird.
+      Der Rassenname ist gross geschrieben und "*" steht fuer alle Rassen.
+    SR_EXCLUDE_GUILD
+    SR_INCLUDE_GUILD
+      Diese beiden Keys verhalten sich wie SR_*_RACE, nur dass hier Gilden
+      genannt werden.
+    SR_FUN
+      Hier kann eine Funktion in verschiedenen Formen zum Pruefen der
+      Restriktionen angegeben werden, siehe execute_anything().
+      Das kann nuetzlich sein, um andere Restriktionen zu pruefen,
+      wie das Bestehen von Miniquests oder andere Faehigkeiten/Flags.
+      Ist der Test nicht bestanden, gibt die Funktion einen String zurueck.
+    SR_PROP
+      Hier kann ein Mapping mit Properties und zugehoerigen Werten angegeben
+      werden, die jeweils auf Identitaet geprueft werden. Zusaetzlich sollte
+      eine Meldung angegeben werden, die als Fehlermeldung ausgegeben wird,
+      wenn der Spieler die Bedingung nicht erfuellt. Es sollte immer eine
+      passende Meldung fuer den Spieler eingebaut werden. Beispiel:
+      ([ SR_PROP: ([P_AUSGANG_ENTDECKT: 1; "Dein Schwert fluestert "
+          "veraergert: Ich werde Dir erst dann zu Diensten sein, wenn Du "
+          "Dich als wuerdig erwiesen hast!"]) ])
+      Aufgrund der Meldung wird empfohlen, SR_PROP nicht in Restriktionen 
+      einzusetzen, die massenweise in Savefiles landen (z.B. 
+      Spielersavefiles).
+    SR_QUEST
+      Hier kann ein String-Array mit den Namen (Keys) der Quest(s) angegeben
+      werden, die der Spieler bestanden haben muss, um die Aktion ausfuehren
+      zu koennen.
+    SR_MINIQUEST
+      Hier kann entweder ein String-Array mit den Ladenamen der vergebenden
+      Objekte oder ein Int-Array mit den Index-Nummern (IDs) der
+      Miniquest(s) (empfohlen!) angegeben werden, die der Spieler bestanden
+      haben muss, um die Aktion ausfuehren zu koennen.
+
+BEMERKUNGEN
+-----------
+::
+
+    Diese Property eignet sich hervorragend dafuer, einige Grundbedingungen
+    fuer das Nutzen der Waffe / Ruestung / Kleidung zu stellen ohne gleich
+    eine Wield- oder WearFunc setzen und auswerten zu muessen.
+
+    Denkbar waere der Einsatz bei hochwertigen Waffen / Ruestungen / Kleidung,
+    z.B. aus der Para-Welt oder solchen, die sich nah am Limit der geltenden
+    Grenzwerte fuer P_WC / P_AC bewegen oder sogar (nach Genehmigung durch
+    die Balance) darueber.
+
+BEISPIEL
+--------
+::
+
+    Mindeststufe 25: SetProp(P_RESTRICTIONS,([P_LEVEL:25]));
+    Keine Menschen:  SetProp(P_RESTRICTIONS,([SR_EXCLUDE_RACE:({"Mensch"})]));
+    Alignment >499:  SetProp(P_RESTRICTIONS,([SR_GOOD:500]));
+
+    Komplexeres Beispiel
+
+    Quest "Diamond Club" bestanden, magiereigene Property P_AUSGANG_GEFUNDEN
+    muss gesetzt sein, Stufe 10, nicht taub, max. 45 Food:
+    SetProp(P_RESTRICTIONS, ([ P_LEVEL: 10, P_DEAF: 1, P_FOOD: 45,
+      SR_PROP: ([P_AUSGANG_GEFUNDEN:1]), SR_QUEST:({"Diamond Club"}) ]));
+
+SIEHE AUCH
+----------
+::
+
+    check_restrictions(L)
+    WieldFunc(L), WearFunc(L), RemoveFunc(L), UnwieldFunc(L),
+    P_WIELD_FUNC, P_WEAR_FUNC, P_REMOVE_FUNC, P_UNWIELD_FUNC
+    /std/armour/wear.c, /std/weapon/combat.c, clothing, armours, weapon
+
+LETZTE AeNDERUNG
+----------------
+::
+
+03. Januar 2014, Arathorn
+
diff --git a/doc/sphinx/props/P_ROOM_MSG.rst b/doc/sphinx/props/P_ROOM_MSG.rst
new file mode 100644
index 0000000..087f9c2
--- /dev/null
+++ b/doc/sphinx/props/P_ROOM_MSG.rst
@@ -0,0 +1,39 @@
+P_ROOM_MSG
+==========
+
+NAME
+----
+::
+
+    P_ROOM_MSG                    "room_msg"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/room/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Liste mit Meldungen, die zufaellig im Raum ausgegeben werden.
+
+     Hier sind nur die Textmeldungen als String-Array gespeichert.
+
+ANMERKUNGEN
+-----------
+::
+
+     Bitte AddRoomMessage() zum Hinzufuegen/Ueberschreiben benutzen!
+
+SIEHE AUCH
+----------
+::
+
+     LFuns:    AddRoomMessage()
+     Verwandt: tell_room(), ReceiveMsg()
+     Props:    P_FUNC_MSG, P_MSG_PROB
+
+2.Feb 2016 Gloinson
+
diff --git a/doc/sphinx/props/P_ROOM_TYPE.rst b/doc/sphinx/props/P_ROOM_TYPE.rst
new file mode 100644
index 0000000..a1a269a
--- /dev/null
+++ b/doc/sphinx/props/P_ROOM_TYPE.rst
@@ -0,0 +1,39 @@
+P_ROOM_TYPE
+===========
+
+NAME
+----
+::
+
+    P_ROOM_TYPE                       "room_type"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/rooms.h
+
+BESCHREIBUNG
+------------
+::
+
+    In P_ROOM_TYPE wird die Art des Raumes durch entsprechende Flags
+    beschrieben.
+
+    Bisher unterstuetzt werden:
+        - RT_SHOP       fuer Raeume, die /std/room/shop inheriten
+        - RT_PUB        fuer Raeume, die /std/room/pub inheriten
+
+BEISPIEL
+--------
+::
+
+    Wenn ein NPC abfragen moechte, ob er sich in einer Kneipe aufhaelt (um
+    selbststaendig tanken zu koennen) koennte eine Abfrage z.B. so aussehen:
+
+        if ( environment() &&
+             environment()->QueryProp(P_ROOM_TYPE) & RT_PUB ){
+
+            ... tanken ...
+        }
+
diff --git a/doc/sphinx/props/P_SB_SPELLS.rst b/doc/sphinx/props/P_SB_SPELLS.rst
new file mode 100644
index 0000000..c019f46
--- /dev/null
+++ b/doc/sphinx/props/P_SB_SPELLS.rst
@@ -0,0 +1,42 @@
+P_SB_SPELLS
+===========
+
+NAME
+----
+::
+
+    P_SB_SPELLS            "sb_spells"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Spellbookproperty sind saemtliche Sprueche des Spellbooks
+    vermerkt. Veraendert wird sie durch AddSpell().
+
+BEMERKUNGEN
+-----------
+::
+
+    Man sollte diese Property nicht per Hand veraendern, sondern die
+    Funktion AddSpell() nutzen.
+
+SIEHE AUCH
+----------
+::
+
+    GObj Verwalten:   LearnSkill, LearnSpell, InitialSkillAbility
+    * Properties:     P_GUILD_SKILLS
+    Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
+    * Verwalten:      AddSpell, QuerySpell
+    * Properties:     P_GLOBAL_SKILLPROPS
+    Skills:           P_NEWSKILLS, spruchermuedung, skill_info_liste
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_SCREENSIZE.rst b/doc/sphinx/props/P_SCREENSIZE.rst
new file mode 100644
index 0000000..c81b33f
--- /dev/null
+++ b/doc/sphinx/props/P_SCREENSIZE.rst
@@ -0,0 +1,21 @@
+P_SCREENSIZE
+============
+
+NAME
+----
+::
+
+    P_SCREENSIZE                  "screensize"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Bildschirmgroesse in Zeilen (fuer More)
+
diff --git a/doc/sphinx/props/P_SECOND.rst b/doc/sphinx/props/P_SECOND.rst
new file mode 100644
index 0000000..74e1fb3
--- /dev/null
+++ b/doc/sphinx/props/P_SECOND.rst
@@ -0,0 +1,40 @@
+P_SECOND
+========
+
+NAME
+----
+::
+
+    P_SECOND                      "second"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn diese Prop gesetzt ist, ist der Spieler ein Zweitie. Inhalt der
+     Prop ist ein String mit dem (lowercase) Namen des Ersties.
+
+BEISPIEL
+--------
+::
+
+     if (this_player()->QueryProp(P_SECOND)=="notstrom") {
+       tell_object(this_player(), "Nicht alles aufessen!\n");
+     }
+
+SIEHE AUCH
+----------
+::
+
+     Properties: P_SECOND_MARK
+     Sonstiges:  /secure/zweities.c
+
+
+Last modified: 18-Jun-2015, Arathorn.
+
diff --git a/doc/sphinx/props/P_SECOND_MARK.rst b/doc/sphinx/props/P_SECOND_MARK.rst
new file mode 100644
index 0000000..aeea609
--- /dev/null
+++ b/doc/sphinx/props/P_SECOND_MARK.rst
@@ -0,0 +1,31 @@
+P_SECOND_MARK
+=============
+
+NAME
+----
+::
+
+    P_SECOND_MARK                 "second_mark"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gibt an, wie mit der Zweitie-Markierung eines Spielers umgegangen wird.
+
+     -1  'unsichtbare' Markierung; im wer/kwer wird bei diesem Zweitie s
+         oder S angezeigt.
+
+      0  'sichtbare' Markierung; im wer/kwer wird bei diesem Zweitie z oder
+         Z angezeigt. Der Name des Ersties ist beim Fingern jedoch nur
+         fuer Magier sichtbar.
+
+      1  Markierung 'sichtbar + Name'; wie 0, nur dass beim Fingern alle
+         Spieler den Namen des Ersties sehen koennen.
+
diff --git a/doc/sphinx/props/P_SEERDOORS.rst b/doc/sphinx/props/P_SEERDOORS.rst
new file mode 100644
index 0000000..c90a21e
--- /dev/null
+++ b/doc/sphinx/props/P_SEERDOORS.rst
@@ -0,0 +1,49 @@
+P_SEERDOORS
+===========
+
+NAME
+----
+::
+
+     P_SEERDOORS      "rw_sehertore"
+
+DEFINIERT IN
+------------
+::
+
+     /d/seher/portale/sehertor.h
+
+BESCHREIBUNG
+------------
+::
+
+     Sehertor-relevante Property.
+
+     Enthaelt ein Mapping mit den Wertepaaren
+     ([ Seher-Portal-Nummer: x ])
+     mit x != 0 fuer entdeckte Tore.
+
+     
+
+     0 hat ein Sonderverhalten fuer mobile Tore.
+
+BEMERKUNG
+---------
+::
+
+     Auf gar keinen Fall in Spielern manipulieren! Und bitte das enthaltene
+     Mapping nicht von einem Spieler abfragen und P_SEERDOORS in einem
+     Testspieler zuweisen!
+
+     
+
+SIEHE AUCH
+----------
+::
+
+     P_FAO_PORTALS
+
+     
+
+1.September 2008 Gloinson
+
diff --git a/doc/sphinx/props/P_SEERDOOR_ALLOWED.rst b/doc/sphinx/props/P_SEERDOOR_ALLOWED.rst
new file mode 100644
index 0000000..525e53d
--- /dev/null
+++ b/doc/sphinx/props/P_SEERDOOR_ALLOWED.rst
@@ -0,0 +1,27 @@
+P_SEERDOOR_ALLOWED
+==================
+
+NAME
+----
+::
+
+    P_SEERDOOR_ALLOWED		"rw_sehertor_erlaubt"                          
+
+DEFINIERT IN
+------------
+::
+
+    /d/seher/portale/sehertor.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property muss in einem Raum gesetzt sein, soll
+     ein Seher dort ein mobiles Sehertor abstellen duerfen.
+     Zusaetzlich darf der Raum nicht in PARA liegen und muss
+     als eigenes File existieren.
+     Es ist darauf zu achten, Sehertore nicht in Questgebieten,
+     direkt an Tanken oder aehnlichen Plaetzen zu erlauben.
+     Es gilt die Einschaetzung des fuer den Raum Verantwortlichen.
+
diff --git a/doc/sphinx/props/P_SENSITIVE.rst b/doc/sphinx/props/P_SENSITIVE.rst
new file mode 100644
index 0000000..fa6d633
--- /dev/null
+++ b/doc/sphinx/props/P_SENSITIVE.rst
@@ -0,0 +1,154 @@
+P_SENSITIVE
+===========
+
+NAME
+----
+::
+
+     P_SENSITIVE                   "sensitive"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property kann in Objekten gesetzt werden, die auf bestimmte
+     Schadensarten empfindlich reagieren sollen. Moegliche Anwendungsfaelle:
+     - Das Lebewesen, in dessen Inventar sich ein Objekt befindet, erleidet
+       einen Angriff mit der fraglichen Schadensart (Beispiel: eine 
+       Pusteblume, die bei Angriff mit Luftschaden auseinanderfaellt).
+     - Zwei Objekte treffen im gleichen Environment aufeinander, wobei
+       eines empfindlich auf eine Schadensart reagiert, und das zweite diese
+       Schadensart mitbringt, d.h. die Empfindlichkeit ausloesen kann.
+       (Beispiel: ein feuerempfindlicher Postsack wird angesengt, wenn eine
+        brennende Fackel ins gleiche Inventar kommt.)
+       Das Ausloesen dieser Empfindlichkeit ist unabhaengig davon, welches 
+       Objekt zuerst da war.
+
+     Die Property enthaelt ein Array aus Arrays:
+       ({<sensprops_1>, <sensprops_2>, ..., <sensprops_n>})
+
+     
+
+     wobei jeder Eintrag <sensprops> jeweils folgende Struktur hat:
+       ({string list_key, string damtype, int treshold, mixed options })
+
+     
+
+     Die Eintraege haben dabei folgende Bedeutung:
+
+     
+
+     list_key: Kann einen von folgenden drei Werten annehmen 
+          1) SENSITIVE_INVENTORY, passive Eigenschaft; zeigt an, dass das
+             Objekt empfindlich auf aktive Objekte reagiert, die in das
+             Inventory des Containers hineinbewegt werden
+          2) SENSITIVE_ATTACK, passive Eigenschaft; zeigt an, dass das 
+             Objekt empfindlich auf aeussere Einfluesse bzw. Angriffe 
+             auf ein Lebewesen reagiert, in dessen Inventar es sich befindet
+          3) SENSITIVE_INVENTORY_TRIGGER, aktive Eigenschaft; zeigt an, dass
+             das Objekt eine Ausstrahlung auf andere Objekte im Inventar
+             hat. Wird ausgeloest, wenn das Objekt ins Inventar hineinbewegt
+             wird.
+     damtype: eine Schadensart (DT_FIRE, DT_WATER, ...)
+     treshold: hat zwei Bedeutungen abhaengig von dem Wert in list_key:
+          1) Fuer Objekte mit SENSITIVE_INVENTORY oder SENSITIVE_ATTCK ist
+             dies der Schadenswert, ab dem das Objekt benachrichtigt werden 
+             soll.
+             Hier wird ein Wert in "Defend-Einheiten" erwartet, d.h. das
+             Zehnfache dessen, was am Ende in LP abgezogen wuerde.
+          2) Fuer Objekte mit SENSITIVE_INVENTORY_TRIGGER ist dies der 
+             Schadenswert, mit dem das Objekt andere bereits im Inventar
+             des Containers befindliche Objekte beeinflusst, die eine 
+             entsprechende Empfindlichkeit gesetzt haben
+     options: Optionale Daten, die der programmierende Magier selbst
+            definieren kann. Werden an die in den betroffenen Objekten
+            aufgerufenen Funktionen durchgereicht.
+
+     Ein SENSITIVE_ATTACK-Objekt, dessen Trigger-Bedingungen erfuellt sind,
+     wird durch folgenden Funktionsaufruf darueber informiert:
+       trigger_sensitive_attack(object enemy, string damtype, int damage,
+                 mixed spell, mixed options)
+
+     
+
+     Ein SENSITIVE_INVENTORY-Objekt, dessen Trigger-Bedingungen erfuellt sind,
+     wird durch folgenden Funktionsaufruf darueber informiert:
+       trigger_sensitive_inv(object whodid, string damtype, int threshold,
+                 mixed options, mixed options)
+
+     Die beiden Funktionen muessen selbst ge-/ueberschrieben werden.
+
+BEMERKUNGEN
+-----------
+::
+
+     1. P_SENSITIVE-Objekte kosten Rechenzeit bei jedem Angriff oder jedem
+        move() - daher bitte sparsam verwenden
+     2. Ist P_SENSITIVE nicht statisch, sondern wird es situationsabhaengig 
+        geaendert, muss man das environment() jeweils selbst ueber seine 
+        neue Empfindlichkeit benachrichtigen. Dies geschieht mit den 
+        Funktionen RemoveSensitiveObject() bzw.InsertSensitiveObject(), 
+        siehe deren Manpages.
+
+BEISPIEL
+--------
+::
+
+     Beispiel 1:
+     Beispielcode eines Objektes mit SENSITIVE_ATTACK und SENSITIVE_INVENTORY
+     siehe hier: /doc/beispiele/testobjekte/attack_busy_sensitive_testobj.c
+
+     Beispiel 2:
+     Ein Eiszapfen, der bei Feuerangriffen oder bei heissen Gegenstaenden im
+     gemeinsamen Environment zerschmelzen soll:
+
+     void create() {
+       SetProp( P_SENSITIVE, ({ ({SENSITIVE_ATTACK,     DT_FIRE, 100}),
+                                 ({SENSITIVE_INVENTORY, DT_FIRE, 100}) }) );
+       [...]
+     }
+
+     varargs void trigger_sensitive_attack() {
+       remove();
+     }
+
+     varargs void trigger_sensitive_inv() {
+       call_out("remove",0);  // verzoegert, wegen move()
+     }
+
+     varargs int remove(int silent) {
+       if(!silent) {
+         object room = all_environment(this_object())[<1];
+         tell_room(room, Name()+" zerschmilzt.\n");
+       }
+       return ::remove();
+     }
+
+     - wird eine Fackel mit
+       SetProp(P_SENSITIVE,({({SENSITIVE_INVENTORY_TRIGGER,DT_FIRE,250})}))
+       in das gleiche environment() wie dieser Zapfen bewegt wird, loest
+       diese im Zapfen trigger_sensitive_inv() aus
+     - wird ein Angriff mit DT_FIRE und initialem Schaden > 100 auf das
+       environment() veruebt, loest dies im Zapfen trigger_sensitive_attack()
+       aus
+
+SIEHE AUCH
+----------
+::
+
+     Properties: P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY,
+                 P_SENSITIVE_INVENTORY_TRIGGER
+     Funktionen: InsertSensitiveObject(L), RemoveSensitiveObject(L),
+                 CheckSensitiveAttack(L), Defend(), 
+                 insert_sensitive_inv(L), insert_sensitive_inv_trigger(L),
+                 trigger_sensitive_inv(L), trigger_sensitive_attack(L)
+     Defines:    /sys/sensitive.h
+
+Letzte Aenderung: 10. Januar 2015, Arathorn
+
diff --git a/doc/sphinx/props/P_SENSITIVE_ATTACK.rst b/doc/sphinx/props/P_SENSITIVE_ATTACK.rst
new file mode 100644
index 0000000..818fb06
--- /dev/null
+++ b/doc/sphinx/props/P_SENSITIVE_ATTACK.rst
@@ -0,0 +1,42 @@
+P_SENSITIVE_ATTACK
+==================
+
+NAME
+----
+::
+
+    P_SENSITIVE_ATTACK            "sensitive_attack"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/sensitive.h
+
+BESCHREIBUNG
+------------
+::
+
+    Hier steht die Liste der zu informierenden Objekte, die potentiell
+    auf einen Angriff reagieren koennten.
+    Wird von InsertSensitiveObject() und RemoveSensitiveObject()
+    geschrieben und in CheckSensitiveAttack() ausgewertet.
+
+BEMERKUNGEN
+-----------
+::
+
+    Nicht selbst veraendern - bitte P_SENSITIVE fuer Eintraege benutzen.
+
+SIEHE AUCH
+----------
+::
+
+     P_SENSITIVE
+     InsertSensitiveObject, RemoveSensitiveObject
+     insert_sensitive_inv_trigger, insert_sensitive_inv
+     P_SENSITIVE_INVENTORY_TRIGGER, P_SENSITIVE_INVENTORY
+     CheckSensitiveAttack
+
+25.Apr.2001, Gloinson@MG
+
diff --git a/doc/sphinx/props/P_SENSITIVE_INVENTORY.rst b/doc/sphinx/props/P_SENSITIVE_INVENTORY.rst
new file mode 100644
index 0000000..5ecec2d
--- /dev/null
+++ b/doc/sphinx/props/P_SENSITIVE_INVENTORY.rst
@@ -0,0 +1,43 @@
+P_SENSITIVE_INVENTORY
+=====================
+
+NAME
+----
+::
+
+    P_SENSITIVE_INVENTORY         "sensitive_inv"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/sensitive.h
+
+BESCHREIBUNG
+------------
+::
+
+    Hier steht die Liste der zu informierenden Objekte, die potentiell
+    auf ein anderes Objekt mit gesetztem P_SENSITIVE_INVENTORY_TRIGGER
+    reagieren koennten.
+    Wird von InsertSensitiveObject() und RemoveSensitiveObject()
+    geschrieben.
+
+BEMERKUNGEN
+-----------
+::
+
+    Nicht selbst veraendern - bitte P_SENSITIVE fuer Eintraege benutzen.
+
+SIEHE AUCH
+----------
+::
+
+     P_SENSITIVE
+     InsertSensitiveObject, RemoveSensitiveObject
+     insert_sensitive_inv_trigger, insert_sensitive_inv
+     P_SENSITIVE_INVENTORY_TRIGGER, P_SENSITIVE_ATTACK
+     CheckSensitiveAttack
+
+25.Apr.2001, Gloinson@MG
+
diff --git a/doc/sphinx/props/P_SENSITIVE_INVENTORY_TRIGGER.rst b/doc/sphinx/props/P_SENSITIVE_INVENTORY_TRIGGER.rst
new file mode 100644
index 0000000..94beaae
--- /dev/null
+++ b/doc/sphinx/props/P_SENSITIVE_INVENTORY_TRIGGER.rst
@@ -0,0 +1,42 @@
+P_SENSITIVE_INVENTORY_TRIGGER
+=============================
+
+NAME
+----
+::
+
+    P_SENSITIVE_INVENTORY_TRIGGER "sensitive_inv_trigger"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/sensitive.h
+
+BESCHREIBUNG
+------------
+::
+
+    Hier steht die Liste der aktiven Objekte, die eine potentielle
+    "Ausstrahlung" auf andere Objekte haben.
+    Wird von InsertSensitiveObject() und RemoveSensitiveObject()
+    geschrieben.
+
+BEMERKUNGEN
+-----------
+::
+
+    Nicht selbst veraendern - bitte P_SENSITIVE fuer Eintraege benutzen.
+
+SIEHE AUCH
+----------
+::
+
+     P_SENSITIVE
+     InsertSensitiveObject, RemoveSensitiveObject
+     insert_sensitive_inv_trigger, insert_sensitive_inv
+     P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY
+     CheckSensitiveAttack
+
+25.Apr.2001, Gloinson@MG
+
diff --git a/doc/sphinx/props/P_SHOOTING_AREA.rst b/doc/sphinx/props/P_SHOOTING_AREA.rst
new file mode 100644
index 0000000..b331623
--- /dev/null
+++ b/doc/sphinx/props/P_SHOOTING_AREA.rst
@@ -0,0 +1,38 @@
+P_SHOOTING_AREA
+===============
+
+NAME
+----
+::
+
+    P_SHOOTING_AREA     "shooting_area"
+
+DEFINIERT IN
+------------
+::
+
+    <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+    Legt die 'Groesse' eines Raumes fest. Ein Schuetze kann mit seiner
+    Fernkampfwaffe nur dann aus diesem Raum in einen anderen Raum schiessen,
+    wenn die P_RANGE seiner Waffe mindestens gleich ist.
+
+    Erreichbare Raeume sind entweder das environment() oder der in
+    P_SHOOTING_AREA festgelegte Raum.
+
+SIEHE AUCH
+----------
+::
+
+    Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
+    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+    Gebiet:    P_RANGE, P_TARGET_AREA
+    Raeume:    P_NEVER_CLEAN
+    Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
+
diff --git a/doc/sphinx/props/P_SHOOTING_WC.rst b/doc/sphinx/props/P_SHOOTING_WC.rst
new file mode 100644
index 0000000..06c1759
--- /dev/null
+++ b/doc/sphinx/props/P_SHOOTING_WC.rst
@@ -0,0 +1,48 @@
+P_SHOOTING_WC
+=============
+
+NAME
+----
+::
+
+    P_SHOOTING_WC     "shooting_wc"
+
+DEFINIERT IN
+------------
+::
+
+    <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+    Legt in einer Fernkampfwaffe UND ihrer Munition die Waffenstaerke fest.
+    Bei einem Schuss wird die Summe kombiniert mit der Geschicklichkeit
+    zur Berechnung der Angriffstaerke benutzt.
+
+BEISPIELE
+---------
+::
+
+    SetProp(P_SHOOTING_WC, 70);     // Langbogen
+    SetProp(P_SHOOTING_WC, 50);     // Kurzbogen
+
+    SetProp(P_SHOOTING_WC, 40);     // Bambuspfeil
+    SetProp(P_SHOOTING_WC, 60);     // Aluminiumpfeil
+
+    // So haetten Langbogen mit Aluminiumpfeil eine P_SHOOTING_WC von 70+60.
+
+SIEHE AUCH
+----------
+::
+
+    Generell:  P_AMMUNITION, P_STRETCH_TIME
+    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+    Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
+    Waffen:    P_WEAPON_TYPE, P_WC, P_EQUIP_TIME, P_NR_HANDS
+    Kampf:     Attack(L), Defend(L), P_DISABLE_ATTACK, P_ATTACK_BUSY
+    Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
+
diff --git a/doc/sphinx/props/P_SHORT.rst b/doc/sphinx/props/P_SHORT.rst
new file mode 100644
index 0000000..34d23e5
--- /dev/null
+++ b/doc/sphinx/props/P_SHORT.rst
@@ -0,0 +1,61 @@
+P_SHORT
+=======
+
+NAME
+----
+::
+
+     P_SHORT				"short"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt die Kurzbeschreibung des Objektes als String 
+     oder Closure (diese muss einen String zurueckgeben).
+
+     ACHTUNG: Die Kurzbeschreibung sollte dabei weder mit einem
+	      Satzzeichen noch mit einem "\n" abgeschlossen sein
+	      (dies wird von den zustaendigen Funktionen erledigt).
+
+     Setzt man diese Property auf 0, so ist das Objekt unsichtbar, allerdings
+     ansprechbar, wenn der Spieler eine ID des Objektes kennt. D.h. Objekte
+     koennen mitgenommen, weggeworfen oder ggf. auch angegriffen werden. Will
+     man dies nicht, sollte man das Objekt mit P_INVIS unsichtbar machen.
+
+     Diese Property bestimmt die Ansicht des Objektes von aussen. Fuer die
+     Innen(kurz)ansicht von Raeumen muss man P_INT_LONG benutzen.
+
+BEMERKUNGEN
+-----------
+::
+
+     Die Funktion, die die Kurzbeschreibung ausgibt (short()), filtert P_SHORT
+     durch process_string(). Von der Nutzung dieses Features wird in neuem
+     Code abgeraten.
+     Soll eine dyn. Kurzbeschreibung geschaffen werden, bitte eine
+     F_QUERY_METHOD einsetzen oder short() passend ueberschreiben.
+
+BEISPIELE
+---------
+::
+
+     // eine Axt sieht natuerlich so aus:
+     SetProp(P_SHORT, "Eine Axt");
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches:	P_LONG, short()
+     Sonstiges:		P_INT_SHORT, process_string()
+
+
+27.05.2015, Zesstra
+
diff --git a/doc/sphinx/props/P_SHORT_CWD.rst b/doc/sphinx/props/P_SHORT_CWD.rst
new file mode 100644
index 0000000..a76cb42
--- /dev/null
+++ b/doc/sphinx/props/P_SHORT_CWD.rst
@@ -0,0 +1,21 @@
+P_SHORT_CWD
+===========
+
+NAME
+----
+::
+
+    P_SHORT_CWD                   "short_cwd"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/shells.h
+
+BESCHREIBUNG
+------------
+::
+
+     .readme bei cd ausgeben oder nicht
+
diff --git a/doc/sphinx/props/P_SHOWEMAIL.rst b/doc/sphinx/props/P_SHOWEMAIL.rst
new file mode 100644
index 0000000..abfb6f4
--- /dev/null
+++ b/doc/sphinx/props/P_SHOWEMAIL.rst
@@ -0,0 +1,23 @@
+P_SHOWEMAIL
+===========
+
+NAME
+----
+::
+
+     P_SHOWEMAIL                        "showemail"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Eintrag, wer die E-Mail im "finger" zu sehen bekommen soll:
+     0, "alle", "freunde"
+     Kann durch "emailanzeige" (/std/player/base.c) geaendert werden.
+
diff --git a/doc/sphinx/props/P_SHOW_ALIAS_PROCESSING.rst b/doc/sphinx/props/P_SHOW_ALIAS_PROCESSING.rst
new file mode 100644
index 0000000..e025ad1
--- /dev/null
+++ b/doc/sphinx/props/P_SHOW_ALIAS_PROCESSING.rst
@@ -0,0 +1,21 @@
+P_SHOW_ALIAS_PROCESSING
+=======================
+
+NAME
+----
+::
+
+    P_SHOW_ALIAS_PROCESSING       "show_alias_processing"       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player.h
+
+BESCHREIBUNG
+------------
+::
+
+     Arbeit des Parsers beobachten (debugging)
+
diff --git a/doc/sphinx/props/P_SHOW_EXITS.rst b/doc/sphinx/props/P_SHOW_EXITS.rst
new file mode 100644
index 0000000..6949c6a
--- /dev/null
+++ b/doc/sphinx/props/P_SHOW_EXITS.rst
@@ -0,0 +1,31 @@
+P_SHOW_EXITS
+============
+
+NAME
+----
+::
+
+    P_SHOW_EXITS                  "show_exits"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Im Spieler gesetzt, wenn der Spieler die offensichtlichen Ausgaenge
+     immer automatisch sehen will.
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches:	P_HIDE_EXITS
+     Sonstiges:		AddExit(), GetExits(), int_long(), int_short()
+
+11. Mai 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_SHOW_INV.rst b/doc/sphinx/props/P_SHOW_INV.rst
new file mode 100644
index 0000000..c5fea36
--- /dev/null
+++ b/doc/sphinx/props/P_SHOW_INV.rst
@@ -0,0 +1,33 @@
+P_SHOW_INV
+==========
+
+NAME
+----
+::
+
+     P_SHOW_INV "show_inv"
+
+DEFINIERT IN
+------------
+::
+
+     <thing/description.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn diese Property auf einen Wert ungleich 0 gesetzt ist, wird das
+     Objekt, soweit es sich in einem Spieler befindet, in dessen
+     Langbeschreibung angezeigt. Zur Anzeige wird der Name des Objektes
+     verwendet.
+
+SIEHE AUCH
+----------
+::
+
+     /std/thing/description.c
+
+
+Last modified: Sun May 19 20:36:05 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_SHOW_MSG.rst b/doc/sphinx/props/P_SHOW_MSG.rst
new file mode 100644
index 0000000..7430ffb
--- /dev/null
+++ b/doc/sphinx/props/P_SHOW_MSG.rst
@@ -0,0 +1,69 @@
+P_SHOW_MSG
+==========
+
+NAME
+----
+::
+
+    P_SHOW_MSG                          "show_message"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/put_and_get.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mit P_SHOW_MSG kann man die Meldungen, die beim Vorzeigen eines Objektes
+    ausgegeben werden, modifizieren.
+
+    Folgende Werte sind moeglich:
+
+    o 0
+      Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
+
+    o NO_PNG_MSG        == -1
+      Es wird keinerlei Meldung ausgegeben
+
+    o Ein Array aus Strings
+      Der erste String wird an den Spieler ausgegeben, der zweite
+      (optionale) an den Raum, der dritte (ebenfalls optionale) an den
+      Empfaenger.
+
+      Die Strings werden durch die Funktion replace_personal() geparst.
+        Objekt1 - Spieler
+        Objekt2 - das Objekt, das uebergeben wird
+        Objekt3 - Empfaenger
+
+      Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
+      Raum. Beim Fehlen des dritten gibt es keine Meldung an den Empfaenger.
+
+BEISPIEL
+--------
+::
+
+    SetProp(P_SHOW_MSG, ({
+      "Du haeltst @WEM3 @WEN2 unter die Nase.",
+      "@WER1 haelt @WEM3 @WENU2 unter die Nase.",
+      "@WER1 haelt Dir @WENU2 unter die Nase."
+    }));
+
+    Das fuehrt bei Ugars "zeig peter medaille" zu folgenden Meldungen:
+
+    Ugar: "Du haeltst Peter die Medaille unter die Nase."
+    Raum: "Ugar haelt Peter eine Medaille unter die Nase."
+    Peter: "Ugar haelt Dir eine Medaille unter die Nase."
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_DROP_MSG, P_PUT_MSG, P_PICK_MSG, P_GIVE_MSG
+     Sonstiges:  replace_personal(E), show(L), show_objects(L),
+                 show_notify(L), /std/living/put_and_get.c
+
+3. Juni 2008 Amynthor
+
diff --git a/doc/sphinx/props/P_SIBLINGS.rst b/doc/sphinx/props/P_SIBLINGS.rst
new file mode 100644
index 0000000..4b48849
--- /dev/null
+++ b/doc/sphinx/props/P_SIBLINGS.rst
@@ -0,0 +1,22 @@
+P_SIBLINGS
+==========
+
+NAME
+----
+::
+
+    P_SIBLINGS                     "siblings"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Enthaelt einen String mit den Blutsbruedern eines Spielers
+     (sofern vorhanden).
+
diff --git a/doc/sphinx/props/P_SIZE.rst b/doc/sphinx/props/P_SIZE.rst
new file mode 100644
index 0000000..bf6d182
--- /dev/null
+++ b/doc/sphinx/props/P_SIZE.rst
@@ -0,0 +1,50 @@
+P_SIZE
+======
+
+NAME
+----
+::
+
+    P_SIZE                        "size"                        
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Groesse des Lebewesens bzw. Laenge der Waffe (in cm).
+
+     Wird keine Waffenlaenge explizit angegeben, so sind die Defaultwerte
+     fuer die entsprechenden Waffentypen folgende:
+
+    	WT_SWORD  : 100
+    	WT_AXE    :  80
+    	WT_CLUB   :  80
+    	WT_SPEAR  : 180
+    	WT_KNIFE  :  20
+    	WT_WHIP   : 200
+    	WT_STAFF  : 150
+
+BEMERKUNGEN
+-----------
+::
+
+     1. Uebertreibt es bitte mit der Groesse nicht, auch sehr grosse NPCs 
+        sollten nicht ueber 1000000 liegen. Sonst kriegt die Karategilde 
+        Probleme.
+     2. Negative Werte fuer P_SIZE sind nicht moeglich, da dies zum einen
+        voellig unsinnig ist und zum anderen evtl. zu Problemen mit Waffen
+        fuehrt, die Schaden in Abhaengigkeit von P_SIZE machen und sich
+        darauf verlassen, dass nur positive Werte vorkommen.
+
+LETZTE AENDERUNG
+----------------
+::
+
+    2006-09-29, von Zesstra
+
diff --git a/doc/sphinx/props/P_SKILLS.rst b/doc/sphinx/props/P_SKILLS.rst
new file mode 100644
index 0000000..11f06c3
--- /dev/null
+++ b/doc/sphinx/props/P_SKILLS.rst
@@ -0,0 +1,31 @@
+P_SKILLS
+========
+
+NAME
+----
+::
+
+	P_SKILLS			"skills"                      
+
+DEFINIERT IN
+------------
+::
+
+	/sys/player/skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property sollte nicht mehr verwendet werden. Sie wurde
+	vollstaendig durch P_NEWSKILLS ersetzt.
+
+SIEHE AUCH
+----------
+::
+
+	P_NEW_SKILLS
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_SKILL_ATTRIBUTES.rst b/doc/sphinx/props/P_SKILL_ATTRIBUTES.rst
new file mode 100644
index 0000000..6842bfd
--- /dev/null
+++ b/doc/sphinx/props/P_SKILL_ATTRIBUTES.rst
@@ -0,0 +1,69 @@
+P_SKILL_ATTRIBUTES
+==================
+
+NAME
+----
+::
+
+    P_SKILL_ATTRIBUTES        "skill_attr"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/skill_attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Prop stehen alle nicht-permanenten Modifikatoren der
+    Skill-Attribute.
+    Die Datenstruktur ist ein Mapping mit den SA-Namen als Schluessel und
+    jeweils drei Werten pro Schluessel.
+    Der erste Wert ist ein Array mit drei Werten: der Summe der stat.
+    Modifier, dem Zeitpunkt an dem dies Summe ungueltig wird und der
+    Gesamtzahl aktiver Modifikatoren.
+    Der zweite Wert enthaelt ein Mapping mit allen statischen Modifikatoren
+    und den Objekten dieser Mods als Schluessel. Die beiden Werte dieses
+    Mappings sind der Wert des Modifikators (int) und die Ablaufzeit (int).
+    Der dritte Wert enthaelt ein Mapping mit allen dynamischen
+    Modifikatoren und den Objekten dieser Mods als Schluessel. Die beiden
+    Werte dieses Mappings sind die zu rufende Closure (closure) und die
+    Ablaufzeit des Mods (int).
+
+    ([ SA_ATTR: ({Summe_Stat_Modifier, Zeitpunkt, AnzahlModifier, });
+                ([ ob1:value;duration,
+                   ob2:value;duration, ...]);  // stat. Modifier
+                ([ ob1:closure;duration,
+                   ob2:closure;duration, ...])     // dyn. Modifier
+                ,
+       SA_ATTR2: ({...}); ([]); ([]),
+       SA_ATTR3: ({...}); ([]); ([]),
+    ])
+
+BEMERKUNGEN
+-----------
+::
+
+    Diese Property darf AUF GAR KEINEN FALL per Hand manipuliert werden,
+    dafuer gibt es die Funktionen ModifySkillAttribute() und
+    RemoveSkillAttributeModifier().
+    Zum Auslesen stehen QuerySkillAttribute() und
+    QuerySkillAttributeModifier() zur Verfuegung.
+
+SIEHE AUCH
+----------
+::
+
+    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
+    * Nutzung:      UseSpell, UseSkill
+    * Abfragen:     QuerySkill, QuerySkillAbility
+    * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
+                    QuerySkillAttributeModifier, RemoveSkillAttributeModifier
+      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
+    * sonstig:      spruchermuedung, skill_info_liste
+    * Properties:   P_NEWSKILLS
+
+13.09.2008, Zesstra
+
diff --git a/doc/sphinx/props/P_SKILL_ATTRIBUTE_OFFSETS.rst b/doc/sphinx/props/P_SKILL_ATTRIBUTE_OFFSETS.rst
new file mode 100644
index 0000000..cd0c619
--- /dev/null
+++ b/doc/sphinx/props/P_SKILL_ATTRIBUTE_OFFSETS.rst
@@ -0,0 +1,49 @@
+P_SKILL_ATTRIBUTE_OFFSETS
+=========================
+
+NAME
+----
+::
+
+    P_SKILL_ATTRIBUTE_OFFSETS       "skill_attr_offsets"                        
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/skill_attributes.h
+
+BESHREIBUNG
+-----------
+::
+
+    Der Wert der Property ist ein Mapping: ([Attributname: Wert])
+    In dieser Property stehen permanente Abweichungen der Skillattribute
+    vom Standardwert 100.
+
+    Zu den Moeglichen Attributwerten, siehe P_SKILL_ATTRIBUTES.
+
+    Die Werte duerfen zwischen 10 und 1000 liegen.
+
+BEMERKUNG
+---------
+::
+
+    Diese Property sollte AUF GAR KEINEN FALL in einem Spieler gesetzt
+    werden, ohne Ruecksprachen mit allerhoechsten Stellen!
+
+SIEHE AUCH
+----------
+::
+
+    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
+    * Nutzung:      UseSpell, UseSkill
+    * Abfragen:     QuerySkill, QuerySkillAbility
+    * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
+                    QuerySkillAttributeModifier, RemoveSkillAttributeModifier
+      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
+    * sonstig:      spruchermuedung, skill_info_liste
+    * Properties:   P_NEWSKILLS
+
+31.12.2013, Zesstra
+
diff --git a/doc/sphinx/props/P_SMELLS.rst b/doc/sphinx/props/P_SMELLS.rst
new file mode 100644
index 0000000..ec53aa6
--- /dev/null
+++ b/doc/sphinx/props/P_SMELLS.rst
@@ -0,0 +1,43 @@
+P_SMELLS
+========
+
+NAME
+----
+::
+
+    P_SMELLS            "smell_details"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property entspricht dem P_DETAILS fuer Standarddetails,
+    nur werden hierin Gerueche gespeichert:
+    Diese Property enthaelt ein Mapping, in der Details im Objekt
+    definiert werden und Beschreibungen, die ausgegeben werden, wenn man
+    sich diese Details anschaut.
+
+BEMERKUNGEN
+-----------
+::
+
+    Man sollte diese Property nicht per Hand veraendern, sondern die
+    Funktionen nutzen.
+
+SIEHE AUCH
+----------
+::
+
+    Setzen:    AddSmells()
+    Loeschen:  RemoveSmells()
+    Aehnlich:  AddDetail(), P_DETAILS
+    Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
+
diff --git a/doc/sphinx/props/P_SNOOPFLAGS.rst b/doc/sphinx/props/P_SNOOPFLAGS.rst
new file mode 100644
index 0000000..4fe7ec6
--- /dev/null
+++ b/doc/sphinx/props/P_SNOOPFLAGS.rst
@@ -0,0 +1,21 @@
+P_SNOOPFLAGS
+============
+
+NAME
+----
+::
+
+    P_SNOOPFLAGS                  "snoopflags"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/snooping.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_SOUNDS.rst b/doc/sphinx/props/P_SOUNDS.rst
new file mode 100644
index 0000000..6ba71ad
--- /dev/null
+++ b/doc/sphinx/props/P_SOUNDS.rst
@@ -0,0 +1,43 @@
+P_SOUNDS
+========
+
+NAME
+----
+::
+
+    P_SOUNDS            "sound_details"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property entspricht dem P_DETAILS fuer Standarddetails,   
+    nur werden hierin Gerauesche gespeichert:
+    Diese Property enthaelt ein Mapping, in der Details im Objekt
+    definiert werden und Beschreibungen, die ausgegeben werden, wenn man
+    sich diese Details anschaut.
+
+BEMERKUNGEN
+-----------
+::
+
+    Man sollte diese Property nicht per Hand veraendern, sondern die
+    Funktionen nutzen.
+
+SIEHE AUCH
+----------
+::
+
+    Setzen:    AddSounds()
+    Loeschen:  RemoveSounds()
+    Aehnlich:  AddDetail(), P_DETAILS
+    Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
+
diff --git a/doc/sphinx/props/P_SP.rst b/doc/sphinx/props/P_SP.rst
new file mode 100644
index 0000000..33978ef
--- /dev/null
+++ b/doc/sphinx/props/P_SP.rst
@@ -0,0 +1,38 @@
+P_SP
+====
+
+NAME
+----
+::
+
+    P_SP                          "sp"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     - Lebewesen
+       Anzahl der Konzentrationspunkte des Wesens.
+
+     - Speisen/Kneipen
+       Heilwirkung einer Portion der Speise auf die Konzentrationspunkte
+       des Konsumenten
+
+SIEHE AUCH
+----------
+::
+
+     Props:		P_MAX_SP
+     Veraenderung:	reduce_spell_points(), restore_spell_points()
+			buffer_sp()
+     Speisen/Kneipen:   std/pub, wiz/food, consume
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_SPECIAL_DETAILS.rst b/doc/sphinx/props/P_SPECIAL_DETAILS.rst
new file mode 100644
index 0000000..e8f7c2b
--- /dev/null
+++ b/doc/sphinx/props/P_SPECIAL_DETAILS.rst
@@ -0,0 +1,42 @@
+P_SPECIAL_DETAILS
+=================
+
+NAME
+----
+::
+
+    P_SPECIAL_DETAILS             "special_details"             
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mapping von Details, die beim Anschauen eine Funktion starten.
+
+BEMERKUNGEN
+-----------
+::
+
+    Dies ist keine "echte" Property. Die Daten werden bei der Abfrage in einer
+    Querymethode dynamisch aus P_DETAILS extrahiert. Dementsprechend
+    funktioniert es auch nicht, hier eine Query- oder Setmethode von aussen
+    drauf zu legen.
+
+SIEHE AUCH
+----------
+::
+
+    Setzen:    AddDetail()
+    Loeschen:  RemoveDetail()
+    Daten:     P_DETAILS
+    Veraltet:  AddSpecialDetail(), RemoveSpecialDetail()
+    Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
+
diff --git a/doc/sphinx/props/P_SPECIAL_EXITS.rst b/doc/sphinx/props/P_SPECIAL_EXITS.rst
new file mode 100644
index 0000000..8a11c3e
--- /dev/null
+++ b/doc/sphinx/props/P_SPECIAL_EXITS.rst
@@ -0,0 +1,51 @@
+P_SPECIAL_EXITS
+===============
+
+NAME
+----
+::
+
+    P_SPECIAL_EXITS               "special_exits"               
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt ein Mapping (der Breite 2) mit den Ausgaengen, der Funktion,
+    die jeweils gerufen wird, wenn der Ausgang benutztwird und einer
+    Bewegungsmeldung.
+
+    
+
+    Die Bewegungsmeldung wird bei SpecialExits nicht ausgewertet, sondern
+    ist nur aufgrund der gemeinsamen Datenstruktur vorhanden. Im Normalfall
+    ist sie 0.
+
+BEMERKUNG
+---------
+::
+
+    Keine echte Property, wird bei der Abfrage aus P_EXITS erstellt.
+
+    
+
+    Zugriff nur mit den dafuer vorgesehenen Funktionen, nicht aendern!
+
+SIEHE AUCH
+----------
+::
+
+     AddExit(), AddSpecialExit(), GetExits(),
+     RemoveExit(), RemoveSpecialExit(),
+     GuardExit(),
+     H_HOOK_EXIT_USE, P_EXITS, P_HIDE_EXITS, /std/room/exits.c
+     ausgaenge
+
+Letzte Aenderung: 22.12.2016, Bugfix
+
diff --git a/doc/sphinx/props/P_SPELLRATE.rst b/doc/sphinx/props/P_SPELLRATE.rst
new file mode 100644
index 0000000..b6e8249
--- /dev/null
+++ b/doc/sphinx/props/P_SPELLRATE.rst
@@ -0,0 +1,21 @@
+P_SPELLRATE
+===========
+
+NAME
+----
+::
+
+    P_SPELLRATE                   "spellrate"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     NPC-Spellrate (in %)
+
diff --git a/doc/sphinx/props/P_SPELLS.rst b/doc/sphinx/props/P_SPELLS.rst
new file mode 100644
index 0000000..560912b
--- /dev/null
+++ b/doc/sphinx/props/P_SPELLS.rst
@@ -0,0 +1,21 @@
+P_SPELLS
+========
+
+NAME
+----
+::
+
+    P_SPELLS                      "spells"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     NPC-Spells
+
diff --git a/doc/sphinx/props/P_SP_DELAY.rst b/doc/sphinx/props/P_SP_DELAY.rst
new file mode 100644
index 0000000..9e72d2c
--- /dev/null
+++ b/doc/sphinx/props/P_SP_DELAY.rst
@@ -0,0 +1,23 @@
+P_SP_DELAY
+==========
+
+NAME
+----
+::
+
+    P_SP_DELAY                 "sp_delay"                     
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der heart_beats, bis die Magiepunkte um einen Punkt steigen.
+     Aenderungen dieser Property in Spielern beduerfen der 
+     Genehmigung des EM fuer Balance.
+
diff --git a/doc/sphinx/props/P_START_HOME.rst b/doc/sphinx/props/P_START_HOME.rst
new file mode 100644
index 0000000..f81b611
--- /dev/null
+++ b/doc/sphinx/props/P_START_HOME.rst
@@ -0,0 +1,21 @@
+P_START_HOME
+============
+
+NAME
+----
+::
+
+    P_START_HOME                  "start_home"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Raum, in dem der Spieler nach dem Einloggen landen soll
+
diff --git a/doc/sphinx/props/P_STD_OBJECT.rst b/doc/sphinx/props/P_STD_OBJECT.rst
new file mode 100644
index 0000000..6e3e583
--- /dev/null
+++ b/doc/sphinx/props/P_STD_OBJECT.rst
@@ -0,0 +1,59 @@
+P_STD_OBJECT
+============
+
+NAME
+----
+::
+
+    P_STD_OBJECT                  "std_object"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/v_compiler.h
+
+BESCHREIBUNG
+------------
+::
+
+   Enthaelt den Namen eines Files welches als Standard-Objekt fuer den 
+   Virtual Compiler gelten soll.
+
+   In diesem File werden das generelle Aussehen, Ausgaenge, Funktionen
+   usw. der VC-generierten Raeume / Objekte festgelegt.
+
+   Dieses File ist ein 'normales' .c - File, welches geclont wird und
+   anschliessend umbenannt wird.
+
+   
+
+   Ganz wichtig: Falls euer Standardobjekt (direkt oder indirekt) von
+   /std/room.c erbt, solltet ihr darauf achten, dass euer Objekt ausser dem
+   create() noch eine weitere (beliebige) Funktion hat.  
+   Ansonsten wuerde das Programm eures Standardobjekts automatisch durch
+   /std/room.c ersetzt, was in der Regel zu schwer zu findenen Bugs fuehrt.
+
+BEISPIEL
+--------
+::
+
+   (create eines VCs)
+   protected void create() {
+     ...
+     SetProp(P_STD_OBJECT,"/d/region/magier/vc/std_raum");
+     ...
+   }
+
+   Was in diesem std_raum.c nun steht, wird in jedem VC-Clone
+   verfuegbar. Sei es Details, Gerueche, auch Objekte die per 
+   AddItem eingebunden sind, ...
+
+SIEHE AUCH
+----------
+::
+
+   P_COMPILER_PATH, virtual_compiler
+
+Letzte Aenderung: 22.10.07 von Zesstra
+
diff --git a/doc/sphinx/props/P_STORE_CONSUME.rst b/doc/sphinx/props/P_STORE_CONSUME.rst
new file mode 100644
index 0000000..aa5737a
--- /dev/null
+++ b/doc/sphinx/props/P_STORE_CONSUME.rst
@@ -0,0 +1,70 @@
+P_STORE_CONSUME
+===============
+
+NAME
+----
+::
+
+	P_STORE_CONSUME			"store_consume"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/bank.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property ist entscheidend dafuer, wieviel Prozent an Objekten
+	bei jedem Reset in einem Lager eines Ladens vernichtet werden. Dies
+	geschieht aus Speicher- und Laggruenden. Es verbleibt dabei jedoch
+	eine Grundmenge an Objekten, deren Anzahl in der Property
+	P_MIN_STOCK festgehalten ist. Standardwert fuer P_STORE_CONSUME ist
+	hierbei 30%, aber in oft benutzten Laeden kann man dort ruhig einen
+	hoeheren Wert eintragen. Erlaubt sind Werte zwischen 0% und 100%.
+	Aufgeraeumt werden jedoch keine Objekte, die mittels AddItem() im
+	Lager eingebunden wurden. Mittels der Ladenfunktion AddFixedObject()
+	als staendig verfuegbar markierte Objekte werden natuerlich auch
+	nicht beruecksichtigt.
+	Beide hier erwaehnten Properties sollten ueberigens nur mittels
+	QueryProp/SetProp ausgelesen bzw. veraendert werden.
+
+BEISPIEL
+--------
+::
+
+	Ein eigener haeufig benutzter Laden koennte ein Lager in folgender
+	Form erhalten:
+	  // myStore
+	  #include <bank.h>
+	  inherit "std/store";
+	  void create()
+	  { ::create();
+	    SetProp(P_STORE_CONSUME,90);
+	    // keine weiteren Beschreibungen, Spieler sollen da drin
+	    // schliesslich nicht rumwuseln
+	  }
+	Um das Lager dem Laden zuzuweisen, nutzt man folgendes:
+	  // myShop
+	  inherit "std/laden";
+	  void create()
+	  { ::create();
+	    SetStorageRoom("pfad/myStore");
+	    // Beschreibungen folgen
+	    ...
+	  }
+	Es werden hierbei waehrend jedes Lager-Resets 90% der im Lager
+	befindlichen Objekte vernichtet.
+
+SIEHE AUCH
+----------
+::
+
+	P_MIN_STOCK, SetStorageRoom(), /std/store.c, /std/shop.c
+	AddItem(), RemoveItem(), AddFixedObject(), RemoveFixedObject()
+
+
+Last modified: 19-Jun-2015, Arathorn 
+
diff --git a/doc/sphinx/props/P_STRETCH_TIME.rst b/doc/sphinx/props/P_STRETCH_TIME.rst
new file mode 100644
index 0000000..b2e7aa7
--- /dev/null
+++ b/doc/sphinx/props/P_STRETCH_TIME.rst
@@ -0,0 +1,34 @@
+P_STRETCH_TIME
+==============
+
+NAME
+----
+::
+
+    P_STRETCH_TIME     "stretch_time"
+
+DEFINIERT IN
+------------
+::
+
+    <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt die Zeit in Runden (2s), die man braucht, um eine Fernwaffe zu
+    spannen/benutzen. Zaehlt seit dem letzten Schuss oder der Zeit des
+    Zueckens (P_EQUIP_TIME).
+
+SIEHE AUCH
+----------
+::
+
+    Generell:  P_AMMUNITION, P_SHOOTING_WC
+    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+    Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
+    Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
+
diff --git a/doc/sphinx/props/P_SUBGUILD_TITLE.rst b/doc/sphinx/props/P_SUBGUILD_TITLE.rst
new file mode 100644
index 0000000..5759932
--- /dev/null
+++ b/doc/sphinx/props/P_SUBGUILD_TITLE.rst
@@ -0,0 +1,38 @@
+P_SUBGUILD_TITLE
+================
+
+NAME
+----
+::
+
+     P_SUBGUILD_TITLE		"subguild_title"                       
+
+DEFINIERT IN
+------------
+::
+
+     /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt eventuelle Zusatztitel eines Spielers, den er
+     innerhalb einer Gilde traegt. Das kann z.B. ein Clan sein, ein Zweig oder
+     einfach nur der Gildenrang.
+
+BEMERKUNGEN
+-----------
+::
+
+     Inhalt der Property kann 0 sein oder ein String.  Ein Zusatztitel kann
+     mittels P_VISIBLE_SUBGUILD_TITLE vorgetaeuscht werden.
+
+SIEHE AUCH
+----------
+::
+
+     P_GUILD_TITLE, P_VISIBLE_SUBGUILD_TITLE
+
+26. Maerz 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_SYNTAX_HELP.rst b/doc/sphinx/props/P_SYNTAX_HELP.rst
new file mode 100644
index 0000000..04710b4
--- /dev/null
+++ b/doc/sphinx/props/P_SYNTAX_HELP.rst
@@ -0,0 +1,62 @@
+P_SYNTAX_HELP
+=============
+
+NAME
+----
+::
+
+    P_SYNTAX_HELP              "lib_p_syntax_help"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/commands.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Property kann man fuer Spieler eine ausfuehrliche Syntaxhilfe zu
+    den Kommandos eines Objektes ablegen. Diese wird angezeigt, wenn der
+    Spieler das Kommando "synxtaxhilfe <objekt>" eingibt.
+    Die Property kann verschiedene Datenstrukturen enthalten:
+
+    1) ein String
+    Der String wird angezeigt, hierbei ggf. umgebrochen, vorhandene
+    Zeilenumbrueche werden beibehalten.
+
+    2) ein Array: ({hilfetext, bedingungen})
+
+    <hilfetext>:
+      * ein string:
+        Der String wird angezeigt, hierbei ggf. umgebrochen, vorhandene
+        Zeilenumbrueche werden beibehalten.
+      * eine lfun-closure:
+        Diese erhaelt beim Aufruf das betreffende Objekt als Argument.
+        Wenn diese dann einen String zurueckliefert, wird dieser dem Spieler
+        angezeigt. Hierbei wird ggf. umgebrochen, vorhandene Zeilenumbrueche
+        werden beibehalten.
+
+    <bedingungen>, welche erfuellt sein muessen, damit dem Spieler die Hilfe
+    angezeigt wird. Die Bedingungen sind entweder:
+      * ein Mapping fuer check_restriction()
+      * eine lfun-closure
+        Diese erhaelt beim Aufruf das betreffende Objekt als Argument und darf
+        eine 0 fuer 'erlaubt', 1 fuer 'nicht erlaubt (mit Standardtext)' oder
+        einen string fuer 'nicht erlaubt mit individuellem Text' sein.
+
+BEMERKUNGEN
+-----------
+::
+
+    Hat ein Objekt keine Syntaxhilfe, wird das Kommando "syntaxhilfe" aus dem
+    Objekt wieder entfernt (d.h. die Property muss gesetzt sein, bevor der
+    erste Spieler das Kommando eingibt).
+
+SIEHE AUCH
+----------
+::
+
+    AddCmd
+
diff --git a/doc/sphinx/props/P_TARGET_AREA.rst b/doc/sphinx/props/P_TARGET_AREA.rst
new file mode 100644
index 0000000..e6d3f44
--- /dev/null
+++ b/doc/sphinx/props/P_TARGET_AREA.rst
@@ -0,0 +1,95 @@
+P_TARGET_AREA
+=============
+
+NAME
+----
+::
+
+    P_TARGET_AREA     "target_area"
+
+DEFINIERT IN
+------------
+::
+
+    <combat.h>
+
+BESCHREIBUNG
+------------
+::
+
+    Kann in einem Raum gesetzt werden, um einen anderen, von dort aus mit
+    Fernkampfwaffen beschiessbaren Raum als Objekt oder Objektnamen (zu
+    einem geladenen Objekt) festzulegen.
+
+BEMERKUNGEN
+-----------
+::
+
+    Ein Schuetze kann nur in den anderen Raum schiessen, wenn die P_RANGE
+    seiner Waffe mindest gleich der P_SHOOTING_AREA des Raums (nicht des
+    Zielraums) ist.
+
+    Idealerweise sollte in mit P_TARGET_AREA angegebenen Raeumen auch
+    P_NEVER_CLEAN gesetzt sein.
+
+BEISPIELE
+---------
+::
+
+    // #1 Ein Baum-Raum (/std/room)
+    void create() {
+      ::create();
+      SetProp(P_INT_SHORT, "Auf einem Baum");
+      SetProp(P_INT_LONG, break_string("Du hockst auf einem Baum und kannst "
+        "auf die Lichtung unter Dir sehen.\n");
+
+      AddExit("unten", RAEUME("lichtung"));
+
+      SetProp(P_TARGET_AREA, RAEUME("lichtung"));  // Lichtung beschiessbar
+      SetProp(P_SHOOTING_AREA, 15);                // 15 Entfernung
+    }
+
+    // #2 Ein Elefanten-Transporter (/std/transport)
+    // Er trampelt durch mehrere Raeume durch und der Schuetze kann vom
+    // Ruecken des Elefanten aus auf Gegner draussen schiessen.
+    void create() {
+      ::create();
+      SetProp(P_NAME, "Kampfelefant");
+      AddId(({"elefant", "kampfelefant")});
+      SetProp(P_GENDER, MALE);
+      SetProp(P_SHORT, "Ein Kampfelefant");
+      SetProp(P_INT_SHORT, "Auf einem Kampfelefanten");
+      // P_LONG, P_INT_LONG
+
+      SetProp(P_ENTERCMDS, ({"kletter", "erkletter"}));
+      SetProp(P_LEAVECMDS, ({"verlass", "verlasse"}));
+
+      SetProp(P_ARRIVEMSG, ({"Der Elefant trampelt in einen Raum.\n",
+                             "Ein Kampfelefant trampelt herein.\n"}));
+      SetProp(P_DEPARTMSG, ({"Der Elefant trampelt weiter.\n",
+                             "Der Kampfelefant trampelt weiter.\n"}));
+
+      SetProp(P_SHOOTING_AREA, 8); // weiter als 8 sollte man schiessen
+
+      AddRoute(RAEUME("schlachtfeld"), 20+random(10), 6, "Schlachtfeld");
+      AddRoute(RAEUME("burgtor"), 20+random(10), 6, "Burgtor");
+      AddRoute(RAEUME("burghof"), 20+random(10), 6, "Burghof");
+      AddRoute(RAEUME("halle"), 20+random(10), 6, "Halle");
+      AddRoute(RAEUME("bresche"), 20+random(10), 6, "Bresche");
+      // ...
+
+      Start();
+    }
+
+SIEHE AUCH
+----------
+::
+
+    Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
+    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+    Gebiet:    P_RANGE, P_SHOOTING_AREA
+    Raeume:    P_NEVER_CLEAN
+    Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
+
diff --git a/doc/sphinx/props/P_TEAM.rst b/doc/sphinx/props/P_TEAM.rst
new file mode 100644
index 0000000..0d8a798
--- /dev/null
+++ b/doc/sphinx/props/P_TEAM.rst
@@ -0,0 +1,40 @@
+P_TEAM
+======
+
+NAME
+----
+::
+
+	P_TEAM                         "team"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/team.h
+
+BESCHREIBUNG
+------------
+::
+
+	Liefert das Teamobjekt, falls Spieler in einem Team ist, sonst 0.
+
+SIEHE AUCH
+----------
+::
+
+        Uebersicht: teamkampf
+        Properties: P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
+                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+        Bewegung:   IsTeamMove, TeamFlee
+        Mitglieder: IsTeamLeader, TeamMembers
+        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+                    SelectFarEnemy
+        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+                    PresentTeamPosition, SwapRows
+        Sonstiges:  TeamPrefix, teamkampf_intern
+
+
+Last modified: 16-08-2010, Gabylon
+
diff --git a/doc/sphinx/props/P_TEAM_ASSOC_MEMBERS.rst b/doc/sphinx/props/P_TEAM_ASSOC_MEMBERS.rst
new file mode 100644
index 0000000..8093109
--- /dev/null
+++ b/doc/sphinx/props/P_TEAM_ASSOC_MEMBERS.rst
@@ -0,0 +1,49 @@
+P_TEAM_ASSOC_MEMBERS
+====================
+
+NAME
+----
+::
+
+	P_TEAM_ASSOC_MEMBERS           "team_assoc_members"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/team.h
+
+BESCHREIBUNG
+------------
+::
+
+	Array mit den zugeordneten NPCs des Spielers bzw. der Spieler,
+	dem dieser NPC zugeordnet ist.
+	Zugeordnete NPCs sind automatisch im Team des Spielers.
+
+BEMERKUNG
+---------
+::
+
+	Der Zugriff auf diese Property sollte ueber AssocMember()
+	bzw. DeAssocMember() erfolgen.
+
+SIEHE AUCH
+----------
+::
+
+        Uebersicht: teamkampf
+        Properties: P_TEAM, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
+                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+        Bewegung:   IsTeamMove, TeamFlee
+        Mitglieder: IsTeamLeader, TeamMembers
+        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+                    SelectFarEnemy
+        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+                    PresentTeamPosition, SwapRows
+        Sonstiges:  TeamPrefix, teamkampf_intern
+
+
+Last modified: 16-08-2010, Gabylon
+
diff --git a/doc/sphinx/props/P_TEAM_ATTACK_CMD.rst b/doc/sphinx/props/P_TEAM_ATTACK_CMD.rst
new file mode 100644
index 0000000..67fb26d
--- /dev/null
+++ b/doc/sphinx/props/P_TEAM_ATTACK_CMD.rst
@@ -0,0 +1,40 @@
+P_TEAM_ATTACK_CMD
+=================
+
+NAME
+----
+::
+
+	P_TEAM_ATTACK_CMD              "team_attack_cmd"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/team.h
+
+BESCHREIBUNG
+------------
+::
+
+	Angriffsbefehl des Spielers, nicht setzbar.
+
+SIEHE AUCH
+----------
+::
+
+        Uebersicht: teamkampf
+        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_AUTOFOLLOW,
+                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+        Bewegung:   IsTeamMove, TeamFlee
+        Mitglieder: IsTeamLeader, TeamMembers
+        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+                    SelectFarEnemy
+        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+                    PresentTeamPosition, SwapRows
+        Sonstiges:  TeamPrefix, teamkampf_intern
+
+
+Last modified: 16-08-2010, Gabylon
+
diff --git a/doc/sphinx/props/P_TEAM_AUTOFOLLOW.rst b/doc/sphinx/props/P_TEAM_AUTOFOLLOW.rst
new file mode 100644
index 0000000..c972faa
--- /dev/null
+++ b/doc/sphinx/props/P_TEAM_AUTOFOLLOW.rst
@@ -0,0 +1,40 @@
+P_TEAM_AUTOFOLLOW
+=================
+
+NAME
+----
+::
+
+	P_TEAM_AUTOFOLLOW              "team_autofollow"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/team.h
+
+BESCHREIBUNG
+------------
+::
+
+	Folgewunsch des Spielers, nicht setzbar.
+
+SIEHE AUCH
+----------
+::
+
+        Uebersicht: teamkampf
+        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
+                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+        Bewegung:   IsTeamMove, TeamFlee
+        Mitglieder: IsTeamLeader, TeamMembers
+        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+                    SelectFarEnemy
+        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+                    PresentTeamPosition, SwapRows
+        Sonstiges:  TeamPrefix, teamkampf_intern
+
+
+Last modified: 16-08-2010, Gabylon
+
diff --git a/doc/sphinx/props/P_TEAM_COLORS.rst b/doc/sphinx/props/P_TEAM_COLORS.rst
new file mode 100644
index 0000000..99ca3a1
--- /dev/null
+++ b/doc/sphinx/props/P_TEAM_COLORS.rst
@@ -0,0 +1,41 @@
+P_TEAM_COLORS
+=============
+
+NAME
+----
+::
+
+	P_TEAM_COLORS                  "team_colors"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/team.h
+
+BESCHREIBUNG
+------------
+::
+
+	Grenzwerte fuer farbige Anzeige im Teaminfo.
+	Array mit 4 Werten: ({ lp_rot, lp_gelb, sp_rot, sp_gelb })
+
+SIEHE AUCH
+----------
+::
+
+        Uebersicht: teamkampf
+        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
+                    P_TEAM_AUTOFOLLOW, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+        Bewegung:   IsTeamMove, TeamFlee
+        Mitglieder: IsTeamLeader, TeamMembers
+        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+                    SelectFarEnemy
+        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+                    PresentTeamPosition, SwapRows
+        Sonstiges:  TeamPrefix, teamkampf_intern
+
+
+Last modified: 16-08-2010, Gabylon
+
diff --git a/doc/sphinx/props/P_TEAM_LEADER.rst b/doc/sphinx/props/P_TEAM_LEADER.rst
new file mode 100644
index 0000000..9ddae0e
--- /dev/null
+++ b/doc/sphinx/props/P_TEAM_LEADER.rst
@@ -0,0 +1,40 @@
+P_TEAM_LEADER
+=============
+
+NAME
+----
+::
+
+	P_TEAM_LEADER                  "team_leader"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/team.h
+
+BESCHREIBUNG
+------------
+::
+
+	Liefert das Teamobjekt, falls Spieler Anfuehrer eines Teams ist.
+
+SIEHE AUCH
+----------
+::
+
+        Uebersicht: teamkampf
+        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
+                    P_TEAM_AUTOFOLLOW, P_TEAM_COLORS, P_TEAM_NEWMEMBER,
+                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+        Bewegung:   IsTeamMove, TeamFlee
+        Mitglieder: IsTeamLeader, TeamMembers
+        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+                    SelectFarEnemy
+        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+                    PresentTeamPosition, SwapRows
+        Sonstiges:  TeamPrefix, teamkampf_intern
+
+
+Last modified: 16-08-2010, Gabylon
+
diff --git a/doc/sphinx/props/P_TEAM_NEWMEMBER.rst b/doc/sphinx/props/P_TEAM_NEWMEMBER.rst
new file mode 100644
index 0000000..6c9180c
--- /dev/null
+++ b/doc/sphinx/props/P_TEAM_NEWMEMBER.rst
@@ -0,0 +1,41 @@
+P_TEAM_NEWMEMBER
+================
+
+NAME
+----
+::
+
+	P_TEAM_NEWMEMBER               "potential_team_member"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/team.h
+
+BESCHREIBUNG
+------------
+::
+
+	Enthaelt das Objekt des Teamleaders, sobald ein Spieler um
+	Teamaufnahme gebeten hat, sonst 0.
+
+SIEHE AUCH
+----------
+::
+
+        Uebersicht: teamkampf
+        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
+                    P_TEAM_AUTOFOLLOW, P_TEAM_COLORS, P_TEAM_LEADER,
+                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+        Bewegung:   IsTeamMove, TeamFlee
+        Mitglieder: IsTeamLeader, TeamMembers
+        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+                    SelectFarEnemy
+        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+                    PresentTeamPosition, SwapRows
+        Sonstiges:  TeamPrefix, teamkampf_intern
+
+
+Last modified: 16-08-2010, Gabylon
+
diff --git a/doc/sphinx/props/P_TEAM_WANTED_ROW.rst b/doc/sphinx/props/P_TEAM_WANTED_ROW.rst
new file mode 100644
index 0000000..b590d86
--- /dev/null
+++ b/doc/sphinx/props/P_TEAM_WANTED_ROW.rst
@@ -0,0 +1,40 @@
+P_TEAM_WANTED_ROW
+=================
+
+NAME
+----
+::
+
+	P_TEAM_WANTED_ROW              "team_wanted_row"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/team.h
+
+BESCHREIBUNG
+------------
+::
+
+	Gewuenschte Reihe des Spielers (von 1 bis MAX_TEAMROWS)
+
+SIEHE AUCH
+----------
+::
+
+        Uebersicht: teamkampf
+        Properties: P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
+                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+                    P_TEAM_WIMPY_ROW
+        Bewegung:   IsTeamMove, TeamFlee
+        Mitglieder: IsTeamLeader, TeamMembers
+        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+                    SelectFarEnemy
+        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+                    PresentTeamPosition, SwapRows
+        Sonstiges:  TeamPrefix, teamkampf_intern
+
+
+Last modified: 16-08-2010, Gabylon
+
diff --git a/doc/sphinx/props/P_TEAM_WIMPY_ROW.rst b/doc/sphinx/props/P_TEAM_WIMPY_ROW.rst
new file mode 100644
index 0000000..9a3fe17
--- /dev/null
+++ b/doc/sphinx/props/P_TEAM_WIMPY_ROW.rst
@@ -0,0 +1,47 @@
+P_TEAM_WIMPY_ROW
+================
+
+NAME
+----
+::
+
+	P_TEAM_WIMPY_ROW               "team_wimpy_row"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/team.h
+
+BESCHREIBUNG
+------------
+::
+
+	Fluchtreihe des Spielers, von 1 bis MAX_TEAMROWS.
+
+BEMERKUNG
+---------
+::
+
+	Wenn die Fluchtreihe <=1 ist, ist die Flucht in eine hintere Reihe
+	deaktiviert.
+
+SIEHE AUCH
+----------
+::
+
+        Uebersicht: teamkampf
+        Properties: P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
+                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+                    P_TEAM_WANTED_ROW
+        Bewegung:   IsTeamMove, TeamFlee
+        Mitglieder: IsTeamLeader, TeamMembers
+        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+                    SelectFarEnemy
+        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+                    PresentTeamPosition, SwapRows
+        Sonstiges:  TeamPrefix, teamkampf_intern
+
+
+Last modified: 16-08-2010, Gabylon
+
diff --git a/doc/sphinx/props/P_TELNET_RTTIME.rst b/doc/sphinx/props/P_TELNET_RTTIME.rst
new file mode 100644
index 0000000..4064df6
--- /dev/null
+++ b/doc/sphinx/props/P_TELNET_RTTIME.rst
@@ -0,0 +1,43 @@
+P_TELNET_RTTIME
+===============
+
+NAME
+----
+::
+
+    P_TELNET_RTTIME                                  "p_lib_telnet_rttime"
+
+DEFINIERT IN
+------------
+::
+
+    /secure/telnetneg.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Properties steht die letzte gemessene 'round-trip' Zeit
+    (in Mikrosekunden) einer 'Telnet timing mark' vom MUD zum Client und
+    zurueck.
+
+    Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
+    Telnetnegotiations unterstuetzt und 'telnet keepalive' eingeschaltet
+    ist, ansonsten bleibt diese Property 0.
+    Die meisten Telnets/Clients antworten zumindest eine Ablehnung auf
+    die 'timing marks', so dass trotzdem eine Zeit bestimmt werden kann.
+
+    Die Prop kann nicht gesetzt werden bzw. es hat keinen Effekt.
+
+SIEHE AUCH
+----------
+::
+
+    P_TTY_COLS, P_TTY_ROWS, P_TTY_SHOW, P_TTY, P_TTY_TYPE
+
+LETZTE AeNDERUNG
+----------------
+::
+
+    03.02.2013, Zesstra
+
diff --git a/doc/sphinx/props/P_TESTPLAYER.rst b/doc/sphinx/props/P_TESTPLAYER.rst
new file mode 100644
index 0000000..3cfd0d7
--- /dev/null
+++ b/doc/sphinx/props/P_TESTPLAYER.rst
@@ -0,0 +1,48 @@
+P_TESTPLAYER
+============
+
+NAME
+----
+::
+
+    P_TESTPLAYER                  "testplayer"                  
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gesetzt, wenn der Spieler ein Testspieler ist. Enthaelt die UID des
+     Magiers, dem dieser Testie (momentan) gehoert.
+
+     
+
+     Bei Testspielern duerfen Skills geaendert werden, sie duerfen gezappt
+     werden und - ihre eigentliche Aufgabe - nicht angeschlossene Gebiete
+     testen.
+
+     AUSNAHMEN: Gildentesties duerfen nur sehr eingeschraenkt manipuliert
+                werden werden, da sie im ganzen Mud rumlaufen koennen,
+                Spielerkontakt haben und nach Abschluss der Tests ggf. sogar
+                die Testiemarkierung entfernt werden kann.
+
+                
+
+     Fuer Spielertesties, die von einem Spieler kontrolliert werden, gelten
+     teilweise besondere Regeln, s. 'spielertesties'.
+
+BEMERKUNGEN: 
+     P_TESTPLAYER kann nur per SetProp() gesetzt werden und das auch nur ein
+     Mal! Geloescht werden kann das Flag nur von EM+.
+
+ZULETZT GEAeNDERT
+-----------------
+::
+
+05.01.2010, Zesstra
+
diff --git a/doc/sphinx/props/P_TIMED_ATTR_MOD.rst b/doc/sphinx/props/P_TIMED_ATTR_MOD.rst
new file mode 100644
index 0000000..2afd305
--- /dev/null
+++ b/doc/sphinx/props/P_TIMED_ATTR_MOD.rst
@@ -0,0 +1,78 @@
+P_TIMED_ATTR_MOD
+================
+
+NAME
+----
+::
+
+    P_TIMED_ATTR_MOD         "timed_attr_mod"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Property werden Attribut-Modifikatoren gespeichert, die
+    nicht ueber laengere Zeit wirksam sein sollen.
+    Die Wirksamkeit der Modifikatoren kann an Zeit und Objekte
+    gebunden werden.
+
+    Intern werden die Modifikatoren in einer Datenstruktur der Form
+
+    ({
+       ({ Ablaufzeiten }),
+       ([ Key : Ablaufobjekt ]),
+       ([ Key : ([ Mapping mit den Modifikatoren ]);
+         Ablaufzeit ; Ablaufobjekt ; Nachrichtenempfaenger
+       ])
+    })
+
+    gespeichert mit:
+    * Ablaufzeiten:  Zeit in Sekunden seit 1. Jan 1970, 0.0:0 GMT
+    * Ablaufobjekte: Objekte, an deren Existenz die Attribut-
+                     veraenderungen gebunden sind
+    * Nachrichtenempfaenger:
+      Objekte/Klassen, welche ueber abgelaufene Attributveraenderung
+      durch den Aufruf von "NotifyTimedAttrModExpired" (mit key als
+      Argument) benachrichtigt werden.
+
+    Das Setzen der Werte erfolgt NUR ueber die Methoden SetTimedAttrModifier
+    und DeleteTimedAttrModifier.
+
+    Die Daten zu einem Key koennen ueber QueryTimedAttrModifier abgefragt
+    werden. Die Abfrage mittels QueryProp liefert eine Kopie der gueltigen
+    Datenstruktur, die per Query nicht (siehe Bemerkungen).
+
+    Die Bedingungen fuer die ueber P_TIMED_ATTR_MOD gesetzten
+    Attributveraenderungen werden im Heartbeat in der Funktion
+    attribute_hb ueberprueft. Eine verminderte Funktionalitaet im
+    Falle von Magiern ist somit kein Fehlerfall.
+
+BEMERKUNGEN
+-----------
+::
+
+    Keine echte Property. Die Methode _query_timed_attr_mod() in
+    /std/living/attributes.c stellt die Daten zusammen.
+
+    ACHTUNG: Bitte nur die bereitgestellten Methoden zur Manipulation
+             benutzen! Setzen als Property hat keinen Effekt.
+
+SIEHE AUCH
+----------
+::
+
+    QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+    SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+    SetTimedAttrModifier(), QueryTimedAttrModifier(),
+    DeleteTimedAttrModifier(),
+    P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_ATTRIBUTES_MODIFIER,
+    P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
+Last modified: Tue Jul 27 20:00:20 2004 by Muadib
+
diff --git a/doc/sphinx/props/P_TIMEZONE.rst b/doc/sphinx/props/P_TIMEZONE.rst
new file mode 100644
index 0000000..561f887
--- /dev/null
+++ b/doc/sphinx/props/P_TIMEZONE.rst
@@ -0,0 +1,23 @@
+P_TIMEZONE
+==========
+
+NAME
+----
+::
+
+    P_TIMEZONE                 "timezone"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Ein Integer-Wert, der bei der Uhrzeitmeldung und beim Befehl
+     "(uhr)zeit" beruecksichtig wird. Gibt die Anzahl der Stunden
+     Zeitabweichung von Berliner Zeit an.
+
diff --git a/doc/sphinx/props/P_TITLE.rst b/doc/sphinx/props/P_TITLE.rst
new file mode 100644
index 0000000..336d5f0
--- /dev/null
+++ b/doc/sphinx/props/P_TITLE.rst
@@ -0,0 +1,21 @@
+P_TITLE
+=======
+
+NAME
+----
+::
+
+    P_TITLE                       "title"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/description.h
+
+BESCHREIBUNG
+------------
+::
+
+     Titel des Spielers. Erscheint hinter dem Namen in Kurz/Langbeschreibung.
+
diff --git a/doc/sphinx/props/P_TOO_HEAVY_MSG.rst b/doc/sphinx/props/P_TOO_HEAVY_MSG.rst
new file mode 100644
index 0000000..e42fd64
--- /dev/null
+++ b/doc/sphinx/props/P_TOO_HEAVY_MSG.rst
@@ -0,0 +1,50 @@
+P_TOO_HEAVY_MSG
+===============
+
+NAME
+----
+::
+
+    P_TOO_HEAVY_MSG                      "too_heavy_msg"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn jemand
+     versucht, ein Objekt in einen Behaelter zu legen, fuer den dieses Objekt
+     zu schwer ist.
+     Die Property ist im Behaelter zu setzen.
+     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+     so wird die Standardmeldung ausgegeben.
+     ("<Objekt> passt in <Behaelter> nicht mehr rein.")
+     Der String in der Property wird noch durch replace_personal()
+     verarbeitet, das zu bewegende Objekt wird als erstes, der Behaelter als
+     zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
+     umgebrochen.
+     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+     ganz.
+
+BEISPIELE
+---------
+::
+
+     SetProp(P_TOO_HEAVY_MSG, "Wenn du @WEN1 noch in den Beutel stecken"
+			      " wuerdest, wuerde er reissen.");
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG, P_NOINSERT_MSG,
+                 P_NOLEAVE_MSG, P_NODROP, P_NOGET 
+     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+                 P_WEAR_MSG, P_WIELD_MSG
+     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
diff --git a/doc/sphinx/props/P_TOO_MANY_MSG.rst b/doc/sphinx/props/P_TOO_MANY_MSG.rst
new file mode 100644
index 0000000..e224275
--- /dev/null
+++ b/doc/sphinx/props/P_TOO_MANY_MSG.rst
@@ -0,0 +1,50 @@
+P_TOO_MANY_MSG
+==============
+
+NAME
+----
+::
+
+    P_TOO_MANY_MSG                      "too_many_msg"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/moving.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn jemand
+     versucht, ein Objekt in einen Behaelter zu legen, der schon die maximale
+     Anzahl an Objekten enthaelt.
+     Die Property ist im Behaelter zu setzen.
+     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+     so wird die Standardmeldung ausgegeben.
+     ("Dafuer ist nicht mehr genug Platz in <Behaelter>.")
+     Der String in der Property wird noch durch replace_personal()
+     verarbeitet, das zu bewegende Objekt wird als erstes, der Behaelter als
+     zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
+     umgebrochen.
+     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+     ganz.
+
+BEISPIELE
+---------
+::
+
+     SetProp(P_TOO_MANY_MSG, "Aber der Korb hat doch nur drei Faecher, die"
+			     " sind alle schon voll.");
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_NOINSERT_MSG,
+                 P_NOLEAVE_MSG, P_NODROP, P_NOGET 
+     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+                 P_WEAR_MSG, P_WIELD_MSG
+     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
diff --git a/doc/sphinx/props/P_TOTAL_AC.rst b/doc/sphinx/props/P_TOTAL_AC.rst
new file mode 100644
index 0000000..2b585d4
--- /dev/null
+++ b/doc/sphinx/props/P_TOTAL_AC.rst
@@ -0,0 +1,42 @@
+P_TOTAL_AC
+==========
+
+NAME
+----
+::
+
+    P_TOTAL_AC                    "total_ac"                    
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+     Numerischer Wert der Abwehrstaerke des Wesens.
+     Dieser wird durch Aufaddieren der P_AC aller getragenen Ruestungen
+     bestimmt. Aus diesem Grund ist das Abfragen dieser Property ziemlich
+     teuer. Falls das Ergebnis mehrfach kurz hintereinander gebraucht wird,
+     sollte die Property auf jeden Fall nur einmal abgefragt und der Wert
+     gespeichert werden.
+
+BEMERKUNGEN
+-----------
+::
+
+    Auf diese Property sollte nicht mittels Query() oder Set() zugegriffen
+    werden, das Setzen von Query- oder Setmethoden bitte auf jeden Fall
+    unterlassen.
+
+SIEHE AUCH
+----------
+::
+
+    P_AC
+
+05.09.2008, Zesstra
+
diff --git a/doc/sphinx/props/P_TOTAL_LIGHT.rst b/doc/sphinx/props/P_TOTAL_LIGHT.rst
new file mode 100644
index 0000000..a330cd2
--- /dev/null
+++ b/doc/sphinx/props/P_TOTAL_LIGHT.rst
@@ -0,0 +1,42 @@
+P_TOTAL_LIGHT
+=============
+
+NAME
+----
+::
+
+    P_TOTAL_LIGHT                 "total_light"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Gibt das Lichtlevel an, das von einem Objekt ausgeht. Hierzu wird das
+    eigene Lichtlevel P_LIGHT mit dem gesamten Inhalt eines Containers
+    verrechnet.
+
+    Bitte _nur_ ueber QueryProp auf diese Property zugreifen,
+    da das Lichtlevel ggf. neu berechnet werden muss!
+
+    Ein direktes setzen dieser Property ist NICHT moeglich, hierzu bitte
+    P_LIGHT benutzen!
+
+BEMERKUNGEN
+-----------
+::
+
+    Das ist die VON einem Objekt ausgehende Lichtstaerke. Fuer das IN einem
+    Raum herrschende Licht bitte P_INT_LIGHT abfragen!
+
+SIEHE AUCH
+----------
+::
+
+    P_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+
diff --git a/doc/sphinx/props/P_TOTAL_OBJECTS.rst b/doc/sphinx/props/P_TOTAL_OBJECTS.rst
new file mode 100644
index 0000000..bf0d169
--- /dev/null
+++ b/doc/sphinx/props/P_TOTAL_OBJECTS.rst
@@ -0,0 +1,32 @@
+P_TOTAL_OBJECTS
+===============
+
+NAME
+----
+::
+
+    P_TOTAL_OBJECTS                "total_objects"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/container.h
+
+BESCHREIBUNG
+------------
+::
+
+     Anzahl der Objekte im Container. Diese Property kann man nur abfragen!
+     Es werden nur Objekte gezaehlt, deren Methode short() einen
+     Wert != 0 zurueckgibt. Insofern koennen Spielern beliebig
+     viele unsichtbare Objekte gegeben werden ohne sie zu behindern.
+
+SIEHE AUCH
+----------
+::
+
+     P_MAX_OBJECTS
+
+26.Jan 2005 Gloinson
+
diff --git a/doc/sphinx/props/P_TOTAL_WC.rst b/doc/sphinx/props/P_TOTAL_WC.rst
new file mode 100644
index 0000000..b5bb5d2
--- /dev/null
+++ b/doc/sphinx/props/P_TOTAL_WC.rst
@@ -0,0 +1,46 @@
+P_TOTAL_WC
+==========
+
+NAME
+----
+::
+
+	P_TOTAL_WC			"total_wc"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+	In dieser Property wird der numerische Wert der Angriffsstaerke
+	eines Lebewesens registriert.
+  Hierzu werden die P_WC von P_WEAPON bzw. P_HANDS sowie die Kraft des
+  Lebewesens beruecksichtigt.
+	Nicht eingerechnet in die Angriffsstaerke sind natuerlich Extraspells und
+  -skills des Angreifers.
+  Braucht man den Wert mehrfach kurz hintereinander, sollte man die Prop aber
+  nur einmal abfragen und den Wert speichern (sofern sich in der Zwischenzeit
+  nichts an der Waffe, den Hands oder den Attributen des Lebenwesens aendert).
+
+BEMERKUNGEN
+-----------
+::
+
+  Auf diese Property sollte nicht mittels Query() oder Set() zugegriffen 
+  werden, das Setzen von Query- oder Setmethoden bitte auf jeden Fall 
+  unterlassen.
+
+SIEHE AUCH
+----------
+::
+
+	P_HANDS, P_WC, P_XP
+
+
+05.09.2008, Zesstra
+
diff --git a/doc/sphinx/props/P_TOTAL_WEIGHT.rst b/doc/sphinx/props/P_TOTAL_WEIGHT.rst
new file mode 100644
index 0000000..abc0202
--- /dev/null
+++ b/doc/sphinx/props/P_TOTAL_WEIGHT.rst
@@ -0,0 +1,21 @@
+P_TOTAL_WEIGHT
+==============
+
+NAME
+----
+::
+
+    P_TOTAL_WEIGHT                "total_weight"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/restrictions.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gewicht incl. Inhalt in Gramm. P_WEIGHT_PERCENT wird beruecksichtigt.
+
diff --git a/doc/sphinx/props/P_TOUCH_DETAILS.rst b/doc/sphinx/props/P_TOUCH_DETAILS.rst
new file mode 100644
index 0000000..d813a1a
--- /dev/null
+++ b/doc/sphinx/props/P_TOUCH_DETAILS.rst
@@ -0,0 +1,43 @@
+P_TOUCH_DETAILS
+===============
+
+NAME
+----
+::
+
+    P_TOUCH_DETAILS            "touch_details"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/description.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property entspricht dem P_DETAILS fuer Standarddetails,
+    nur werden hierin Gerueche gespeichert:
+    Diese Property enthaelt ein Mapping, in der Details im Objekt
+    definiert werden und Beschreibungen, die ausgegeben werden, wenn man
+    sich diese Details anschaut.
+
+BEMERKUNGEN
+-----------
+::
+
+    Man sollte diese Property nicht per Hand veraendern, sondern die
+    Funktionen nutzen.
+
+SIEHE AUCH
+----------
+::
+
+    Setzen:    AddTouchDetail()
+    Loeschen:  RemoveTouchDetail()
+    Aehnlich:  AddDetail(), P_DETAILS
+    Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
+
diff --git a/doc/sphinx/props/P_TPORT_COST_IN.rst b/doc/sphinx/props/P_TPORT_COST_IN.rst
new file mode 100644
index 0000000..c9f503d
--- /dev/null
+++ b/doc/sphinx/props/P_TPORT_COST_IN.rst
@@ -0,0 +1,22 @@
+P_TPORT_COST_IN
+===============
+
+NAME
+----
+::
+
+    P_TPORT_COST_IN               "tport_cost_in"               
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     In einem Raum mit Sehertor: Kostenanteil, um sich in den Raum zu
+     teleportieren
+
diff --git a/doc/sphinx/props/P_TPORT_COST_OUT.rst b/doc/sphinx/props/P_TPORT_COST_OUT.rst
new file mode 100644
index 0000000..fc65f12
--- /dev/null
+++ b/doc/sphinx/props/P_TPORT_COST_OUT.rst
@@ -0,0 +1,22 @@
+P_TPORT_COST_OUT
+================
+
+NAME
+----
+::
+
+    P_TPORT_COST_OUT              "tport_cost_out"              
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     In einem Raum mit Sehertor: Kostenanteil, sich aus dem Raum heraus
+     zu teleportieren
+
diff --git a/doc/sphinx/props/P_TRANK_FINDEN.rst b/doc/sphinx/props/P_TRANK_FINDEN.rst
new file mode 100644
index 0000000..dd856f0
--- /dev/null
+++ b/doc/sphinx/props/P_TRANK_FINDEN.rst
@@ -0,0 +1,22 @@
+P_TRANK_FINDEN
+==============
+
+NAME
+----
+::
+
+    P_TRANK_FINDEN                "trank_finden"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/potion.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wenn die Property auf 1 steht kann immer ein Zaubertrank gefunden
+     werden, auch wenn er nicht in der Liste des Spielers steht.
+
diff --git a/doc/sphinx/props/P_TRANSPARENT.rst b/doc/sphinx/props/P_TRANSPARENT.rst
new file mode 100644
index 0000000..dbe640d
--- /dev/null
+++ b/doc/sphinx/props/P_TRANSPARENT.rst
@@ -0,0 +1,47 @@
+P_TRANSPARENT
+=============
+
+NAME
+----
+::
+
+     P_TRANSPARENT                 "transparent"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/container.h
+
+BESCHREIBUNG
+------------
+::
+
+     ist != 0, wenn in einen Container hinein (offen) oder aus einem 
+     hinausgeschaut werden kann.
+
+     Schaut man aus einem hinaus, erhaelt der Spieler normalerweise die 
+     Meldung 'Ausserhalb siehst Du:'. Diese kann jedoch durch eine eigene, 
+     stimmigere  Meldung ersetzt werden, wenn in P_TRANSPARENT ein String 
+     mit dieser Meldung angegeben wird.
+
+BEISPIEL
+--------
+::
+
+     SetProp(P_TRANSPARENT,1); -> normale Meldung
+
+     SetProp(P_TRANSPARENT,"Vom Ruecken des Pferdes aus siehst Du:\n");
+
+     Diese Meldung ist natuerlich nur dann sinnvoll, wenn es sich
+     auch tatsaechlich um ein Pferd handelt :-)
+
+SIEHE AUCH
+----------
+::
+
+     int_long()
+
+
+Last modified: Mon Jul 18 24:00:00 2001 by Tilly
+
diff --git a/doc/sphinx/props/P_TRAVEL_CMDS.rst b/doc/sphinx/props/P_TRAVEL_CMDS.rst
new file mode 100644
index 0000000..82b93fc
--- /dev/null
+++ b/doc/sphinx/props/P_TRAVEL_CMDS.rst
@@ -0,0 +1,64 @@
+P_TRAVEL_CMDS
+=============
+
+NAME
+----
+::
+
+    P_TRAVEL_CMDS                   "travel_cmds"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+    Ein Array mit Befehlen, die zum Verlassen UND Betreten des Trans-
+    porters fuehren. 
+
+BEISPIEL
+--------
+::
+
+    void create()
+    {
+      ::create();
+
+      SetProp(P_TRAVEL_CMDS,({ "steig","steige" }) );
+
+    }
+
+    Als Parameter werden hier ausschliesslich 'auf,in' und 'von,aus'
+    verarbeitet.
+
+    steige auf|in  <xxx>    fuehrt also zum Betreten des Transporters,
+    steige von|aus <xxx>    dagegen fuehrt zum Verlassen desselben.
+
+BEMERKUNGEN
+-----------
+::
+
+    Um /std/transport.c nicht aufzublaehen, werden weitere Parameter wie
+    etwa 'steige auf|in das|die|den xxx' _nicht_ unterstuetzt!
+
+    Hier muss der verantwortliche Magier schon eine eigene Loesung finden
+    und in seinen Transporter schreiben.
+
+SIEHE AUCH
+----------
+::
+
+    P_LEAVEFAIL, P_ENTERFAIL, P_ENTERCMDS, P_LEAVECMDS, transporter,
+
+LETZTER AENDERUNG
+-----------------
+::
+
+    Don, 24.01.2002, 10:15:07h von Tilly
+
+    
+
diff --git a/doc/sphinx/props/P_TRAVEL_INFO.rst b/doc/sphinx/props/P_TRAVEL_INFO.rst
new file mode 100644
index 0000000..f6dd566
--- /dev/null
+++ b/doc/sphinx/props/P_TRAVEL_INFO.rst
@@ -0,0 +1,53 @@
+P_TRAVEL_INFO
+=============
+
+NAME
+----
+::
+
+    P_TRAVEL_INFO                 "travel_info"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/transport.h
+
+BESCHREIBUNG
+------------
+::
+
+    Array mit Informationen zur vom Spieler gewuenschten Reiseroute.
+
+    [0]        Der Raum (object), in dem die Reiseroute momentan 
+               'aktiv' ist. Nur hier wird sie beruecksichtigt.
+
+    [1]        Das gewuenschte Transportmittel (object) falls 
+               gewaehlt. Ansonsten 0.
+
+    [2]        Der gewuenschte Zielort (string) oder 0 (ziellos).
+
+    [3]        Der gewuenschte Zielort als Richtung (string), falls
+               gewaehlt (z.B. 'zur Feuerinsel'). Sonst 0. Wird aus
+               P_HARBOUR des Zielraumes ausgelesen.
+
+BEMERKUNGEN
+-----------
+::
+
+    Diese Property wird von /std/transport.c sowie std/player/travel.c
+    verwendet, und sollte NICHT von anderen Objekten oder per Hand 
+    veraendert werden!
+
+SIEHE AUCH
+----------
+::
+
+    /std/transport.c, /std/player/travel.c, reise
+
+LETZTER AENDERUNG
+-----------------
+::
+
+    Don, 24.01.2002, 10:15:07h von Tilly
+
diff --git a/doc/sphinx/props/P_TRAY.rst b/doc/sphinx/props/P_TRAY.rst
new file mode 100644
index 0000000..1fb912a
--- /dev/null
+++ b/doc/sphinx/props/P_TRAY.rst
@@ -0,0 +1,21 @@
+P_TRAY
+======
+
+NAME
+----
+::
+
+    P_TRAY                        "tray"                        
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    *** KEINE BESCHREIBUNG VORHANDEN ***
+
diff --git a/doc/sphinx/props/P_TTY.rst b/doc/sphinx/props/P_TTY.rst
new file mode 100644
index 0000000..08199f2
--- /dev/null
+++ b/doc/sphinx/props/P_TTY.rst
@@ -0,0 +1,47 @@
+P_TTY
+=====
+
+NAME
+----
+::
+
+    P_TTY                         "tty"
+
+DEFINIERT IN
+------------
+::
+
+    /secure/telnetneg.h
+
+BESCHREIBUNG
+------------
+::
+
+     Name der Terminalemulation, die der Spieler nutzt.
+     Es existieren bisher "dumb", "vt100" und "ansi".
+
+	
+
+ANMERKUNG
+---------
+::
+
+     Farben duerfen ausschliesslich bei P_TTY=="ansi" benutzt werden.
+     Bei nicht farbfaehigen Terminals koennen ANSI-Codes die gesamte
+     Ausgabe zerschiessen!
+
+     Die Attribute fett, unterstrichen, blinkend und invers koennen auch
+     schon von vt100-Terminals dargestellt werden. Aber nicht ueberall
+     sind alle Attribute/Farben implementiert.
+
+     Bei allen ANSI-Codes sind drei Sachen zu beachten:
+
+     
+
+        1) Sparsam benutzen! Aufgezwungene Hervorhebungen koennen
+	   Spieler ganz schnell nerven.
+
+	2) Nicht jeder benutzt dieselbe Hintergrundfarbe!
+
+	3) Sparsam benutzen! Beser noch: nur im Notfall!
+
diff --git a/doc/sphinx/props/P_TTY_COLS.rst b/doc/sphinx/props/P_TTY_COLS.rst
new file mode 100644
index 0000000..e76ac71
--- /dev/null
+++ b/doc/sphinx/props/P_TTY_COLS.rst
@@ -0,0 +1,40 @@
+P_TTY_COLS
+==========
+
+NAME
+----
+::
+
+    P_TTY_COLS                                  "tty_cols"
+
+DEFINIERT IN
+------------
+::
+
+    /secure/telnetneg.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Properties steht die Anzahl der Spalten, die das 
+    Terminalfenster des Spielers derzeit hat.
+
+    Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
+    Telnetnegotiations unterstuetzt, ansonsten bleibt diese Property
+    leer.
+    Das Setzen der Property aendert die Fenstergroesse des Spielers
+    natuerlich nicht.
+
+SIEHE AUCH
+----------
+::
+
+    P_TTY_ROWS, P_TTY_TYPE, P_TTY_SHOW
+
+LETZTE AeNDERUNG
+----------------
+::
+
+    Sat, 06.02.1999, 14:00:00 von Paracelsus
+
diff --git a/doc/sphinx/props/P_TTY_ROWS.rst b/doc/sphinx/props/P_TTY_ROWS.rst
new file mode 100644
index 0000000..02759fd
--- /dev/null
+++ b/doc/sphinx/props/P_TTY_ROWS.rst
@@ -0,0 +1,40 @@
+P_TTY_ROWS
+==========
+
+NAME
+----
+::
+
+    P_TTY_ROWS                                  "tty_rows"
+
+DEFINIERT IN
+------------
+::
+
+    /secure/telnetneg.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Properties steht die Anzahl der Zeilen, die das
+    Terminalfenster des Spielers derzeit hat.
+
+    Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
+    Telnetnegotiations unterstuetzt, ansonsten bleibt diese Property
+    leer.
+    Das Setzen der Property aendert die Fenstergroesse des Spielers
+    natuerlich nicht.
+
+SIEHE AUCH
+----------
+::
+
+    P_TTY_COLS, P_TTY_TYPE, P_TTY_SHOW
+
+LETZTE AeNDERUNG
+----------------
+::
+
+    Sat, 06.02.1999, 14:00:00 von Paracelsus
+
diff --git a/doc/sphinx/props/P_TTY_SHOW.rst b/doc/sphinx/props/P_TTY_SHOW.rst
new file mode 100644
index 0000000..f9d31af
--- /dev/null
+++ b/doc/sphinx/props/P_TTY_SHOW.rst
@@ -0,0 +1,35 @@
+P_TTY_SHOW
+==========
+
+NAME
+----
+::
+
+    P_TTY_SHOW                                  "tty_show"
+
+DEFINIERT IN
+------------
+::
+
+    /secure/telnetneg.h
+
+BESCHREIBUNG
+------------
+::
+
+    Bei Telnets, die Telnetnegotiations unterstuetzen, wird eine Aenderung
+    der Fenstergroesse dem Spielerobjekt mitgeteilt. Steht in P_TTY_SHOW
+    ein Wert ungleich Null, wird dem Spieler diese Aenderung mitgeteilt.
+
+SIEHE AUCH
+----------
+::
+
+    P_TTY_ROWS, P_TTY_COLS, P_TTY_TYPE, telnegs
+
+LETZTE AeNDERUNG
+----------------
+::
+
+    Sat, 06.02.1999, 14:00:00 von Paracelsus
+
diff --git a/doc/sphinx/props/P_TTY_TYPE.rst b/doc/sphinx/props/P_TTY_TYPE.rst
new file mode 100644
index 0000000..a33f937
--- /dev/null
+++ b/doc/sphinx/props/P_TTY_TYPE.rst
@@ -0,0 +1,41 @@
+P_TTY_TYPE
+==========
+
+NAME
+----
+::
+
+    P_TTY_TYPE                                  "tty_type"
+
+DEFINIERT IN
+------------
+::
+
+    /secure/telnetneg.h
+
+BESCHREIBUNG
+------------
+::
+
+    In dieser Properties steht der Terminaltyp, den ein Spieler lokal auf
+    seinem Rechner verwendet.
+
+    Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
+    Telnetnegotiations unterstuetzt, ansonsten bleibt diese Property
+    leer. Die meisten Telnets/Clients geben ihren Terminaltyp allerdings
+    nicht preis.
+    Das Setzen der Property aendert den Terminaltyp des Spielers
+    natuerlich nicht.
+
+SIEHE AUCH
+----------
+::
+
+    P_TTY_COLS, P_TTY_ROWS, P_TTY_SHOW
+
+LETZTE AeNDERUNG
+----------------
+::
+
+    Sat, 06.02.1999, 14:00:00 von Paracelsus
+
diff --git a/doc/sphinx/props/P_UNIT_DECAY_FLAGS.rst b/doc/sphinx/props/P_UNIT_DECAY_FLAGS.rst
new file mode 100644
index 0000000..10fe447
--- /dev/null
+++ b/doc/sphinx/props/P_UNIT_DECAY_FLAGS.rst
@@ -0,0 +1,92 @@
+P_UNIT_DECAY_FLAGS
+==================
+
+NAME
+----
+::
+
+     P_UNIT_DECAY_FLAGS					"unit_decay_flags"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/unit.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mit dieser Prop kann das Zerfallsverhalten gesteuert werden, entweder
+     fuer alle Clones durch Setzen in der Blueprint oder fuer einzelne Clones.
+
+     In dieser Prop koennen momentan 4 Flags gesetzt werden:
+     - NO_DECAY: 
+          Zerfall ist abgeschaltet.
+     - NO_DECAY_UNTIL_MOVE: 
+          Der Zerfall ist solange ausgesetzt, bis dieses Objekt in ein anderes
+          Env bewegt wird. Setzt also ein NPC beim AddItem() diese Prop,
+          zerfaellt seine Unit nicht, bis sie bewegt wurde (Leiche, Spieler
+          etc.). Hierbei zaehlt das move() nicht, wenn das Objekt noch kein
+          Env hatte, es zaehlen nur Moves von einem Env in ein anderes Env.
+          Dieses Flag sollte nur in Clones gesetzt werden.
+     - INACCURATE_DECAY
+          Sollen z.b. 45.34 Einheiten zerfallen, wird der Rest von 0.34
+          normalerweise als Wahrscheinlichkeit aufgefasst, dass eine
+          zusaetzliche Einheit zerfaellt. Dieses Flag sorgt dafuer, dass
+          dieser Rest weggeworfen wird und einfach 45 Einheiten zerfallen.
+          Gleichzeitig wird bei diesem Flag aber _immer min_ 1 Einheit
+          zerstoert!
+     - ABSOLUTE_DECAY
+          P_UNIT_DECAY_QUOTA wird nicht als prozentualer Anteil aufgefasst,
+          sondern als absolute Zahl, d.h. es zerfallen immer einfach
+          P_UNIT_DECAY_QUOTA Einheiten.
+
+     Diese Flags koennen z.B. genutzt werden, den Zerfall fuer einzelne
+     Objekte temporaer oder dauerhaft abzuschalten, auch wenn alle anderen
+     Clones weiterzerfallen.
+
+     Diese Prop kann in der Blueprint gesetzt werden. In diesem Fall wird
+     allerdings NO_DECAY_UNTIL_MOVE ignoriert, weil die BP ja nie bewegt
+     wuerde. NO_DECAY in der BP schaltet den Zerfallsprozess (temporaer) fuer
+     alle Clones aus. Ist nie ein Zerfall gewuenscht, sollte in der Blueprint
+     aber besser P_UNIT_DECAY_INTERVAL auf 0 gesetzt werden!
+
+     Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
+     liefert ein klon->QueryProp(P_UNIT_DECAY_FLAGS) den in der Blueprint
+     eingestellten Wert zurueck.
+
+     
+
+BEMERKUNGEN
+-----------
+::
+
+     * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus der
+       Blueprint zurueckgeben. Hierbei wird allerdings ein NO_DECAY_UNTIL_MOVE
+       ausgefiltert, da dies den Zerfall fuer alle Objekte dauerhaft stoppen
+       wuerde, weil BPs nicht bewegt werden.
+     * Die Flags koennen "verodert" werden:
+       SetProp(P_UNIT_DECAY_FLAGS, NO_DECAY_UNTIL_MOVE | ABSOLUTE_DECAY);
+
+BEISPIEL
+--------
+::
+
+     // Dieser NPC hat tolle Pfeile, die sollen aber nicht zerfallen, solange
+     // sie im Inventar des NPCs sind:
+     AddItem("/d/tolleregion/tollermagier/obj/pfeile", REFRESH_NONE,
+         ([ P_AMOUNT: 50+random(50),
+            P_UNIT_DECAY_FLAGS: NO_DECAY_UNTIL_MOVE ]) );
+
+SIEHE AUCH
+----------
+::
+
+     unit
+     P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_QUOTA, P_UNIT_DECAY_MIN
+     DoDecay, DoDecayMessage
+     /std/unit.c
+
+14.10.2007, Zesstra
+
diff --git a/doc/sphinx/props/P_UNIT_DECAY_INTERVAL.rst b/doc/sphinx/props/P_UNIT_DECAY_INTERVAL.rst
new file mode 100644
index 0000000..c9b6d2a
--- /dev/null
+++ b/doc/sphinx/props/P_UNIT_DECAY_INTERVAL.rst
@@ -0,0 +1,56 @@
+P_UNIT_DECAY_INTERVAL
+=====================
+
+NAME
+----
+::
+
+     P_UNIT_DECAY_INTERVAL					"unit_decay_interval"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/unit.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Prop bestimmt, wie oft ein Zerfall der entsprechenden Unitobjekte
+     durchgefuehrt wird. Das Intervall ist in Sekunden anzugeben (int).
+     Die Prop muss in der Blueprint der entsprechenden Unitobjekte gesetzt
+     werden, in Clones kann sie nicht gesetzt werden.
+     Die Blueprint resettet dann in diesem Intervall und ruft in allen ihren
+     Clones (und denen alter Versionen der gleichen BP!) DoDecay() auf,
+     woraufhin die Clones den Zerfall durchfuehren.
+     Ist die Prop in der Blueprint nicht gesetzt, erfolgt kein Zerfall.
+
+BEMERKUNGEN
+-----------
+::
+
+     * Ist die Blueprint nicht geladen, erfolgt kein Zerfall der Clones.
+     * Ein Setzen dieser Prop beinhaltet immer auch einen Aufruf von
+       set_next_reset() auf das ensprechende Intervall.
+     * Die Prop kann in den Clones abgefragt werden und liefert das in der
+       Blueprint eingestellte Intervall.
+     * Von einer Manipulation per Set() wird dringend abgeraten.
+     * Die Prop kann nur vom Objekt selber, vom Programmierer des Objekts, vom
+       RM der entsprechenden Region, von einem Weisen oder von einem Objekt
+       gesetzt werden, welches die gleiche UID hat.
+
+BEISPIEL
+--------
+::
+
+SIEHE AUCH
+----------
+::
+
+     unit
+     P_UNIT_DECAY_QUOTA, P_UNIT_DECAY_FLAGS, P_UNIT_DECAY_MIN
+     DoDecay(), DoDecayMessage()
+
+13.10.2007, Zesstra
+
diff --git a/doc/sphinx/props/P_UNIT_DECAY_MIN.rst b/doc/sphinx/props/P_UNIT_DECAY_MIN.rst
new file mode 100644
index 0000000..8c97b4e
--- /dev/null
+++ b/doc/sphinx/props/P_UNIT_DECAY_MIN.rst
@@ -0,0 +1,71 @@
+P_UNIT_DECAY_MIN
+================
+
+NAME
+----
+::
+
+     P_UNIT_DECAY_MIN					                    "unit_decay_min"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/unit.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Prop bestimmt, wieviele Einheiten der Unitobjekten mindestens
+     uebrig bleiben sollen. 
+     Faellt die Menge eines Unitobjekts unter diesen Wert, zerfaellt diese
+     Unit solange nicht weiter, bis der Wert wieder ueberschritten wird.
+     Die Prop kann in der Blueprint und in den einzelnen Clones gesetzt
+     werden.
+     Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
+     liefert ein QueryProp(P_UNIT_DECAY_MIN) den in der Blueprint
+     eingestellten Wert zurueck und die Unit zerfaellt bis zu dieser
+     Mindestmenge..
+     D.h. man sollte diese Prop in der Blueprint setzen und in einzelnen
+     Clones nur soweit diese abweichende Werte haben sollen.
+     Es sind nur Werte zwischen 0 und 100 zulaessig. Auf diese Art laesst sich
+     die minidestens uebrig bleibende Menge aller Clones durch Aendern einer
+     Prop in der Blueprint aendern.
+
+BEMERKUNGEN
+-----------
+::
+
+     * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus er
+       Blueprint zum Zerfall benutzt.
+     * Will man fuer ein bestimmtes Unitobjekt kein Minimum haben, also dass
+       dieses Objekt zerfaellt, bis nichts mehr da ist, die Blueprint hat aber
+       einen Minimalwert gesetzt, sollte diese Prop im betreffenden Objekt auf
+       -1 gesetzt werden.
+     * Diese Prop sollte vorsichtig angewandt werden, da Spieler so den
+       Zerfall von Units stoppen koennen, indem sie die Units entsprechend
+       aufteilen, so dass jedes Einzelobjekt unter dem Minimum liegt.
+
+BEISPIEL
+--------
+::
+
+     // es soll min. 1 Einheit uebrig bleiben.
+     SetProp(P_UNIT_DECAY_MIN, 1);
+
+     // die Blueprint hat ein Minimum von 10 gesetzt, dieser Clone soll
+     // aber zerfallen, bis nix mehr da ist.
+     klon->SetProp(P_UNIT_DECAY_MIN, -1);
+
+SIEHE AUCH
+----------
+::
+
+     unit
+     P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_FLAGS, P_UNIT_DECAY_QUOTA
+     DoDecay, DoDecayMessage
+     /std/unit.c
+
+14.10.2007, Zesstra
+
diff --git a/doc/sphinx/props/P_UNIT_DECAY_QUOTA.rst b/doc/sphinx/props/P_UNIT_DECAY_QUOTA.rst
new file mode 100644
index 0000000..e219c5f
--- /dev/null
+++ b/doc/sphinx/props/P_UNIT_DECAY_QUOTA.rst
@@ -0,0 +1,69 @@
+P_UNIT_DECAY_QUOTA
+==================
+
+P_UNIT_DECAY_QUOTA (int)
+------------------------
+::
+
+NAME
+----
+::
+
+     P_UNIT_DECAY_QUOTA					"unit_decay_quota"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/unit.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Prop bestimmt, welcher Anteil der einzelnen Unitobjekte pro Zerfall
+     zerstoert wird. Dieser Anteil wird als ganze Zahl zwischen 0 und 10000
+     ausgedrueckt. 1 entspricht einem Zerfall von 0.01%, 10000 entspricht
+     100%.
+     Momentan sind keine Werte < 0 zulaessig, die einem Zuwachs entsprechend
+     wurden.
+
+     Falls das Flag ABSOLUTE_DECAY (s. P_UNIT_DECAY_FLAGS) gesetzt ist, steht
+     die Zahl in dieser Prop fuer die absolute Anzahl an zu zerstoerenden
+     Einheiten.
+
+     Die Prop kann in der Blueprint und in den einzelnen Clones gesetzt
+     werden.
+     Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
+     liefert ein QueryProp(P_UNIT_DECAY_QUOTA) den in der Blueprint
+     eingestellten Wert zurueck und die Unit zerfaellt zu diesem Anteil.
+     D.h. man sollte diese Prop in der Blueprint setzen und in einzelnen
+     Clones nur soweit diese abweichende Zerfallsraten haben sollen.
+
+BEMERKUNGEN
+-----------
+::
+
+     * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus er
+       Blueprint zum Zerfall benutzt.
+     * Will man den Zerfall fuer ein bestimmtes Unitobjekt abschalten, sollte
+       man P_UNIT_DECAY_FLAGS benutzen.
+
+BEISPIEL
+--------
+::
+
+     // pro Zerfallsintervall sollen 12% zerfallen.
+     SetProp(P_UNIT_DECAY_QUOTA, 1200);
+
+SIEHE AUCH
+----------
+::
+
+     unit
+     P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_FLAGS, P_UNIT_DECAY_MIN
+     DoDecay, DoDecayMessage
+     /std/unit.c
+
+14.03.2008, Zesstra
+
diff --git a/doc/sphinx/props/P_UNWEAR_MSG.rst b/doc/sphinx/props/P_UNWEAR_MSG.rst
new file mode 100644
index 0000000..65b3c43
--- /dev/null
+++ b/doc/sphinx/props/P_UNWEAR_MSG.rst
@@ -0,0 +1,78 @@
+P_UNWEAR_MSG
+============
+
+NAME
+----
+::
+
+     P_UNWEAR_MSG                       "unwear_msg"     
+
+DEFINIERT IN
+------------
+::
+
+     /sys/armour.h
+
+BESCHREIBUNG
+------------
+::
+
+     Zweiteiliges Array mit Meldungen, die beim Ausziehen einer Ruestung 
+     oder Kleidung an den Spieler und die Umgebung ausgegeben werden.
+     Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
+     Umgebung. Zeilenumbrueche werden automatisch gemacht, existierende
+     jedoch beruecksichtigt.
+
+     Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
+     man replace_personal()).
+
+     [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
+      moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
+      in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
+      den Waffennamen.]
+
+BEISPIELE
+---------
+::
+
+    SetProp(P_NAME, "Mantel");
+    SetProp(P_UNWEAR_MSG,
+     ({"Du reisst Dir @WEN2 vom Leib.",
+       "@WER1 reisst sich @WENU2 vom Leib." }));
+
+    -> beim Ausziehen durch Urk:
+       Urk bekommt: Du reisst dir den Mantel vom Leib.
+       Der Raum:    Urk reisst sich einen Mantel vom Leib.
+
+    SetProp(P_UNWEAR_MSG,
+     ({"Dir wird furchtbar warm. So eine Hitze aber auch. Schnell "
+       "schluepfst Du aus Deiner dicken Ruestung. Aaaah, was fuer "
+       "eine Wohltat.",
+       "@WEM1 scheint ploetzlich warm zu werden. Schnell schluepft "
+       "@WERQP1 aus @WEMQPPFS1 dicken Ruestung. Du hoffst instaendig, "
+       "das es noch etwas waermer wird ... "}));
+
+    -> beim Ausziehen durch Urk:
+       Urk bekommt: Dir wird furchtbar warm. So eine Hitze aber auch.
+		    Schnell schluepfst Du aus Deiner dicken Ruestung.
+		    Aaaah, was fuer eine Wohltat.
+       Der Raum:    Urk scheint ploetzlich warm zu werden. Schnell
+		    schluepft er aus seiner dicken Ruestung. Du hoffst
+		    instaendig, das es noch etwas waermer wird ...
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_WEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
+                 P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
+     Funktionen: WearFunc, UnwearFunc
+     Sonstiges:  replace_personal(E), /std/armour/wear.c, armours
+                 clothing, /std/clothing.wear.c
+
+LETZTE AeNDERUNG
+----------------
+::
+
+15.02.2009, Zesstra
+
diff --git a/doc/sphinx/props/P_UNWIELD_FUNC.rst b/doc/sphinx/props/P_UNWIELD_FUNC.rst
new file mode 100644
index 0000000..f1666fd
--- /dev/null
+++ b/doc/sphinx/props/P_UNWIELD_FUNC.rst
@@ -0,0 +1,33 @@
+P_UNWIELD_FUNC
+==============
+
+NAME
+----
+::
+
+     P_UNWIELD_FUNC "unwield_func"
+
+DEFINIERT IN
+------------
+::
+
+     <weapon.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Falls ein Objekt eine UnwieldFunc() fuer die Waffe definiert, so muss
+     dieses Objekt in dieser Property eingetragen werden.
+
+     Die Auswertung dieser Property erfolgt in DoUnwield().
+
+SIEHE AUCH
+----------
+::
+
+     /std/weapon.c, UnwieldFunc()
+
+
+Last modified: Sun May 19 15:44:08 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_UNWIELD_MSG.rst b/doc/sphinx/props/P_UNWIELD_MSG.rst
new file mode 100644
index 0000000..665de9b
--- /dev/null
+++ b/doc/sphinx/props/P_UNWIELD_MSG.rst
@@ -0,0 +1,77 @@
+P_UNWIELD_MSG
+=============
+
+NAME
+----
+::
+
+     P_UNWIELD_MSG                       "unwield_msg"                       
+
+DEFINIERT IN
+------------
+::
+
+     /sys/weapon.h
+
+BESCHREIBUNG
+------------
+::
+
+     Zweiteiliges Array mit Meldungen, die beim Wegstecken einer 
+     Waffe an den Spieler und die Umgebung ausgegeben werden.
+
+     Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
+     Umgebung.  Zeilenumbrueche werden automatisch gemacht, existierende
+     jedoch beruecksichtigt.
+
+     Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
+     man replace_personal()).
+
+     [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
+      moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
+      in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
+      den Waffennamen.]
+
+BEISPIELE
+---------
+::
+
+    SetProp(P_NAME, "Streitkolben");
+    SetProp(P_UNWIELD_MSG,
+     ({ "Du steckst @WEN2 zurueck und atmest erstmal tief durch.", 
+        "@WER1 steckt @WENU2 zurueck und atmet erstmal tief durch." }));
+
+    -> beim Wegstecken durch Urk:
+       Urk bekommt: Du steckst den Streitkolben zurueck und atmest erstmal
+		    tief durch.
+       Der Raum:    Urk steckt einen Streitkolben zurueck und atmet erstmal
+		    tief durch.
+
+    SetProp(P_UNWIELD_MSG,
+     ({"Du steckst die schwere Keule zurueck. Zufaellig landet sie "
+       "dabei auf Deinem Fuss. Laut schreiend humpelst Du in der "
+       "Gegend herum.",
+       "@WER1 steckt eine schwere Keule zurueck. Dummerweise landet diese "
+       "direkt auf dem eigenen Fuss. Aua, das tat sicher weh ... nicht "
+       "umsonst humpelt @WERQP1 jetzt schreiend durch die Gegend."}));
+
+    -> beim Wegstecken durch Urk:
+       Urk bekommt: Du steckst die schwere Keule zurueck. Zufaellig landet
+		    sie dabei auf Deinem Fuss. Laut schreiend humpelst Du in
+		    der Gegend herum.
+       Der Raum:    Urk steckt eine schwere Keule zurueck. Dummerweise
+		    landet diese direkt auf dem eigenen Fuss. Aua, das tat
+                    sicher weh ... nicht umsonst humpelt er jetzt schreiend
+                    durch die Gegend.
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_WIELD_MSG, P_WEAR_MSG, P_UNWEAR_MSG
+                 P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
+     Funktionen: UnwieldFunc, WieldFunc
+     Sonstiges:  replace_personal(E), /std/weapon/combat.c
+
+29. Maerz 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_UNWIELD_TIME.rst b/doc/sphinx/props/P_UNWIELD_TIME.rst
new file mode 100644
index 0000000..b4958e8
--- /dev/null
+++ b/doc/sphinx/props/P_UNWIELD_TIME.rst
@@ -0,0 +1,33 @@
+P_UNWIELD_TIME
+==============
+
+NAME
+----
+::
+
+      P_UNWIELD_TIME			"unwield_time"
+
+DEFINIERT IN
+------------
+::
+
+      /sys/weapon.h
+
+BESCHREIBUNG
+------------
+::
+
+      Enthaelt den Zeitpunkt zu dem ein Living eine Waffe weggesteckt hat und
+      ist im Living gesetzt.
+
+SIEHE AUCH
+----------
+::
+
+      Verwandt:		P_WEAPON, P_WIELDED, DoUnwield()
+			P_LAST_USE
+      Sonstiges:	P_EQUIP_TIME
+			time()
+
+10.Feb 2005 Gloinson
+
diff --git a/doc/sphinx/props/P_USED_HANDS.rst b/doc/sphinx/props/P_USED_HANDS.rst
new file mode 100644
index 0000000..32542fb
--- /dev/null
+++ b/doc/sphinx/props/P_USED_HANDS.rst
@@ -0,0 +1,39 @@
+P_USED_HANDS
+============
+
+NAME
+----
+::
+
+    P_USED_HANDS                  "used_hands"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/combat.h
+
+BESCHREIBUNG
+------------
+::
+
+    Anzahl der Haende in Benutzung.
+    Effektiv nur ein sizeof(P_HANDS_USED_BY).
+
+BEMERKUNGEN
+-----------
+::
+
+    Keine echte Property. Die Methode /std/living/combat::_query_used_hands
+    stellt die Daten zusammen. Nicht setzen!
+
+SIEHE AUCH
+----------
+::
+
+    P_HANDS, P_HANDS_USED_BY
+    P_MAX_HANDS, P_FREE_HANDS
+    UseHands, FreeHands
+
+1. Okt 2012, Gloinson
+
diff --git a/doc/sphinx/props/P_VALID_GUILDS.rst b/doc/sphinx/props/P_VALID_GUILDS.rst
new file mode 100644
index 0000000..6343081
--- /dev/null
+++ b/doc/sphinx/props/P_VALID_GUILDS.rst
@@ -0,0 +1,42 @@
+P_VALID_GUILDS
+==============
+
+NAME
+----
+::
+
+	P_VALID_GUILDS			"valid_guilds"                
+
+DEFINIERT IN
+------------
+::
+
+	/sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property enthaelt die zugelassenen Gilden in Form von
+	kleingeschriebenen Gildennamen, welche in einem Array
+	zusammengefasst sind. Sie ist nur fuer den Gildenmaster selbst von
+	Bedeutung.
+
+BEISPIELE
+---------
+::
+
+	Abfrage der zugelassenen Gilden:
+	  find_object("/obj/gildenmaster")->QueryProp(P_VALID_GUILDS)
+	Das ergibt zum Beispiel:
+          ({"abenteurer","zauberer","klerus","kaempfer"})
+
+SIEHE AUCH
+----------
+::
+
+	P_GUILD, /obj/gildenmaster.c
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_VALUE.rst b/doc/sphinx/props/P_VALUE.rst
new file mode 100644
index 0000000..5843615
--- /dev/null
+++ b/doc/sphinx/props/P_VALUE.rst
@@ -0,0 +1,48 @@
+P_VALUE
+=======
+
+NAME
+----
+::
+
+    P_VALUE                       "value"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     - Objekte
+       Wert des Objektes in Goldmuenzen. Diesen Wert erhaelt man beim
+       Verkauf. Kaufen kostet ein Vielfaches hiervon.
+
+     - Speisen/Kneipen
+       Wert einer Portion der Speise.
+
+       
+
+BEMERKUNGEN
+-----------
+::
+
+     In tragbaren Speisen (erben von /std/food) setzt man mit SetProp
+     den Wert _einer_ Portion. Per QueryProp erhaelt man aber den Gesamt-
+     wert der Speise inclusive des eventuell vorhandenen Behaelters. Der
+     Wert des Behaelters wird dabei aus P_EMPTY_PROPS[P_VALUE] gelesen.
+
+     
+
+SIEHE AUCH
+----------
+::
+
+     Speisen: std/pub, wiz/food, P_EMPTY_PROPS
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_VALUE_PER_UNIT.rst b/doc/sphinx/props/P_VALUE_PER_UNIT.rst
new file mode 100644
index 0000000..125108e
--- /dev/null
+++ b/doc/sphinx/props/P_VALUE_PER_UNIT.rst
@@ -0,0 +1,29 @@
+P_VALUE_PER_UNIT
+================
+
+NAME
+----
+::
+
+    P_VALUE_PER_UNIT              "value_per_unit"              
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Wert in Goldstuecken pro Untereinheit.
+
+BEMERKUNGEN
+-----------
+::
+
+     Deprecated. Bitte SetCoinsPerUnits() (U_CPU) benutzen.
+
+25.Aug 2015 Gloinson
+
diff --git a/doc/sphinx/props/P_VARIABLES.rst b/doc/sphinx/props/P_VARIABLES.rst
new file mode 100644
index 0000000..97147d4
--- /dev/null
+++ b/doc/sphinx/props/P_VARIABLES.rst
@@ -0,0 +1,31 @@
+P_VARIABLES
+===========
+
+NAME
+----
+::
+
+    P_VARIABLES "variables"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/magier.h
+
+BESCHREIBUNG
+------------
+::
+
+	
+
+     Interne Variable der Magiershell in dem die mit dem 'Set'-Befehl
+     gesetzten Variablen gespeichert werden.
+
+     
+
+     NICHT VON HAND VERAENDERN! IMMER 'SET' VERWENDEN!
+
+
+Letzte Aenderung: 13.02.2003 22:00:00 von Mandragon
+
diff --git a/doc/sphinx/props/P_VISIBLE_GUILD.rst b/doc/sphinx/props/P_VISIBLE_GUILD.rst
new file mode 100644
index 0000000..1f579fb
--- /dev/null
+++ b/doc/sphinx/props/P_VISIBLE_GUILD.rst
@@ -0,0 +1,43 @@
+P_VISIBLE_GUILD
+===============
+
+NAME
+----
+::
+
+     P_VISIBLE_GUILD			"visible_guild"                       
+
+DEFINIERT IN
+------------
+::
+
+     /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt die sichtbare Gilde des Lebewesens in Form eines
+     kleingeschriebenen Strings, also die Gilde, die bei Spielern zum
+     Beispiel bei 'kwer' oder 'finger' angezeigt wird. So kann man fremde
+     Gilden testen und trotzdem nach aussen hin in der gleichen Gilde wie
+     zuvor bleiben.
+
+BEISPIEL
+--------
+::
+
+     Wenn man gerne nach aussen hin Zauberer bleiben moechte:
+	  pl->SetProp(P_VISIBLE_GUILD,"zauberer");
+     Nach aussen hin bleibt man jetzt auch Zauberer, wenn P_GUILD eine
+     andere Gilde angibt.
+
+SIEHE AUCH
+----------
+::
+
+     P_GUILD, P_DEFAULT_GUILD
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/P_VISIBLE_SUBGUILD_TITLE.rst b/doc/sphinx/props/P_VISIBLE_SUBGUILD_TITLE.rst
new file mode 100644
index 0000000..499f5cd
--- /dev/null
+++ b/doc/sphinx/props/P_VISIBLE_SUBGUILD_TITLE.rst
@@ -0,0 +1,40 @@
+P_VISIBLE_SUBGUILD_TITLE
+========================
+
+NAME
+----
+::
+
+     P_VISIBLE_SUBGUILD_TITLE		"visible_subguild_title"                       
+
+DEFINIERT IN
+------------
+::
+
+     /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property dient dazu, als Magier einen Zusatztitel innerhalb einer
+     Gilde vorzutaeuschen, ohne den tatsaechlichen P_SUBGUILD_TITLE zu
+     aendern.
+
+BEMERKUNGEN
+-----------
+::
+
+     Inhalt der Property kann 0 sein oder ein String.
+     Wenn der Inhalt 0 ist, wird bei QueryProp der P_SUBGUILD_TITLE
+     durchgereicht.
+
+SIEHE AUCH
+----------
+::
+
+     P_GUILD_TITLE, P_SUBGUILD_TITLE
+
+
+Last modified: Mon Aug 13 21:20:00 2001 by Nachtwind
+
diff --git a/doc/sphinx/props/P_VISUALBELL.rst b/doc/sphinx/props/P_VISUALBELL.rst
new file mode 100644
index 0000000..de55bde
--- /dev/null
+++ b/doc/sphinx/props/P_VISUALBELL.rst
@@ -0,0 +1,59 @@
+P_VISUALBELL
+============
+
+NAME
+----
+::
+
+	P_VISUALBELL			"visualbell"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+	Die Property stellt ein Flag innerhalb von Spielern dar, welches
+	standardmaessig nicht gesetzt ist. In diesem Fall werden Toene,
+	welche innerhalb einiger Funktionen erzeugt werden, auch wirklich an
+	den Spieler geschickt.
+	Setzt man die Property, so erhaelt der Spieler keine Toene mehr.
+
+BEISPIEL
+--------
+::
+
+	Pieptoene werden durch den ASCII-Code 0x7 praesentiert. Ausgeben
+	kann man diesen folgendermassen:
+	  if(!IS_WIZARD(caster)&&!victim->QueryProp(P_VISUALBELL))
+	    tell_object(victim,sprintf("%c",7));
+	Das waere beispielsweise ein Codestueck aus einem Piepspell. :)
+	Das Opfer bekommt den Piepton hierbei nur ab, wenn der Caster ein
+	Magier ist oder das Spieleropfer die Property P_VISUALBELL gesetzt
+	hat (kann mit Kommando 'ton' vom Spieler beeinflusst werden).
+
+BEMERKUNGEN
+-----------
+::
+
+  Achtung: P_VISUALBELL steht auf 1, wenn der Spieler _keine_ Piepstoene
+	hoeren will!
+	Die Funktionalitaet dieser Property wirkt nur soweit, wie sie auch
+	von tonerzeugenden Befehlen selbst unterstuetzt wird. Es ist darauf
+	zu achten, dass P_VISUALBELL zu diesem Zweck grundsaetzlich
+	ausgewertet wird! Eine Ausnahme sei hierbei zugelassen: Magier
+	koennen Spielern grundsaetzlich Toene zusenden.
+
+SIEHE AUCH
+----------
+::
+
+	ton, wecke, erwarte, P_WAITFOR, /std/player/base.c
+
+
+Last modified: 07.02.2007 by Zesstra
+
diff --git a/doc/sphinx/props/P_VULNERABILITY.rst b/doc/sphinx/props/P_VULNERABILITY.rst
new file mode 100644
index 0000000..9ae5447
--- /dev/null
+++ b/doc/sphinx/props/P_VULNERABILITY.rst
@@ -0,0 +1,62 @@
+P_VULNERABILITY
+===============
+
+NAME
+----
+::
+
+     P_VULNERABILITY               "vulnerability"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/combat.h
+
+WICHTIG
+-------
+::
+
+     DIESE PROPERTY IST VERALTET! BITTE P_RESISTANCE_STRENGTHS
+     VERWENDEN! AUCH FUNKTIONIERT Set() NICHT WIE ES SOLLTE.
+
+BESCHREIBUNG
+------------
+::
+
+     Hiermit koennen die Empfindlichkeiten eines Lebewesens definiert
+     werden. Es kann ein Array mit Schadensarten gesetzt werden, jeder
+     Eintrag eines Schadens verdoppelt die Empfindlichkeit gegen
+     diesen.
+
+BEMERKUNGEN
+-----------
+::
+
+     - P_RESISTANCE_STRENGTHS spiegelt die Eintraege hier wieder
+     - um genauere Werte anzugeben einen AddResistanceModifier() oder
+       P_RESISTANCE_STRENGTHS benutzen.
+     - P_VULNERABILITY kann und wird nicht aus P_RESISTANCE_STRENGTHS
+       upgedatet
+
+BEISPIELE
+---------
+::
+
+     // ein NPC mit verdoppelter Eisempfindlichkeit und
+     // vervierfachter Wasserempfindlichkeit
+     SetProp(P_VULNERABILITY, ({DT_COLD, DT_WATER, DT_WATER}));
+
+SIEHE AUCH
+----------
+::
+
+     simple Resistenz:	P_RESISTANCE
+     Hauptmapping:	P_RESISTANCE_STRENGTHS
+     Modifikatoren:	AddResistanceModifier, RemoveResistanceModifier(),
+			P_RESISTANCE_MODIFIER
+     Berechnung:	CheckResistance(), UpdateResistanceStrengths()
+     anderes:		balance, /std/armour/combat.c, /std/living/combat.c
+
+1.Dez 2004, Gloinson
+
diff --git a/doc/sphinx/props/P_WAITFOR.rst b/doc/sphinx/props/P_WAITFOR.rst
new file mode 100644
index 0000000..ce863fc
--- /dev/null
+++ b/doc/sphinx/props/P_WAITFOR.rst
@@ -0,0 +1,30 @@
+P_WAITFOR
+=========
+
+NAME
+----
+::
+
+     P_WAITFOR                     "waitfor"                     
+
+DEFINIERT IN
+------------
+::
+
+     /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Die Erwarte-Liste. Ein Array mit den Namen der Erwarteten.
+
+SIEHE AUCH
+----------
+::
+
+     erwarte
+     P_WAITFOR_REASON, P_WAITFOR_FLAGS
+
+16. Feb 2008 Gloinson
+
diff --git a/doc/sphinx/props/P_WAITFOR_FLAGS.rst b/doc/sphinx/props/P_WAITFOR_FLAGS.rst
new file mode 100644
index 0000000..218c5b2
--- /dev/null
+++ b/doc/sphinx/props/P_WAITFOR_FLAGS.rst
@@ -0,0 +1,34 @@
+P_WAITFOR_FLAGS
+===============
+
+NAME
+----
+::
+
+     P_WAITFOR_FLAGS                  "waitfor_flags"                     
+
+DEFINIERT IN
+------------
+::
+
+     /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Ein Int. Bisher bekannte Flags:
+
+     
+
+     0x01 - "erwarte aus"
+
+SIEHE AUCH
+----------
+::
+
+     erwarte
+     P_WAITFOR, P_WAITFOR_REASON
+
+16. Feb 2008 Gloinson
+
diff --git a/doc/sphinx/props/P_WAITFOR_REASON.rst b/doc/sphinx/props/P_WAITFOR_REASON.rst
new file mode 100644
index 0000000..f812d27
--- /dev/null
+++ b/doc/sphinx/props/P_WAITFOR_REASON.rst
@@ -0,0 +1,35 @@
+P_WAITFOR_REASON
+================
+
+NAME
+----
+::
+
+     P_WAITFOR_REASON                  "waitfor_reason"                     
+
+DEFINIERT IN
+------------
+::
+
+     /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Ein Mapping mit den Erwarteten als Schluessel und einem Grund als
+     Key, zB:
+
+     
+
+     (["Zook":"muh muh"])
+
+SIEHE AUCH
+----------
+::
+
+     erwarte (erwarte <wen> wegen <was>)
+     P_WAITFOR, P_WAITFOR_FLAGS
+
+16. Feb 2008 Gloinson
+
diff --git a/doc/sphinx/props/P_WANTS_TO_LEARN.rst b/doc/sphinx/props/P_WANTS_TO_LEARN.rst
new file mode 100644
index 0000000..99ebbf9
--- /dev/null
+++ b/doc/sphinx/props/P_WANTS_TO_LEARN.rst
@@ -0,0 +1,25 @@
+P_WANTS_TO_LEARN
+================
+
+NAME
+----
+::
+
+    P_WANTS_TO_LEARN              "wants_to_learn"              
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/base.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gesetzt, wenn der Magier die Filenamen sehen will.
+     (Nur fuer Magier). Wird diese Property auf 0 gesetzt, gehen auch
+     einige andere Dinge nicht mehr - verfolge zB. Eigentlich sollten
+     dann auch die Magierbefehle wie "goto" usw unterbunden werden -
+     das kommt vielleicht noch.
+
diff --git a/doc/sphinx/props/P_WATER.rst b/doc/sphinx/props/P_WATER.rst
new file mode 100644
index 0000000..cc2d399
--- /dev/null
+++ b/doc/sphinx/props/P_WATER.rst
@@ -0,0 +1,131 @@
+P_WATER
+=======
+
+NAME
+----
+::
+
+    P_WATER                       "water"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/fishing.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt den Gewaessertyp. Kann in Raeumen, Angeln und Wasserbehaeltern
+    verwendet werden. Die verfuegbaren Optionen und Funktionsweisen sind in 
+    den nachfolgenden Abschnitten aufgefuehrt.
+
+    Raum:
+    *****
+      Legt den Typ des Gewaessers fest, das es in diesem Raum gibt. Von
+      diesem Typ haengt ab, welche Arten von Fischen es hier standardmaessig
+      gibt und welche Arten von Angeln verwendet werden koennen. 
+
+      
+
+      Beispiel:
+
+      SetProp(P_WATER, W_HARBOR);
+
+      
+
+      Folgende
+      Typen stehen zur Verfuegung, von denen in Raeumen nur einer gesetzt
+      werden darf:
+
+      Salzwasser:
+        W_BEACH   Strand: Scholle, Flunder, Rochen, Seezunge, Katzenhai
+        W_HARBOR  Hafen: Dorsch, Rochen, Seezunge, Hering, Katzenhai
+        W_OCEAN   Ozean/Meer: Hai, Thunfisch, Kabeljau, Schwertfisch, Seehase,
+                  Seeteufel, Seewolf
+
+      Suesswasser:
+        W_RIVER   Fluss: Piranha, Lachs, Forelle, Bachsaibling
+        W_POOL    Teich: Stichling, Goldfisch, Schlei, Karpfen, Goldorfe
+        W_LAKE    See: Karpfen, Barsch, Hecht, Seesaibling
+        W_ROCK    Bergbach: Lachs, Forelle, Bachsaibling
+        W_STREAM  Bach: Stichling, Bachforelle, Neuauge, Bachsaibling
+
+      Sonstige:
+        W_USER    wenn dieser Gewaessertyp gesetzt wird, MUSS der Raum 
+                  zusaetzlich die Funktion GetAquarium() definieren, die
+                  eine Liste der hier fangbaren Fische zurueckgeben muss.
+                  Beispiel:
+
+                  string* GetAquarium(){ 
+                    return ({"/d/ebene/fraggle/angel/fisch"}); 
+                  }
+        W_DEAD    Lebloses Wasser. Enthaelt keine Fische, man kann
+                  aber die Standardflasche fuellen.
+
+        W_OTHER   1024   // Flasche enthaelt Fluessigkeit!=Wasser
+
+
+    Angel:
+    ******
+      Angeln sind ueblicherweise auf bestimmte Anwendungsbereiche ausgelegt.
+      Ob eine Angel in einem Gewaesser benutzt werden kann, haengt davon ab,
+      ob P_WATER in der Angel den Gewaessertyp des Raumes enthaelt. Von den
+      oben genannten Typen koennen mehrere ver-ODER-t gesetzt werden.
+      Verwendung einer fuer das oertliche Gewaesser ungeeigneten Angel fuehrt
+      zu einer um 60+random(60) Sekunden verlaengerten Wartezeit beim Angeln.
+
+      
+
+      Beispiel: Setzt man den Gewaessertyp mit 
+
+        SetProp(P_WATER, W_HARBOR|W_OCEAN);
+
+      schaltet das die Angel sowohl fuer Haefen, als auch fuer offene Meere
+      (Ozeane) frei.
+
+      Folgende kombinierte Gewaessertypen sind fuer einfache Angeln 
+      vordefiniert:
+
+      Kurze Standardangeln:
+        W_SHORT W_HARBOR|W_RIVER|W_POOL|W_LAKE|W_ROCK|W_USER|W_OCEAN|W_STREAM
+      Spezielle Strandruten:
+        W_LONG  W_BEACH|W_USER
+      funktioniert in allen Salzgewaessern:
+        W_SALT  W_HARBOR|W_OCEAN|W_BEACH
+      funktioniert in allen Suessgewaessern:
+        W_SWEET W_RIVER|W_POOL|W_LAKE|W_ROCK|W_STREAM
+
+      Hinweis: W_DEAD ist in diesen Kombinationen nicht enthalten, da es
+      in solchen Gewaessern ohnehin keine Fische gibt.
+      Die Kombi-Typen enthalten W_USER, um bei entsprechenden Gewaessern
+      zu vermeiden, dass es dort standardmaessig einen Malus auf die 
+      Wartezeit gibt. Standardwert fuer P_WATER in Angeln ist ebenfalls 
+      W_USER.
+
+    Koeder:
+    *******
+      Auch Koeder koennen fuer die Verwendung in bestimmten Gewaessern besser
+      geeignet sein als in anderen, z.B. eine Seeschnecke fuer Salzwasser,
+      ein Mehlwurm hingegen fuer Suesswasser. Gesetzt wird P_WATER hierfuer
+      auf die oben aufgefuehrten Werte.
+      Verwendung eines ungeeigneten Koeders fuehrt zu einer um 60+random(60)
+      Sekunden laengeren Wartezeit beim Angeln.
+
+    Wasserbehaelter:
+    ****************
+      Die Property gibt an, ob der Behaelter Wasser enthaelt oder nicht.
+      Der Wert sollte immer auf den Typ jenes Gewaessers gesetzt sein, aus
+      dem der Behaelter aufgefuellt wurde.
+
+SIEHE AUCH
+----------
+::
+
+    Properties: P_FISH
+    Methoden:   GetAquarium(L)
+
+
+Zuletzt geaendert: 2014-Aug-21, Arathorn
+
diff --git a/doc/sphinx/props/P_WC.rst b/doc/sphinx/props/P_WC.rst
new file mode 100644
index 0000000..9129867
--- /dev/null
+++ b/doc/sphinx/props/P_WC.rst
@@ -0,0 +1,56 @@
+P_WC
+====
+
+NAME
+----
+::
+
+	P_WC				"wc"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/weapon.h
+
+BESCHREIBUNG
+------------
+::
+
+	Die Waffenklasse (engl: weapon class), also die Staerke der Waffe,
+	stellt einen numerischen Wert dar, der umso groesser ist, desto mehr
+	Schaden eine Waffe im Kampf anrichtet. Beim Zuecken oder Wegstecken
+	einer Waffe durch ein Lebewesen wird innerhalb des Lebewesens auch
+	die Property P_TOTAL_WC aktualisiert, welche somit immer die
+	aktuelle Angriffsstaerke enthaelt. Beim Zuecken erhaelt sie hierbei
+	die Waffenklasse der Waffe und beim Wegstecken die Angriffsstaerke
+	aus der Property P_HANDS (Kaempfen mit blossen Haenden).
+	Die Waffenklasse von einhaendigen Waffen sollte 150 nicht
+	ueberschreiten, die Obergrenze fuer zweihaendige Waffen liegt bei
+	200. Ausnahmen von dieser Regel beduerfen der Absprache mit dem
+	Erzmagier fuer Ruestungen, Waffen und Monster!
+	Negative Werte bewirken keinen Schaden, allerdings auch keine
+	Heilung.
+
+BEMERKUNGEN
+-----------
+::
+
+	Query- und Setmethoden auf P_WC sollten unbedingt vermieden werden. Sie
+	fuehren in der Regel zu massiven Inkonsistenzen im Mechanismus der 
+	Ruestungsbeschaedigung und -reparatur.
+	Auch mit einer HitFunc() duerfen die Obergrenzen nicht ohne
+	Absprache ueberschritten werden! Ausserdem ist es ratsam, die
+	zusaetzlichen Kampfeigenschaften in P_EFFECTIVE_WC gesondert
+	anzugeben.
+
+SIEHE AUCH
+----------
+::
+
+	/std/weapon.c, /std/weapon/combat.c
+	P_DAMAGED, P_EFFECTIVE_WC, P_WEAPON_TYPE
+	Damage()
+
+02.10.2007, Zesstra
+
diff --git a/doc/sphinx/props/P_WEAPON.rst b/doc/sphinx/props/P_WEAPON.rst
new file mode 100644
index 0000000..b9fde21
--- /dev/null
+++ b/doc/sphinx/props/P_WEAPON.rst
@@ -0,0 +1,31 @@
+P_WEAPON
+========
+
+NAME
+----
+::
+
+     P_WEAPON                      "weapon"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+      Momentan gezueckte Waffe. Im Living gesetzt.
+
+SIEHE AUCH
+----------
+::
+
+      Verwandt:		P_ARMOURS
+      Waffen:		P_WC, P_WEAPON_TYPE, P_DAM_TYPE, P_NR_HANDS, P_PARRY
+      Sonstiges:	P_UNWIELD_TIME, P_EQUIP_TIME, P_LAST_USE
+
+10.Feb 2005 Gloinson
+
diff --git a/doc/sphinx/props/P_WEAPON_TEACHER.rst b/doc/sphinx/props/P_WEAPON_TEACHER.rst
new file mode 100644
index 0000000..a38f8c9
--- /dev/null
+++ b/doc/sphinx/props/P_WEAPON_TEACHER.rst
@@ -0,0 +1,29 @@
+P_WEAPON_TEACHER
+================
+
+NAME
+----
+::
+
+    P_WEAPON_TEACHER              "weapon_teacher"
+
+DEFINIERT IN
+------------
+::
+
+    combat.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property wird in einem Azubi gesetzt (zur Zeit nur fuer die 
+    Kaempfer-Gilde), der selbst ueber die allgemeinen Waffenskills
+    verfuegt.
+
+    In diese Property wird der Name eines Kaempfergilden-Ausbilders
+    eingetragen.
+
+    Unter Anleitung des Ausbilders lernt der Azubi dann etwas schneller
+    die allgemeinen Waffenskills.
+
diff --git a/doc/sphinx/props/P_WEAPON_TYPE.rst b/doc/sphinx/props/P_WEAPON_TYPE.rst
new file mode 100644
index 0000000..56622c3
--- /dev/null
+++ b/doc/sphinx/props/P_WEAPON_TYPE.rst
@@ -0,0 +1,42 @@
+P_WEAPON_TYPE
+=============
+
+NAME
+----
+::
+
+     P_WEAPON_TYPE "weapon_type"
+
+DEFINIERT IN
+------------
+::
+
+     <weapon.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Um was fuer eine Waffe handelt es sich? Es stehen verschiedene
+     Typen zur Auswahl. Man sollte hier nur die in <combat.h> definierten
+     Konstanten verwenden:
+
+        WT_AMMU           Munition fuer Fernkampfwaffen
+        WT_AXE            Axt
+        WT_CLUB           Keule
+        WT_HANDS          blosse Haende
+        WT_KNIFE          Messer, Dolch
+        WT_RANGED_WEAPON  Fernkampfwaffe
+        WT_SPEAR          Speer
+        WT_STAFF          Kampfstab
+        WT_SWORD          Schwert
+        WT_WHIP           Peitsche
+        WT_MISC           Sonstiges
+
+    Der Waffentyp WT_MISC ist schnoedem Tand und nutzlosem Kram vorbehalten.
+    Waffen dieses Typs duerfen keine P_WC > 0 besitzen oder kampfrelevante
+    Bedeutung haben.
+
+
+Letzte Aenderung: 27. Mai 2015, Arathorn.
+
diff --git a/doc/sphinx/props/P_WEAR_FUNC.rst b/doc/sphinx/props/P_WEAR_FUNC.rst
new file mode 100644
index 0000000..951eecc
--- /dev/null
+++ b/doc/sphinx/props/P_WEAR_FUNC.rst
@@ -0,0 +1,44 @@
+P_WEAR_FUNC
+===========
+
+NAME
+----
+::
+
+     P_WEAR_FUNC "wear_func"
+
+DEFINIERT IN
+------------
+::
+
+     <armour.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Falls ein Objekt eine WearFunc() fuer die Ruestung / Kleidung definiert, 
+     so muss dieses Objekt in dieser Property eingetragen sein.
+
+     Die Auswertung dieser Property erfolgt in Laufe eines DoWear() in der
+     nicht-oeffentlichen Funktion _check_wear_restrictions()..
+
+BEISPIELE
+---------
+::
+
+     Siehe das Beispiel zu WearFunc()
+
+SIEHE AUCH
+----------
+::
+
+     armours, clothing, /std/clothing/wear.c, /std/armour/wear.c
+     WearFunc(), InformWear()
+
+LETZTE AeNDERUNG
+----------------
+::
+
+15.02.2009, Zesstra
+
diff --git a/doc/sphinx/props/P_WEAR_MSG.rst b/doc/sphinx/props/P_WEAR_MSG.rst
new file mode 100644
index 0000000..231394c
--- /dev/null
+++ b/doc/sphinx/props/P_WEAR_MSG.rst
@@ -0,0 +1,82 @@
+P_WEAR_MSG
+==========
+
+NAME
+----
+::
+
+    P_WEAR_MSG                       "wear_msg"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/armour.h
+
+BESCHREIBUNG
+------------
+::
+
+     Zweiteiliges Array mit Meldungen, die beim Anziehen einer Ruestung oder
+     Kleidung an den Spieler und die Umgebung ausgegeben werden.
+     Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
+     Umgebung. Zeilenumbrueche werden automatisch gemacht, existierende
+     jedoch beruecksichtigt.
+
+     Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
+     man replace_personal()).
+
+     [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
+      moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
+      in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
+      den Waffennamen.]
+
+BEISPIELE
+---------
+::
+
+    SetProp(P_NAME, "Helm");
+    SetProp(P_WEAR_MSG,
+     ({"Du stuelpst die @WEN2 ueber.", 
+       "@WER1 stuelpt sich @WENU2 ueber."}));
+
+    -> beim Anziehe durch Urk:
+       Urk bekommt: Du stuelpst dir den Helm ueber.
+       Der Raum:    Urk stuelpt sich einen Helm ueber.
+
+    SetProp(P_WEAR_MSG,
+     ({"Als Du Dir den langen Mantel ueberziehst, steckst Du erstmal "
+       "mit Deinem dicken Schaedel fest. Doch nach einem kraeftigen "
+       "Ruck bist Du endlich durch und siehst wieder etwas.",
+       "@WER1 zieht sich einen langen Mantel ueber und bleibt "
+       "prompt mit dem dicken Schaedel stecken. Doch nach einem "
+       "kraeftigen Ruck kann @WERQP1 wieder etwas sehen und grinst Dich "
+       "verlegen an."}));
+
+    -> beim Anziehen durch Urk:
+       Urk bekommt: Als Du Dir den langen Mantel ueberziehst, steckst Du
+		    erstmal mit Deinem dicken Schaedel fest. Doch nach einem
+		    kraeftigen Ruck bist Du endlich durch und siehst wieder
+		    etwas.
+
+       Der Raum:    Urk zieht sich einen langen Mantel ueber und bleibt
+		    prompt mit dem dicken Schaedel stecken. Doch nach
+		    einem kraeftigen Ruck kann er wieder etwas sehen und
+		    grinst Dich verlegen an.
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_UNWEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
+                 P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
+     Funktionen: WearFunc, UnwearFunc, InformWear()
+     Sonstiges:  replace_personal(E), clothing, /std/clothing/wear.c
+                 armour, /std/armour/wear.c
+
+LETZTE AeNDERUNG
+----------------
+::
+
+15.02.2009
+
diff --git a/doc/sphinx/props/P_WEIGHT.rst b/doc/sphinx/props/P_WEIGHT.rst
new file mode 100644
index 0000000..8e51d18
--- /dev/null
+++ b/doc/sphinx/props/P_WEIGHT.rst
@@ -0,0 +1,48 @@
+P_WEIGHT
+========
+
+NAME
+----
+::
+
+    P_WEIGHT                      "weight"                      
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/restrictions.h
+
+BESCHREIBUNG
+------------
+::
+
+     - Objekte
+       Das Gewicht eines Objetes in Gramm.
+
+     - Speisen
+       Gewicht einer Portion der Speise.
+
+       
+
+BEMERKUNGEN
+-----------
+::
+
+     In tragbaren Speisen (erben von /std/food) setzt man mit SetProp
+     das Gewicht _einer_ Portion. Per QueryProp erhaelt man aber das
+     Gesamtgewicht der Speise inclusive des eventuell vorhandenen Behaelters.
+     Das Gewicht des Behaelters wird dabei aus P_EMPTY_PROPS[P_WEIGHT]
+     gelesen.
+
+     
+
+SIEHE AUCH
+----------
+::
+
+     Speisen: wiz/food, P_EMPTY_PROPS
+
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
+
diff --git a/doc/sphinx/props/P_WEIGHT_PERCENT.rst b/doc/sphinx/props/P_WEIGHT_PERCENT.rst
new file mode 100644
index 0000000..fbd34d3
--- /dev/null
+++ b/doc/sphinx/props/P_WEIGHT_PERCENT.rst
@@ -0,0 +1,47 @@
+P_WEIGHT_PERCENT
+================
+
+NAME
+----
+::
+
+    P_WEIGHT_PERCENT              "weight_percent"              
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property gibt an, wieviel Prozent des Gewichts des Inhaltes
+     "nach aussen" wiedergegeben werden.
+
+BEMERKUNGEN
+-----------
+::
+
+     Alle Werte die < 50% liegen sollten sehr gut begruendet und mit Vor-
+     sicht verwendet werden. Hier koennten dann zum Beispiel P_MAX_OBJECTS
+     auf einen kleinen Wert begrenzt werden.
+
+     Container die hier einen Wert ueber dem des Postpakets haben, sollten
+     auch schwer zu erreichen sein. Auf jeden Fall mit dem Regionsmagier
+     besprechen!
+
+BEISPIELE
+---------
+::
+
+     Um sich zu orientieren kann das Postpaket von Loco als Beispiel hin-
+     zugezogen werden (/p/service/loco/obj/parcel).
+
+SIEHE AUCH
+----------
+::
+
+     P_MAX_OBJECTS, P_MAX_WEIGHT, P_LIGHT_TRANSPARENCY, container
+
diff --git a/doc/sphinx/props/P_WEIGHT_PER_UNIT.rst b/doc/sphinx/props/P_WEIGHT_PER_UNIT.rst
new file mode 100644
index 0000000..f1789dc
--- /dev/null
+++ b/doc/sphinx/props/P_WEIGHT_PER_UNIT.rst
@@ -0,0 +1,29 @@
+P_WEIGHT_PER_UNIT
+=================
+
+NAME
+----
+::
+
+    P_WEIGHT_PER_UNIT             "weight_per_unit"             
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gewicht in Gramm pro Untereinheit.
+
+BEMERKUNGEN
+-----------
+::
+
+     Deprecated. Bitte SetGramsPerUnits() (U_GPU) benutzen.
+
+25.Aug 2015 Gloinson
+
diff --git a/doc/sphinx/props/P_WIELDED.rst b/doc/sphinx/props/P_WIELDED.rst
new file mode 100644
index 0000000..578ac3d
--- /dev/null
+++ b/doc/sphinx/props/P_WIELDED.rst
@@ -0,0 +1,38 @@
+P_WIELDED
+=========
+
+NAME
+----
+::
+
+     P_WIELDED "wielded"
+
+DEFINIERT IN
+------------
+::
+
+     <weapon.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Ist diese Property gesetzt, dann ist die Waffe gerade gezueckt. Der
+     Traeger ist in der Property vermerkt.
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Property laesst sich nur abfragen!
+
+SIEHE AUCH
+----------
+::
+
+     /std/weapon.c
+     P_WEAPON
+
+
+Last modified: 2015-Jul-11, Arathorn 
+
diff --git a/doc/sphinx/props/P_WIELD_FUNC.rst b/doc/sphinx/props/P_WIELD_FUNC.rst
new file mode 100644
index 0000000..eb0c93d
--- /dev/null
+++ b/doc/sphinx/props/P_WIELD_FUNC.rst
@@ -0,0 +1,39 @@
+P_WIELD_FUNC
+============
+
+NAME
+----
+::
+
+     P_WIELD_FUNC "wield_func"
+
+DEFINIERT IN
+------------
+::
+
+     <weapon.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Falls ein Objekt eine WieldFunc() fuer die Waffe definiert, so muss
+     dieses Objekt in dieser Property eingetragen werden.
+
+     Die Auswertung dieser Property erfolgt in wield_me().
+
+BEISPIELE
+---------
+::
+
+     Siehe das Beispiel zu WieldFunc()
+
+SIEHE AUCH
+----------
+::
+
+     /std/weapon.c, WieldFunc()
+
+
+Last modified: Sun May 19 15:40:02 1996 by Wargon
+
diff --git a/doc/sphinx/props/P_WIELD_MSG.rst b/doc/sphinx/props/P_WIELD_MSG.rst
new file mode 100644
index 0000000..5791666
--- /dev/null
+++ b/doc/sphinx/props/P_WIELD_MSG.rst
@@ -0,0 +1,74 @@
+P_WIELD_MSG
+===========
+
+NAME
+----
+::
+
+     P_WIELD_MSG                       "wield_msg" 
+
+DEFINIERT IN
+------------
+::
+
+     /sys/weapon.h
+
+BESCHREIBUNG
+------------
+::
+
+     Zweiteiliges Array mit Meldungen, die beim Zuecken einer Waffe an den
+     Spieler und die Umgebung ausgegeben werden.
+     Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
+     Umgebung.  Zeilenumbrueche werden automatisch gemacht, existierende
+     jedoch beruecksichtigt.
+
+     Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
+     man replace_personal()).
+
+     [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
+      moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
+      in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
+      den Waffennamen.]
+
+BEISPIELE
+---------
+::
+
+    SetProp(P_NAME, "Streitkolben");
+    SetProp(P_WIELD_MSG,
+     ({"Du zueckst @WEN2 und stoesst einen markerschuetternden Schrei aus.", 
+       "@WER1 zueckt @WENU2 und stoesst einen markerschuetternden Schrei "
+       "aus." }));
+
+    -> beim Zuecken durch Urk:
+       Urk bekommt: Du zueckst den Streitkolben und stoesst einen
+		    markerschuetternden Schrei aus.
+       Der Raum:    Urk zueckt einen Streitkolben und stoesst einen
+		    markerschuetternden Schrei aus.
+
+    SetProp(P_WIELD_MSG,
+     ({"Du zueckst den klobigen Streitkolben und fuchtelst damit "
+       "wild vor Deiner Nase herum.",
+       "@WER1 zueckt einen klobigen Streitkolben und fuchtelt "
+       "damit wild vor der eigenen Nase herum. Hoffentlich verletzt "
+       "@WERQP1 sich dabei nicht ..."}));
+
+    -> beim Zuecken durch Urk:
+       Urk bekommt: Du zueckst den klobigen Streitkolben und fuchtelst
+                    damit wild vor Deiner Nase herum.
+       Der Raum:    Urk zueckt einen klobigen Streitkolben und fuchtelt
+		    damit wild vor der eigenen Nase herum. Hoffentlich
+                    verletzt er sich dabei nicht ...
+
+SIEHE AUCH
+----------
+::
+
+     Aehnliches: P_UNWIELD_MSG, P_WEAR_MSG, P_UNWEAR_MSG
+                 P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
+     Funktionen: UnwieldFunc, WieldFunc
+     Sonstiges:  replace_personal(E), /std/weapon/combat.c
+
+29. Maerz 2004 Gloinson
+
diff --git a/doc/sphinx/props/P_WIMPY.rst b/doc/sphinx/props/P_WIMPY.rst
new file mode 100644
index 0000000..f24548c
--- /dev/null
+++ b/doc/sphinx/props/P_WIMPY.rst
@@ -0,0 +1,31 @@
+P_WIMPY
+=======
+
+NAME
+----
+::
+
+    P_WIMPY                       "wimpy"                       
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Numerischer Wert. Das Lebewesen flieht, wenn die Lebenspunkte
+     unter diesen Wert sinken.
+
+SIEHE AUCH
+----------
+::
+
+     P_WIMPY_DIRECTION
+
+
+Letzte Aenderung: Mon Feb 12 17:50:47 2001 von Tilly
+
diff --git a/doc/sphinx/props/P_WIMPY_DIRECTION.rst b/doc/sphinx/props/P_WIMPY_DIRECTION.rst
new file mode 100644
index 0000000..8db2198
--- /dev/null
+++ b/doc/sphinx/props/P_WIMPY_DIRECTION.rst
@@ -0,0 +1,41 @@
+P_WIMPY_DIRECTION
+=================
+
+NAME
+----
+::
+
+    P_WIMPY_DIRECTION             "wimpy_dir"                   
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+     Fluchtrichtung eines Spielers oder NPCs
+
+BEMERKUNGEN
+-----------
+::
+
+     Die Fluchtrichtung kann nicht nur ein Ausgang (sueden, osten, ...)
+     sein, sondern auch ein Kommando, welches der Spieler beim Anschlagen
+     ausfuehrt (z.b. <kletter seil hoch> oder <rufe Elender Mist!>).
+
+     Ausgefuehrt wird die Fluchtrichtung per command(), wenn die LP des 
+     Lebewesens unter die mit <vorsicht> angegebe LP-Grenze sinkt.
+
+SIEHE AUCH
+----------
+::
+
+     P_WIMPY
+
+
+Letzte Aenderung: Mon Feb 12 17:46:47 2001 von Tilly
+
diff --git a/doc/sphinx/props/P_WIZ_DEBUG.rst b/doc/sphinx/props/P_WIZ_DEBUG.rst
new file mode 100644
index 0000000..041090b
--- /dev/null
+++ b/doc/sphinx/props/P_WIZ_DEBUG.rst
@@ -0,0 +1,37 @@
+P_WIZ_DEBUG
+===========
+
+NAME
+----
+::
+
+    P_WIZ_DEBUG                    "std_p_wizdebug"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player/comm.h
+
+BESCHREIBUNG
+------------
+::
+
+     Gesetzt, wenn der Magier (oder ein Testspieler) Debugmeldungen wahrnehmen
+     moechte.
+     Debugmeldungen sind Nachrichten, die mit dem Typ MT_DEBUG an ReceiveMsg()
+     uebergeben werden.
+
+     
+
+     Die Werte von P_WIZ_DEBUG sind zur Zeit 0 oder 1, das kann sich aber
+     jederzeit aendern.
+     Magier aendern diese Prop bitte ueber "mschau".
+
+SIEHE AUCH
+----------
+::
+
+     mschau
+     P_WANTS_TO_LEARN
+
diff --git a/doc/sphinx/props/P_WORN.rst b/doc/sphinx/props/P_WORN.rst
new file mode 100644
index 0000000..ec3b359
--- /dev/null
+++ b/doc/sphinx/props/P_WORN.rst
@@ -0,0 +1,63 @@
+P_WORN
+======
+
+NAME
+----
+::
+
+     P_WORN "worn"
+
+DEFINIERT IN
+------------
+::
+
+     <armour.h>
+
+BESCHREIBUNG
+------------
+::
+
+     Mittels dieser Property laesst sich ermitteln, ob eine Ruestung bzw. 
+     Kleidung derzeit getragen wird und wenn ja, von wem.
+
+     Entweder enthaelt die Property den Wert 0, oder sie enthaelt den
+     Traeger der Ruestung / Kleidung (als Objekt).
+
+BEMERKUNGEN
+-----------
+::
+
+     Diese Property laesst sich nur abfragen!
+
+BEISPIELE
+---------
+::
+
+     Eine DefendFunc() koennte dem Traeger der Ruestung wie folgt etwas
+     mitteilen:
+
+     // Die Ruestung gibt Schutz gegen Feuer
+     int DefendFunc(string *dtyp, mixed spell, object enemy)
+     {
+       if (member(dtyp, DT_FIRE) != -1) {
+         // P_WORN ist auf jeden Fall gesetzt, da sonst die
+         // DefendFunc ueberhaupt nicht aufgerufen wuerde!
+         tell_object(QueryProp(P_WORN),
+           "Die Flammen zuengeln nur leicht ueber die Ruestung.\n");
+         return 10;
+       }
+       return 0;
+     }
+
+SIEHE AUCH
+----------
+::
+
+     clothing, /std/clothing.c, armour, /std/armour.c
+
+LETZTE AeNDERUNG
+----------------
+::
+
+15.02.2009, Zesstra
+
diff --git a/doc/sphinx/props/P_XP.rst b/doc/sphinx/props/P_XP.rst
new file mode 100644
index 0000000..ec4864a
--- /dev/null
+++ b/doc/sphinx/props/P_XP.rst
@@ -0,0 +1,81 @@
+P_XP
+====
+
+NAME
+----
+::
+
+     P_XP                    "xp"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/living/life.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property enthaelt die Anzahl der Erfahrungspunkte, die ein
+     Lebewesen erreicht hat. Dies geschieht insbesondere durch
+     Kampfhandlungen, wobei es sowohl fuer Einzelschlaege als auch fuer
+     das Toeten eines Opfers Punkte gibt.
+
+     Bei einzelnen Schlaegen ist die Vergabe von Erfahrungspunkten davon
+     abhaengig, wie stark man das Opfer getroffen hat, und welche
+     Gesamtwaffenklasse es hat (damage*P_TOTAL_WC/10).
+
+     Beim Todesschlag erhaelt man zusaetzlich die Erfahrungspunkte des
+     Opfers geteilt durch 100 (P_XP/100). Dieser Wert wird allerdings
+     gegebenenfalls auf ein Team aufgeteilt, sofern der Angreifer sich in
+     einem solchigen befindet.
+
+BEISPIEL
+--------
+::
+
+     NPC's gibt man im allgemeinen einen levelabhaengigen Sockelwert an
+     Erfahrungspunkten mit, da sie nicht allzuoft selbst Gegner toeten
+     und somit kaum die Moeglichkeit haben, diese Punkte selbst
+     anzusammeln. Trotzdem sollen sie ja dem Spieler eine gewisse Anzahl
+     an Erfahrungspunkten liefern, wenn sie getoetet werden:
+
+       include "/sys/living/life.h"
+       inherit "std/npc";
+       void create() {
+         ...
+         SetProp(P_XP,25000000);
+       }
+
+     Beim Toeten gibt es nun 25.000.000/100 = 250.000 Erfahrungspunkte.
+     Damit wird der NPC sogar automatisch fuer die Vergabe von
+     Erstkillstufenpunkten vorgesehen.
+
+     Die Funktion create_default_npc() setzt P_XP und andere Eigenschaften
+     auf geeignete Werte.
+
+BEMERKUNGEN
+-----------
+::
+
+     Die Vergabe von Erstkillstufenpunkten kann man ueber die Property
+     P_NO_SCORE unterbinden, die Vergabe von Erfahrungspunkten ueber
+     P_NO_XP. Automatisch werden Lebewesen fuer Erstkillstufenpunkte
+     vorgesehen, sofern sie eine der folgenden Grenzen ueberschritten
+     haben:
+       SCORE_LOW_MARK:  200000 (1 Stufenpunkt)
+       SCORE_HIGH_MARK: 600000 (2 Stufenpunkte)
+     Definiert sind die Konstanten in "/secure/scoremaster.h".
+
+SIEHE AUCH
+----------
+::
+
+     Funktionen:  AddExp(), do_damage()
+     Verwandt:    P_NO_XP, P_LAST_XP
+     Sonstiges:   P_NO_SCORE, create_default_npc()
+                  P_TOTAL_WC
+
+14.Feb 2007 Gloinson
+
diff --git a/doc/sphinx/props/P_X_ATTR_MOD.rst b/doc/sphinx/props/P_X_ATTR_MOD.rst
new file mode 100644
index 0000000..3cd36bf
--- /dev/null
+++ b/doc/sphinx/props/P_X_ATTR_MOD.rst
@@ -0,0 +1,68 @@
+P_X_ATTR_MOD
+============
+
+NAME
+----
+::
+
+    P_X_ATTR_MOD                  "extern_attributes_modifier"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mapping, das die Attribute des Spielers veraendert, der das Objekt bei
+    sich hat.
+
+    Zu beachten:
+    Diese Property bitte _ausschliesslich_ mit SetProp aendern, weil damit
+    gleichzeitig UpdateAttributes() im Lebewesen aufgerufen und ggf. das
+    Objekt als Statmodifizierer registriert wird.
+
+    Diese Property ist fuer Krankheiten, Flueche etc. gedacht. Bei
+    Waffen/Ruestungen, die die Attribute beeinflussen sollen, verwendet
+    man besser P_M_ATTR_MOD.
+
+    P_X_ATTR_MOD und P_M_ATTR_MOD duerfen einen gemeinsamen kumulierten
+    positiven Grenzwert nicht ueberschreiten. Dieser Grenzwert,
+    CUMULATIVE_ATTR_LIMIT, ist in /sys/living/attributes.h definiert.
+
+BEMERKUNGEN
+-----------
+::
+
+    Die Methode /std/thing/restrictions::_set_extern_attributes_modifier()
+    benachrichtigt tragende Livings ueber Aenderungen.
+    Bitte beim "Loeschen" der Prop nicht den Wert des jew. Attributes im
+    uebergebenen Mapping als 0 uebergeben, sondern das Key/Werte-Paar ganz
+    entfernen und bzw. ein leeres Mapping oder 0 uebergeben.
+
+BEISPIEL
+--------
+::
+
+    // Dem Lebewesen, das das Objekt bei sich hat, wird 2 von A_INT abgezogen
+    SetProp(P_X_ATTR_MOD,([A_INT:-2]));
+
+    // Stats wiederherstellen:
+    SetProp(P_X_ATTR_MOD,([]));
+
+SIEHE AUCH
+----------
+::
+
+    QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+    SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+    SetTimedAttrModifier(), QueryTimedAttrModifier(),
+    DeleteTimedAttrModifier(),
+    P_X_HEALTH_MOD, P_M_HEALTH_MOD, P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
+    P_TIMED_ATTR_MOD, P_M_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
+02.02.2016, Gloinson
+
diff --git a/doc/sphinx/props/P_X_HEALTH_MOD.rst b/doc/sphinx/props/P_X_HEALTH_MOD.rst
new file mode 100644
index 0000000..7f294e3
--- /dev/null
+++ b/doc/sphinx/props/P_X_HEALTH_MOD.rst
@@ -0,0 +1,60 @@
+P_X_HEALTH_MOD
+==============
+
+NAME
+----
+::
+
+    P_X_HEALTH_MOD                  "extern_health_modifier"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/living/attributes.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mapping, mit dem die maximalen Lebenspunkte und Magiepunkte eines
+    Spielers veraendert werden, der dieses Objekt bei sich traegt.
+
+    Zu beachten: Diese Property bitte _ausschliesslich_ mit SetProp
+    aendern, weil damit gleichzeitig UpdateAttributes() im
+    Lebewesen aufgerufen und ggf. das Objekt als Statmodifizierer 
+    registriert wird.
+
+    Bei Ruestungen/Waffen, die diese Wirkung entfalten sollen, verwendet
+    man besser P_M_HEALTH_MOD.
+
+BEMERKUNGEN
+-----------
+::
+
+    Bitte bei "Loeschen" der Prop nicht den Wert des jew. Attributes im 
+    uebergebenen Mapping als 0 uebergeben, sondern das Key/Werte-Paar ganz 
+    entfernen und ggf. ein leeres Mapping oder 0 uebergeben.
+
+BEISPIEL
+--------
+::
+
+    // Dem Spieler, der das Objekt bei sich traegt, wird P_MAX_HP um 5
+    // erhoeht und P_MAX_SP um 5 erniedrigt.
+    SetProp(P_X_HEALTH_MOD,([P_HP:5,P_SP:-5]));
+    // Stats wiederherstellen:
+    SetProp(P_X_HEALTH_MOD,([]);
+
+SIEHE AUCH
+----------
+::
+
+    P_M_HEALTH_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, balance
+
+LETZTE AeNDERUNG
+----------------
+::
+
+    Sat, 06.02.1999, 14:00:00 von Paracelsus
+
diff --git a/doc/sphinx/props/P_ZAP_MSG.rst b/doc/sphinx/props/P_ZAP_MSG.rst
new file mode 100644
index 0000000..03ba0c1
--- /dev/null
+++ b/doc/sphinx/props/P_ZAP_MSG.rst
@@ -0,0 +1,42 @@
+P_ZAP_MSG
+=========
+
+NAME
+----
+::
+
+      P_ZAP_MSG			"zap_msg"
+
+DEFINIERT IN
+------------
+::
+
+      /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+      Die Property enthaelt ein dreielementiges Array mit den folgenden
+      Eintraegen:
+	  1.) Meldung, die der Magier beim Zappen bekommt.
+	  2.) Meldung, die die Spieler im Raum beim Zappen bekommen.
+	  3.) Meldung, die das Opfer beim Zappen bekommt.
+
+      Mit @@wer@@, @@wessen@@, ... kann der Name des Opfers und mit @@ich@@
+      der Name des Magiers in die Meldung eingewoben werden.
+
+      Die Property ist in Magiern gesetzt und gilt nur dort.
+
+SIEHE AUCH
+----------
+::
+
+     Tod:		die(L)
+     Todesmeldungen:	P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
+			P_ENEMY_DEATH_SEQUENCE
+     Sonstiges:		P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
+
diff --git a/doc/sphinx/props/U_REQ.rst b/doc/sphinx/props/U_REQ.rst
new file mode 100644
index 0000000..3246b41
--- /dev/null
+++ b/doc/sphinx/props/U_REQ.rst
@@ -0,0 +1,83 @@
+U_REQ
+=====
+
+NAME
+----
+::
+
+    U_REQ                         "u_req"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/unit.h
+
+BESCHREIBUNG
+------------
+::
+
+     Die Prop kann in Unitobjekten gesetzt werden.
+     Sie gibt die Anzahl der Einheiten an, die an der Unit manipuliert werden
+     sollen, falls mit weniger als P_AMOUNT umgegegangen werden soll.
+
+     
+
+     Die Prop wird automatisch gesetzt, wenn id() an einem Unitobjekt gerufen
+     wird und die ID grundsaetzlich zutreffend ist, die aus der ID ermittelte
+     Zahl aber kleiner als P_AMOUNT ist.
+     Sie kann auch manuell mittel SetProp() (aber nicht Set()) gesetzt werden.
+
+     U_REQ wird beim Bewegen und Zerstoeren, bei Ermittlung von Wert und
+     Gewicht beruecksichtigt.
+
+     U_REQ wird vom Unitobjekt automatisch wieder auf P_AMOUNT gesetzt, wenn
+     sich query_verb() oder debug_info(DINFO_EVAL_NUMBER) veraendert haben.
+     (DINFO_EVAL_NUMBER ist eine Zahl, die sich jedesmal erhoeht, wenn der
+      Driver eine neue Berechnung/Ausfuehrung beginnt. Diese Nummer wird fuer
+      jeden vom driver initiierten Aufruf von LPC-Code erhoeht, z.B. bei jedem
+      Kommando, call_out, heart_beat etc. Details s. debug_info().)
+
+     Ebenso wird U_REQ bei der Vereinigung mit einem anderen (gleichen)
+     Objekt auf P_AMOUNT des vereinigten Objektes gesetzt.
+
+BUGS
+----
+::
+
+    Viele. Dies ist ein uebler Hack. Geht aber nicht ohne.
+    Diese Prop war endlos lang gar nicht dokumentiert. Hier beschrieben ist
+    das Verhalten, was zur Zeit vorliegt. Dies mag unterschiedlich zu dem
+    irgendwann intendierten sein.
+
+BEISPIELE
+---------
+::
+
+    object o = clone_object("unitobjekt");
+    o->SetProp(P_AMOUNT, 100);   // ab jetzt hat o 100 Einheiten.
+    o->move(npc, M_GET);         // ob mit 100 Einheiten wird bewegt
+    o->SetProp(U_REQ, 50);
+    o->move(anderernpc, M_GIVE); // 50 Einheiten werden bewegt, 50 verbleiben
+    (Technisch: das Objekt wird auf 50 Einheiten geaendert, bewegt und in der
+     alten Umgebung wird ein neues Objekt mit 50 Einheiten erzeugt.)
+
+    o->SetProp(U_REQ, 42);
+    o->remove(1);               // 42 Einheiten von den 50 werden zerstoert.
+    (Technisch: P_AMOUNT wird einfach um U_REQ reduziert.)
+
+    # gib 18 muenzen an blupp
+    Hierbei wird ob->id("18 muenzen") gerufen, was U_REQ im Geldobjekt auf 18
+    setzt. Bei der Bewegung bekommt blupp daher das Objekt mit P_AMOUNT==18
+    und der Rest wird im Abgebenden neu erzeugt.
+    # gib geld an flubbel
+    Das U_REQ aus dem verherigen Kommando ist jetzt nicht mehr gueltig. Zwar
+    ist es das gleiche Kommandoverb, aber DINFO_EVAL_NUMBER ist jetzt
+    anders.
+
+ZULETZT GEAeNDERT
+-----------------
+::
+
+16.01.2015, Zesstra
+
diff --git a/doc/sphinx/props/gildenprops/P_GLOVE_FINGERLESS.rst b/doc/sphinx/props/gildenprops/P_GLOVE_FINGERLESS.rst
new file mode 100644
index 0000000..f304503
--- /dev/null
+++ b/doc/sphinx/props/gildenprops/P_GLOVE_FINGERLESS.rst
@@ -0,0 +1,30 @@
+P_GLOVE_FINGERLESS
+==================
+
+NAME
+----
+::
+
+     P_GLOVE_FINGERLESS                     "fingerfreie_handschuhe"
+
+DEFINIERT IN
+------------
+::
+
+     /p/katzenkrieger/kkrieger.h
+
+BESCHREIBUNG
+------------
+::
+
+     So gekennzeichnete Handschuhe sind fingerlos und koennen
+     waehrend "krallenschlag" getragen werden.
+
+SIEHE AUCH
+----------
+::
+
+     Verwandt:	P_ARMOUR_TYPE, AT_GLOVE
+
+10.Okt 2006 Gloinson
+
diff --git a/doc/sphinx/props/gildenprops/P_Z_AUTOSHIELD.rst b/doc/sphinx/props/gildenprops/P_Z_AUTOSHIELD.rst
new file mode 100644
index 0000000..6113175
--- /dev/null
+++ b/doc/sphinx/props/gildenprops/P_Z_AUTOSHIELD.rst
@@ -0,0 +1,43 @@
+P_Z_AUTOSHIELD
+==============
+
+NAME
+----
+::
+
+     P_Z_AUTOSHIELD				"z_autoshield"
+
+DEFINIERT IN
+------------
+::
+
+     /p/zauberer/wiznpc.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mit dieser Property  kann man einen automatischen 
+     Schutzzauber in Zauberer-NPCs einstellen, dessen 
+     Vorhandensein dann in jeder Kampfrunde ueberprueft
+     wird, z.B. "schutz","schutzhuelle","zauberschild".
+
+BEMERKUNGEN
+-----------
+::
+
+     "zauberschild" ist ein Magisterspruch und kann nur in 
+     bestimmten Zeitabstaenden benutzt werden. Wer also als
+     Autoshield nur Zauberschild benutzt, blockiert damit
+     alle anderen Spells, solange der Magisterspruch nicht
+     gesprochen werden kann.
+     Abhilfe: _query_next_master_spell_time()  return 0; }
+
+SIEHE AUCH
+----------
+::
+
+     /p/zauberer/text/wiznpc.doku
+
+21.Okt 2006 Chagall
+
diff --git a/doc/sphinx/props/gildenprops/P_Z_INFO.rst b/doc/sphinx/props/gildenprops/P_Z_INFO.rst
new file mode 100644
index 0000000..6d9cbeb
--- /dev/null
+++ b/doc/sphinx/props/gildenprops/P_Z_INFO.rst
@@ -0,0 +1,73 @@
+P_Z_INFO
+========
+
+NAME
+----
+::
+
+     P_Z_INFO						"z_info"
+
+DEFINIERT IN
+------------
+::
+
+     /p/zauberer/wiznpc.h
+
+BESCHREIBUNG
+------------
+::
+
+     Diese Property muss gesetzt werden, wenn man den
+     Zauberergilden-Standard-NPC nutzt. Sie setzt die
+     Grundeinstellungen des NPCs und generiert das 
+     Newskills-Mapping. 
+
+     Die Property ist wie folgt aufgebaut:
+
+     * MIN (minimale Skillability im Bereich von 0 - 10000)
+     * MAX (maximale Skillability im Bereich von 0 - 10000)
+     * LEV (Gildenlevel)
+     * ZWEIG (Gildenzweig)
+
+BEMERKUNGEN
+-----------
+::
+
+     Fuer die Argumente LEV und ZWEIG stehen folgende Auswahl-
+     moeglichkeiten zur Verfuegung.
+
+     LEV:
+
+        Z_ANFAENGER	0
+	Z_LEHRLING	1
+	Z_MEISTER	2
+	Z_ERZMEISTER	3
+
+     ZWEIG:
+
+        ZZW_ANGRIFF		  1
+	ZZW_ABWEHR		  2
+	ZZW_ILLUSION		  4
+	ZZW_BEHERRSCHUNG	  8
+	ZZW_HELLSICHT		 16
+	ZZW_VERWANDLUNG		 32
+	ZZW_SCHWARZ		 64	INAKTIV
+	ZZW_WEISS		128
+	ZZW_ALLE		511
+
+BEISPIEL
+--------
+::
+
+     SetProp(P_Z_INFO, ({9000, 9500, Z_ERZMEISTER, ZZW_ANGRIFF|ZZW_ABWEHR}));
+     erzeugt einen Erzmagister-PC, der alle Lehrlings- sowie die Magister und
+     Erzmagister-Sprueche Angriff und Abwehr mit 90-95% beherrscht.
+
+SIEHE AUCH
+----------
+::
+
+     /p/zauberer/text/wiznpc.doku
+
+21.Okt 2006 Chagall
+
diff --git a/doc/sphinx/props/gildenprops/P_Z_NO_MATERIAL.rst b/doc/sphinx/props/gildenprops/P_Z_NO_MATERIAL.rst
new file mode 100644
index 0000000..b01c43c
--- /dev/null
+++ b/doc/sphinx/props/gildenprops/P_Z_NO_MATERIAL.rst
@@ -0,0 +1,34 @@
+P_Z_NO_MATERIAL
+===============
+
+NAME
+----
+::
+
+     P_Z_NO_MATERIAL                     "npc_braucht_keine_kmp"
+
+DEFINIERT IN
+------------
+::
+
+     /p/zauberer/zauberer.h
+
+BESCHREIBUNG
+------------
+::
+
+     Setzt man diese Property in einem NPC, so benoetigt er fuer die
+     Sprueche der Zauberergilde keine Komponenten.
+
+BEMERKUNGEN
+-----------
+::
+
+     NIEMALS diese Property einfach so in einem Spieler setzen.
+
+SIEHE AUCH
+----------
+::
+
+21.Okt 2006 Chagall
+
diff --git a/doc/sphinx/props/gildenprops/P_Z_NO_NOCONN.rst b/doc/sphinx/props/gildenprops/P_Z_NO_NOCONN.rst
new file mode 100644
index 0000000..32b38a0
--- /dev/null
+++ b/doc/sphinx/props/gildenprops/P_Z_NO_NOCONN.rst
@@ -0,0 +1,42 @@
+P_Z_NO_NOCONN
+=============
+
+P_Z_NO_NOCON
+------------
+::
+
+NAME
+----
+::
+
+     P_Z_NO_NOCON					"no_nocon"
+
+DEFINIERT IN
+------------
+::
+
+     /p/zauberer/wiznpc.h
+
+BESCHREIBUNG
+------------
+::
+
+     Der Standardzauberergildennpc setzt SI_NO_CONSEQUENCES, damit
+     die Gildenpcs nicht den negativen Auswirkungen beim Misslingen
+     der Sprueche geschuetzt sind. Setzt man diese Property vor
+     P_Z_INFO auf 0, wird das Flag nicht gesetzt.
+
+BEMERKUNGEN
+-----------
+::
+
+     Muss vor P_Z_INFO gesetzt werden, damit es wirksam ist.
+
+SIEHE AUCH
+----------
+::
+
+     /p/zauberer/text/wiznpc.doku, P_Z_INFO
+
+21.Okt 2006 Chagall
+
diff --git a/doc/sphinx/props/gildenprops/P_Z_NO_SPELL_SUPPORT.rst b/doc/sphinx/props/gildenprops/P_Z_NO_SPELL_SUPPORT.rst
new file mode 100644
index 0000000..da7a05a
--- /dev/null
+++ b/doc/sphinx/props/gildenprops/P_Z_NO_SPELL_SUPPORT.rst
@@ -0,0 +1,41 @@
+P_Z_NO_SPELL_SUPPORT
+====================
+
+NAME
+----
+::
+
+     P_Z_NO_SPELL_SUPPORT	"zauberer_ruestung_unterstuetzt_noch_nicht"
+
+DEFINIERT IN
+------------
+::
+
+     /p/zauberer/zauberer.h
+
+BESCHREIBUNG
+------------
+::
+
+     Normalerweise unterstuetzt eine Ruestung den Zauberer, sobald sie im
+     entsprechenden Ruestungsmaster eingetragen ist. Moechte man allerdings
+     die Unterstuetzung an bestimmte Bedingungen knuepfen, z.B. das loesen
+     einer Miniquest, so kann man diese Property auf 1 setzen. Die Ruestung
+     unterstuetzt dann nicht. Um die Unterstuetzung wieder zu aktivieren,
+     setzt man die Property wieder auf 0.
+
+BEMERKUNGEN
+-----------
+::
+
+     NIEMALS diese Property einfach so in fremden Zaubererruestungen 
+     setzen. Sollte der Gildenmagier erfahren, dass z.B. ein NPC
+     einfach so die Unterstuetzung der Ruestungen ausschaltet, wird
+     diese Property wieder deaktiviert.
+
+SIEHE AUCH
+----------
+::
+
+21.Okt 2006 Chagall
+
diff --git a/doc/sphinx/props/gildenprops/kaempferboni.rst b/doc/sphinx/props/gildenprops/kaempferboni.rst
new file mode 100644
index 0000000..6d61f83
--- /dev/null
+++ b/doc/sphinx/props/gildenprops/kaempferboni.rst
@@ -0,0 +1,271 @@
+kaempferboni
+============
+
+Kaempferboni und deren Implementation
+
+-------------------------------------
+
+Bei den Kaempfern gibt es einige Properties, die, in Waffen oder Ruestungen
+gesetzt, der Kampfverlauf eines Spielers erheblich beeinflussen koennen.
+
+Zu beachten ist, dass die Abnahme von Waffen oder Ruestungen mit Kaempferboni
+allein der Balance obliegt. Der Gildenmagier der Kaempfer steht aber gerne
+mit Rat und Tat zur Seite.
+
+
+Abschnitt A
+
+
+In Waffen koennen nachfolgende, in /p/kaempfer/kaempfer.h definierten,
+Properties gesetzt werden. Die meisten davon fungieren als 'Boni' und werden
+dem Spieler auch mittels 'schaetz <waffe>' angezeigt
+
+
+1 Waffenschlagbonus - K_BRAWLING_WC (INT) - "k_brawling_wc"
+
+  Wenn die Waffe eine zusaetzlich gefaehrliche Stelle besitzt - z.B. einen
+  harten Dorn am Stielende, eine Spitze am Ruecken einer Axtklinge, Zacken
+  am Dolchgriff - kann man der Waffe einen Waffenschlagbonus geben.
+  Dies bedeutet, dass der Waffenschlag um ein paar Prozente verstaerkt wird,
+  da der Spieler natuerlich versucht, immer genau mit diesem 'feature'
+  den Waffenschlag auszufuehren (der Waffenschlag ist kurz gesagt ein
+  unerwarteter Schlag, der nicht mit dem 'normalen' Waffenende ausgefuehrt
+  wird, der Gegner wird dadurch ueberrascht -> mehr Schaden).
+  Da solch ein 'feature' doch recht auffaellig ist, sollte es in der
+  Langbeschreibung der Waffe auf jeden Fall erwaehnt werden.
+
+  Interessant zu wissen waere noch, dass Zweihandwaffen einen generellen
+  zusaetzlichen Bonus auf den Waffenschlag bekommen und dass es eine
+  Abstufung gibt, nach der die Waffengattungen die Hoehe des Basiswertes
+  gesetzt bekommen, wobei Speere den hoechsten und Messer den niedrigsten
+  besitzen
+
+  Speere - Kampfstaebe - Aexte - Keulen - Schwerter - Messer
+
+  Der max. Bonus fuer diese Property betraegt 30, wobei 1-10 -> geringer
+  Bonus, 11-20 -> guter Bonus, 21-30 -> sehr guter Bonus.
+
+  Bitte beachten ein Zweihand-Speer mit max. P_WC und max. K_BRAWLING_WC
+  haut entsprechend gut rein und sollte nur schwer zu ergattern sein, bzw.
+  noch andere Auflagen haben (ggf. unique, personalisiert, etc.)
+
+
+2 Waffenschlagschaden - K_BRAWLING_DT (STRING) - "k_brawling_dt"
+
+  Wenn die Waffe, mit der der Kaempfer einen Waffenschlag ausfuehrt, ein
+  'feature' hat, mit dem er diesen Schlag ausfuehrt, kann dieses 'feature'
+  einen anderen Waffenschlagschaden besitzen. Z.B. kann ein Schwert, welches
+  normalerweise DT_SLASH macht, besonders lange und spitze Parierstangen
+  besitzen, die vielleicht auch noch vergiftet sind. Dann kann der Magier
+  ({DT_PIERCE,DT_POISON}) setzen, so dass beim Waffenschlag immer ein
+  Mischschaden aus Stiche und Gift erfolgt.
+
+
+3 Waffenschlagsmeldung - K_BRAWLING_MSG (STRING/STRING*) - k_brawling_msg"
+
+  In diese Property kann man hineinschreiben, mit welchem Teil der Waffe
+  der Waffenschlag ausgefuehrt wird. Angenommen, es bietet sich an, mit
+  einer Waffe stets den Waffenschlag mit einem grossen Knauf am Griff
+  auszufuehren, wird schlicht und einfach "mit einem grossen Knauf am
+  Griff der Schlachtaxt" in die Property gesetzt.
+  Sollte sich bei der Programmierung ergeben, dass es sich anbietet, der
+  Waffe mehr als nur eine guenstige Stelle anzudichten mit der man den
+  Waffenschlag ausfuehren kann, so setzt man ein Array, z.B. ({"mit einem
+  grossen Knauf am Griff der Schlachtaxt","mit der breiten Seite der "
+  "Schlachtaxtklinge"}). Insgesamt ist darauf zu achten, dass die Meldungen
+  'vollstandig' sind. Das Array kann beliebige Groesse annehmen, es wird
+  dann zufaellig eine Meldung beim Schlag ausgesucht.
+
+  Es empfiehlt sich, jede Waffe mit dieser Property zu schmuecken, die
+  K_BRAWLING_WC gesetzt haben, da die Waffenschlagmeldungen damit im Kampf
+  'individualisiert' werden. In der Praxis wird es jedoch daran scheitern,
+  dass es viel zu viele alte Waffen gibt, die keiner mehr anfassen moechte.
+  Daher wird auf Standardmeldungen zurueckgegriffen, sollte diese Property
+  nicht gesetzt sein.
+
+
+4 Waffenbruchbonus - K_WEAPON_SHATTER (INT) - "k_weapon_shatter"
+
+  Waffen, die besonders fuer den Waffenbruch konstruiert wurden, koennen
+  einen Bonus einbringen, der in dieser Property angegeben wird. Natuerlich
+  eignen sich die verschiedenen Waffentypen wieder unterschiedlich gut fuer
+  einen Waffenbruch Keulen (meist aufgrund ihres Gewichts) am besten, Messer
+  am schlechtesten, alle anderen dazwischen (Axt - Schwert - Stab - Speer).
+  Dabei kriegen alle Waffen, die u.a. Schlagschaden verursachen, nochmal
+  einen kleinen Bonus obendrauf.
+
+  Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 -> geringer
+  Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus.
+
+  Bei gut gelungenem Waffenbruch wird die Waffe des Gegners beschaedigt, wenn
+  die Technik sehr gut gelingt, kann es auch sein, dass dem Gegner die Waffe
+  aus der Hand geschlagen wird (der Spieler kann sie allerdings nicht
+  aufheben und der NPC zueckt sie nach ein paar Kampfrunden wieder).
+
+
+5 Bonus fuer Finte/Waffentrick - K_DISTRACTING_WEAPON (INT) -
+  "k_distracting_weapon"
+
+  Waffen, die fuer den Gegner aufgrund ihrer Bauweise besonders irritierend
+  sein koennen, koennen einen Bonus fuer Finte und Waffentrick haben. Dabei
+  wird der Gegner bei einer Finte bzw. einem Waffentrick NOCH mehr verwirrt,
+  als er es ohnehin schon nur durch die angewandte Technik wird.
+  Ein gutes Beispiel hierfuer ist z.B. der Kriegshamster ein Hamster, der
+  auf einem Holzstab aufgespiesst ist, sollte fuer den Gegner schon SEHR
+  irritierend sein ;).
+  Die Waffengattung hat nur wenig Einfluss auf Finte/Waffentrick.
+
+  Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 -> geringer
+  Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus.
+
+
+6 Todesstossbonus - K_CRITICAL_HIT (INT) - "k_critical_hit"
+
+  Man stelle sich eine Waffe mit besonders spitzer, langer Klinge vor oder
+  eine magische Waffe, die dem geschwaechten Gegner die Seele entreisst.
+  Diese Eigenschaften verleihen dem Spieler beim Todesstoss einen
+  entsprechenden Bonus von bis zu 100%.
+
+  Es ist moeglich, dass ein und dasselbe 'feature' sowohl dem Waffenschlag
+  als auch dem Todesstoss den Bonus stellt, z.B. zwei Hiebklingen auf dem
+  Klingenruecken einer grossen Axt. Auch dies sollte man deutlich aus der
+  Langbeschreibung herauslesen koennen.
+
+  Der max. Bonus fuer diese Property betraegt 100, wobei 100 eine Verdopplung
+  der P_WC beim Todesstoss bedeutet!
+  Ansonsten bedeutet 1-20 -> geringer Bonus, 21-60 -> guter Bonus,
+  61-100 -> sehr guter Bonus.
+
+
+7 Waffenwurfbonus - K_THROWING_WEAPON (INT) - "k_throwing_weapon"
+
+  Wenn eine Waffe besonders gut zum Werfen geeignet ist, z.B. ein Wurfdolch,
+  dann kann diese Property gesetzt werden. Natuerlich ist der Grundwert wieder
+  von der Waffengattung abhaengig. Es gilt, dass man Messer und Speere
+  grundsaetzlich am besten werfen - und dabei gut Schaden machen - kann, am
+  schlechtesten schneiden Keulen und Kampfstaebe ab.
+
+  Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 -> geringer
+  Bonus, 21-40 -> guter Bonus, 31-50 -> sehr guter Bonus.
+
+  Zu beachten ist hierbei, dass ein sehr hoher Bonus nur bei Waffen mit etwas
+  geringerer P_WC vergeben werden sollte. Ein reines Wurfmesser ist nunmal im
+  normalen Kampf nicht die gefaehrlichste aller Waffen (speziell
+  ausbalanciert, keinen richtigen Griff, etc.).
+  Natuerlich kann es einen Wurfspeer mit max. P_WC und sehr hohem
+  Waffenwurfbonus geben, allerdings mit den ueblich hohen Restriktionen.
+
+
+8 KO-Schlag-Bonus - K_KO (INT) - "k_ko"
+
+  Waffen, die besonders fuer einen KO-Schlag geeignet sind, koennen einen
+  Bonus mit dieser Property bekommen. Eine entsprechende Waffe koennte z.B.
+  ein lederumwickelter Pruegel sein, denn man will den Gegner ja nur KO
+  schlagen und nicht gleich toeten.
+
+  Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 -> geringer
+  Bonus, 21-30 -> guter Bonus, 31-50 -> sehr guter Bonus.
+
+
+9 Kein Waffenschaerfen - K_NO_HONING (INT) - "k_no_honing"
+
+  Wenn eine Waffe aus irgendeinem Grund nicht geschaerft werden kann oder
+  darf, muss man diese Property auf 1 setzen.
+  Eine Erklaerung dafuer sollte in der P_LONG bzw. P_INFO erfolgen.
+
+
+Abschnitt B
+
+
+Die beiden Properties, P_EFFECTIVE_AC und P_EFFECTIVE_WC, welche in
+<combat.h> definiert sind, sind eigentlich nur dazu da, um Ruestungen und
+Waffen, die eine DefendFunc() bzw. HitFunc() besitzen, korrekt vom Spieler
+einschaetzen lassen zu koennnen.
+
+Das Kaempferspellbook verwendet diese Properties darueberhinaus wie folgt
+
+
+1 Schutzboni in Waffen - P_EFFECTIVE_AC (INT) - "effective_ac"
+
+  Ist diese Property in einer Waffe gesetzt, geht das Kaempferspellbook
+  davon aus, dass diese Waffe mehr oder weniger die Faehigkeit besitzt,
+  auch wie eine Ruestung schuetzen zu koennen. Da man eine Waffe aber nicht
+  anziehen, sondern nur vor sich hertragen kann, kann auch der max.
+  Ruestungsschutz einer Waffe nur gleich dem max. Ruestungsschutz eines
+  Schildes entsprechen.
+  Eine gesetzte P_EFFECTIVE_AC in einer Waffe wird dem Spieler als mehr
+  oder weniger gute 'Paradewaffe' im 'schaetz' angezeigt und geht sowohl bei
+  der Waffenparade als auch beim Block als Bonus mit ein.
+
+  Z.B. koennte ein leichtes Schwert, was aufgrund seiner Bauweise mehr fuer
+  den defensiven Kampf ausgelegt ist (extralange Parierstangen, verstaerkter
+  Handschutz im Griffbereich, ...) wie ein maessiges Schild wirken. Die
+  Vorteile liegen auf der Hand der Spieler bekommt verstaerkten Schutz,
+  kann aber weiterhin eine Zweihandwaffe fuehren.
+
+  Der max. Bonus fuer diese Property betraegt 40, wobei 1-20 -> geringer
+  Bonus, 21-30 -> guter Bonus, 31-40 -> sehr guter Bonus.
+
+  Zu beachten ist hier, dass sehr gute Parierwaffen mit P_EFFECTIVE_AC > 30
+  moeglichst deutlich unter der max. WC liegen sollten.
+
+  Anmerkungen
+  Eine gesetzte P_EFFECTIVE_AC in einem Schild kann den Bonus fuer die
+  Schildparade nach oben oder unten beeinflussen. Moechte man ein Schild
+  herstellen, welches speziell bei der Schildparade der Kaempfer besser
+  als 'normal' schuetzt, sollte man hier einen Wert eintragen, der deutlich
+  groesser als die P_AC des Schildes ist.
+
+  Eine gesetzte P_EFFECTIVE_AC in einer anderen Ruestung hat nur den Nutzen,
+  auf deren erhoehten (und nicht sofort sichtbaren) Verteidigungswert
+  hinzuweisen, der durch eine DefendFunc() realisiert wird.
+
+
+2 Angriffsboni in Ruestungen - P_EFFECTIVE_WC (INT) - "effective_wc"
+
+  Fuer die Kaempfer koennen folgende Ruestungstypen modifiziert werden
+  AT_TROUSERS (Hosen), AT_HELMET (Kopfbedeckung), AT_BOOT (Fusskleidung),
+  AT_ARMOUR (Koerperruestung), AT_SHIELD (Schilde).
+  Ist in einer dieser Typen P_EFFECTIVE_WC gesetzt, so macht diese Ruestung
+  bei einem Angriff mit einer Spezialattacke (Kniestoss, Kopfstoss, Fusstritt,
+  Ellbogenschlag und Schildstoss) entsprechend mehr bzw. weniger Schaden als
+  ohne diese Property. Eine entsprechende Begruendung fuer eine Verstaerkung
+  oder Schwaechung sollte auch hier fuer den Spieler offensichtlich sein
+  (Dornen am Schild, verstaerkter Kniebereich, Zacken am Helm, etc.).
+
+  Wenn man der Ruestung einen Bonus geben moechte, muss man darauf achten,
+  dass P_EFFECTIVE_WC hoeher ist als die P_AC der Ruestung! Sollte
+  P_EFFECTIVE_WC niedriger als P_AC sein, wird dennoch P_EFFECTIVE_WC als
+  Angriffswert genommen. Dies stellt natuerlich eine Schwaechung der
+  Spezialattacke dar. Moeglicherweise ist aber genau das gewollt, wenn eine
+  Ruestung, die sehr gut schuetzt, nur geringen Kaempferbonus aufweisen soll.
+
+  Beispiel ein Schild aus Hartgummi kann recht gut Schlaege aller Art
+  abfangen (-> P_AC 35). Will der Kaempfer jedoch einen Schildstoss damit
+  machen, fehlt ihm aufgrund der Beschaffenheit die Wucht, eher daempft es
+  den Schildstoss noch ein wenig (-> P_EFFECTIVE_WC 25).
+
+  Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der jeweils
+  doppelte maximale P_AC-Wert (s. 'man ruestungen').
+
+  Die Angabe eines Schadenstyps (P_DAM_TYPE) in einer Ruestung kann dann
+  sinnvoll sein, wenn bei der Spezialattacke ein spezieller Schaden gemacht
+  werden soll. Beispielsweise sollten Flammenstiefel logischerweise DT_FIRE
+  und DT_BLUDGEON oder DT_PIERCE bei einem Kampftritt verursachen. Es MUSS
+  (logischerweise) mindestens ein physikalischer Schadenstyp enthalten sein.
+  Wird kein Schadenstyp angegeben, wird auf Standardtypen zurueckgegriffen.
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+::
+
+SIEHE AUCH
+----------
+::
+
+     Waffen:     P_WC, P_TOTAL_WC, P_EFFECTIVE_WC, HitFunc()
+     Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc()
+     Files:      /std/weapon.c, /std/weapon/combat.c
+     Balance:    waffen, ruestungen, properties
+
+
+26.10.2012, Gabylon
+
diff --git a/doc/sphinx/props/obsolete/P_BALANCED_WEAPON.rst b/doc/sphinx/props/obsolete/P_BALANCED_WEAPON.rst
new file mode 100644
index 0000000..f982030
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_BALANCED_WEAPON.rst
@@ -0,0 +1,58 @@
+P_BALANCED_WEAPON
+=================
+
+********************* UNGENUTZTE PROPERTY *****************************
+* Diese Property wird von der Mudlib NICHT ausgewertet und kann       *
+* als veraltet gelten.                                                *
+* Momentan ist auch keine Gilde bekannt, die mehr macht, als sie      *
+* auszugeben.                                                         *
+***********************************************************************
+
+NAME
+----
+::
+
+        P_BALANCED_WEAPON  "balanced_weapon"
+
+DEFINIERT IN
+------------
+::
+
+        /sys/weapon.h
+
+BESCHREIBUNG
+------------
+::
+
+        Die Property gibt an, ob eine Waffe ausbalanciert ist oder nicht.
+        Die beiden moeglichen Werte sind logischerweise:
+
+                WP_BALANCED       balanciert
+                WP_UNBALANCED     unbalanciert
+
+        Die WP_* sind ebenfalls in <weapon.h> definiert.
+
+BEISPIELE
+---------
+::
+
+        a) Eine ausbalancierte Waffe ist z.B. ein Kampfstab.
+
+            SetProp(P_BALANCED_WEAPON,WP_BALANCED);
+
+        b) Eine nicht ausbalancierte Waffe ist z.B. eine Keule.
+
+            SetProp(P_BALANCED_WEAPON,WP_UNBALANCED);
+
+SIEHE AUCH
+----------
+::
+
+        P_TECHNIQUE, /std/weapon/combat.c
+
+LETZTE AeNDERUNG
+----------------
+::
+
+15.02.2009, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_DEFAULT_INFO.rst b/doc/sphinx/props/obsolete/P_DEFAULT_INFO.rst
new file mode 100644
index 0000000..4b553c9
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_DEFAULT_INFO.rst
@@ -0,0 +1,50 @@
+P_DEFAULT_INFO
+==============
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
+***********************************************************************
+
+NAME
+----
+::
+
+    P_DEFAULT_INFO                "default_info"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Default-Antwort eines Npc, wenn er auf das Schluesselwort durch den
+    Spieler kein AddInfo parat hat.
+
+BEMERKUNG
+---------
+::
+
+    Diese Property sollte nicht mehr benutzt werden. Stattdessen bitte
+    AddInfo(DEFAULT_INFO,...) verwenden.
+    Dem in dieser Prop angegeben String wird immer der Name des Npc
+    vorausgestellt. Will man dies verhindern, muss man sie ueberschreiben.
+
+BEISPIEL
+--------
+::
+
+    SetProp(P_DEFAULT_INFO,"bohrt gelangweilt in der Nase.\n");
+
+SIEHE AUCH
+----------
+::
+
+    AddInfo
+
+
+17.08.2010, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_EXTRA_LOOK.rst b/doc/sphinx/props/obsolete/P_EXTRA_LOOK.rst
new file mode 100644
index 0000000..4a649a0
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_EXTRA_LOOK.rst
@@ -0,0 +1,57 @@
+P_EXTRA_LOOK
+============
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet. Bitte benutzt sie NICHT mehr, sondern  *
+* stattdessden AddExtraLook().                                        *
+***********************************************************************
+
+NAME
+----
+::
+
+	P_EXTRA_LOOK			"extralook"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/living/description.h
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property enthaelt einen String. Sie wird entweder in Lebewesen
+	direkt oder in Objekten gesetzt wird, die im Besitz von Lebewesen
+	sein koennen.
+	Diese Strings erscheinen dann zusaetzlich in der Langbeschreibung
+	des Lebewesens bzw. des Besitzers (wenn das Objekt sich direkt im
+	 Lebewesen befindet, jedoch nicht in einem Behaelter im Lebewesen).
+	Fuer den Zeilenumbruch muss man selbst sorgen.
+
+BEISPIEL
+--------
+::
+
+	Ein Spieler hat eine Pfeife im Mund. In dieser Pfeife setzt man z.B.
+	in der Funktion zum Pfeife Rauchen folgendes:
+	  SetProp(P_EXTRA_LOOK,break_string(
+	 this_player()->Name(WER)+" ist ganz umnebelt.",78);
+
+BEMERKUNG
+---------
+::
+
+  BITTE NICHT MEHR BENUTZEN!
+
+SIEHE AUCH
+----------
+::
+
+	long(), /std/living/description.c, /std/player/base.c
+  AddExtraLook(), RemoveExtraLook()
+
+
+13.05.2007, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_LAST_KILLER.rst b/doc/sphinx/props/obsolete/P_LAST_KILLER.rst
new file mode 100644
index 0000000..1485e96
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_LAST_KILLER.rst
@@ -0,0 +1,36 @@
+P_LAST_KILLER
+=============
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet und wird bald aus der Mudlib entfernt.  *
+***********************************************************************
+
+NAME
+----
+::
+
+    P_LAST_KILLER                 "last_killer"                 
+
+DEFINIERT IN
+------------
+::
+
+    /sys/player.h
+
+BESCHREIBUNG
+------------
+::
+
+     Letzter Moerdes des Wesens.
+     Diese Property wurde nur in Spielern gesetzt und auch dann nicht immer.
+     Bitte stattdessen P_KILLER abfragen, welche in NPC und Spielern gesetzt
+     wird.
+
+SIEHE AUCH
+----------
+::
+
+    P_KILLER, die()
+
+05.09.2008, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_LAST_PEACE_TIME.rst b/doc/sphinx/props/obsolete/P_LAST_PEACE_TIME.rst
new file mode 100644
index 0000000..06195f4
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_LAST_PEACE_TIME.rst
@@ -0,0 +1,42 @@
+P_LAST_PEACE_TIME
+=================
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet und wird bald aus der Mudlib entfernt.  *
+***********************************************************************
+
+PROPERTY
+--------
+::
+
+	P_LAST_PEACE_TIME	"last_peace_time"
+
+DEFINIERT IN
+------------
+::
+
+	/std/living/combat.c
+
+BESCHREIBUNG
+------------
+::
+
+	Diese Property gibt an, wann zuletzt versucht wurde, einen NPC zu
+	befrieden. Bitte nach Moeglichkeit nur lesend verwenden. Des weiteren
+	wird sie nur im ueblichen Verhalten von QueryPacify gesetzt, und nur
+	dann, wenn P_ACCEPT_PEACE nicht gesetzt ist.
+
+SIEHE AUCH
+----------
+::
+
+	QueryPacify, P_ACCEPT_PEACE
+
+LETZTE AENDERUNG
+----------------
+::
+
+	2004-03-17, 14:30 von Humni
+
+	
+
diff --git a/doc/sphinx/props/obsolete/P_LOG_FILE.rst b/doc/sphinx/props/obsolete/P_LOG_FILE.rst
new file mode 100644
index 0000000..34cf3d7
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_LOG_FILE.rst
@@ -0,0 +1,68 @@
+P_LOG_FILE
+==========
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property wird nicht mehr ausgewertet.                         *
+***********************************************************************
+
+NAME
+----
+::
+
+    P_LOG_FILE                   "log_file"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/thing/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Enthaelt einen String auf einen Filenamen. 
+
+    Werden zu dem Objekt (Raum, Monster, ...) Fehlermeldungen abgesetzt, 
+    werden diese in das angegebene File umgeleitet. Die Eintragung in
+    die per Default fuer Fehlermeldungen vorgesehenen Dateien erfolgt
+    nicht.
+
+BEMERKUNGEN
+-----------
+::
+
+    P_LOG_FILE wird ausgewertet wie log_file().
+
+    Das heisst, es wird AUF JEDEN FALL nach /log geschrieben!
+
+    Direkt in /log kann NICHT geschrieben werden, es muss also ein 
+    Unterverzeichnis mit Eurem Magiernamen vorhanden sein.
+
+BEISPIELE
+---------
+::
+
+    SetProp(P_LOG_FILE,"tilly_log");          // FALSCH, es wuerde versucht, 
+                                                 das File /log/tilly_log 
+                                                 anzulegen
+    SetProp(P_LOG_FILE,"/log/tilly_log");     // FALSCH, es wuerde versucht, 
+                                                 das File /log/log/tilly_log
+                                                 anzulegen
+    SetProp(P_LOG_FILE,"/d/ebene/tilly_log"); // FALSCH, s.o.
+
+    SetProp(P_LOG_FILE,"tilly/tilly_log");    // RICHTIG!
+
+    Im letzten Beispiel werden alle Eintraege in das File tilly_log ge-
+    schrieben, das sich im Verzeichnis /log/tilly/ befindet.
+
+    Das Unterverzeichnis /tilly in /log muss zuvor angelegt werden.
+
+SIEHE AUCH
+----------
+::
+
+    P_LOG_INFO, write_file(), log_file(),
+
+Letzte Aenderung: 13.09.04 Tilly@MorgenGrauen
+
diff --git a/doc/sphinx/props/obsolete/P_NEXT_SPELL_TIME.rst b/doc/sphinx/props/obsolete/P_NEXT_SPELL_TIME.rst
new file mode 100644
index 0000000..d61643f
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_NEXT_SPELL_TIME.rst
@@ -0,0 +1,48 @@
+P_NEXT_SPELL_TIME
+=================
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
+***********************************************************************
+
+NAME
+----
+::
+
+    P_NEXT_SPELL_TIME             "next_spell"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+    Wann kann das naechste Mal gezaubert werden?
+    Dies ist eine globale Spruchermuedung/-Sperre.
+    Flexiblere Sperren koennen mittels SetSpellFatigue/CheckSpellFatigue()
+    verwaltet werden.
+
+    Diese Property ist keine echte Property, sondern liefert nur das
+    Ergebnis von von CheckSpellFatigue() zurueck bzw. ruft beim Setzen
+    SetSpellFatigue(<spruchsperre>, 0) auf.
+    Diese Prop sollte _nicht_ mittels Query- oder Setmethoden manupuliert
+    werden, da sonst Inkonsistenzen zum Ergebnis von CheckSpellFatigue()
+    auftreten.
+
+SIEHE AUCH
+----------
+::
+
+    SetSpellFatigue(L), CheckSpellFatigue(L)
+    spruchermuedung
+
+ZULETZT GEAeNDERT
+-----------------
+::
+
+14.03.2010, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_READ_MSG.rst b/doc/sphinx/props/obsolete/P_READ_MSG.rst
new file mode 100644
index 0000000..c1fcfca
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_READ_MSG.rst
@@ -0,0 +1,57 @@
+P_READ_MSG
+==========
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
+***********************************************************************
+
+NAME
+----
+::
+
+    P_READ_MSG                "read_msg"                
+
+DEFINIERT IN
+------------
+::
+
+    /sys/properties.h
+
+BESCHREIBUNG
+------------
+::
+
+    Diese Property ist veraltet. Ihre Funktion wird von
+    AddReadDetail(SENSE_DEFAULT, ...) uebernommen.
+
+    
+
+    Hier koennen Informationen gespeichert werden, die beim Lesen
+    des Objektes ausgegeben werden.
+
+     
+
+    Fuer das Identifizieren des zu lesenden Objektes wird der gleiche
+    Mechanismus benutzt wie fuer lesbare und andere Details.
+
+    Die Benutzung von process_string() ist in dieser Prop nicht mehr erlaubt.
+
+BEISPIEL
+--------
+::
+
+    AddId(({"rolle", "schriftrolle"}));
+    SetProp(P_READ_MSG,
+       "Du oeffnest die Rolle und liest: LOREM IPSUM ...\n");
+
+     
+
+SIEHE AUCH
+----------
+::
+
+    Details:   AddReadDetail(), RemoveReadDetail(), P_READ_DETAILS
+    Sonstiges: break_string()
+
+09.12.2012, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_TECHNIQUE.rst b/doc/sphinx/props/obsolete/P_TECHNIQUE.rst
new file mode 100644
index 0000000..ec42c36
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_TECHNIQUE.rst
@@ -0,0 +1,69 @@
+P_TECHNIQUE
+===========
+
+********************* UNGENUTZTE PROPERTY *****************************
+* Diese Property wird von der Mudlib NICHT ausgewertet und kann       *
+* als veraltet gelten.                                                *
+* Momentan ist auch keine Gilde bekannt, die mehr macht, als sie      *
+* auszugeben.                                                         *
+***********************************************************************
+
+NAME
+----
+::
+
+	P_TECHNIQUE				"technique"
+
+DEFINIERT IN
+------------
+::
+
+	/sys/weapon.h
+
+BESCHREIBUNG
+------------
+::
+
+        Die Technik(en), mit denen eine Waffe im Kampf eingesetzt werden
+        kann. Folgende Techniken stehen zur Verfuegung:
+
+                TQ_STROKE       Streichtechnik
+                TQ_THRASH       Schlagtechnik
+                TQ_THRUST       Stosstechnik
+                TQ_WHIP         Peitschtechnik
+
+        Die Techniken sind ebenfalls in <weapon.h> definiert und auf der
+        man-page 'techniken' naeher erlaeutert.
+
+BEMERKUNGEN
+-----------
+::
+
+        Man kann einer Waffe eine oder mehrere Techniken zuweisen.
+
+BEISPIELE
+---------
+::
+
+        a) Eine Waffe, die nur mit einer Peitschtechnik eingesetzt wird,
+           also typischerweise eine Peitsche, aber auch ein Morgenstern:
+
+            SetProp(P_TECHNIQUE,TQ_WHIP);
+
+        b) Eine Waffe, die sowohl mit der Schlag- als auch der Stosstechnik
+           eingesetzt wird, also z.B. eine Hellebarde:
+
+            SetProp(P_TECHNIQUE,({TQ_THRASH,TQ_THRUST}));
+
+SIEHE AUCH
+----------
+::
+
+        techniken, P_BALANCED_WEAPON, /std/weapon/combat.c
+
+LETZTE AeNDERUNG
+----------------
+::
+
+15.02.2009, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_TMP_ATTACK_HOOK.rst b/doc/sphinx/props/obsolete/P_TMP_ATTACK_HOOK.rst
new file mode 100644
index 0000000..4b57f96
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_TMP_ATTACK_HOOK.rst
@@ -0,0 +1,95 @@
+P_TMP_ATTACK_HOOK
+=================
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
+***********************************************************************
+P_TMP_ATTACK_HOOK
+
+NAME
+----
+::
+
+    P_TMP_ATTACK_HOOK             "attack_hook"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mittels dieser Property koennen die Attacken eines Livings ggf.
+     abgebrochen werden noch bevor Waffen oder Skills zum ausgewertet
+     wurden.
+
+     Es wird an dem Living die Property als mindestens 3-elementiges Array:
+     ({zeitpunkt, objekt, methode, ...})
+     gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
+     Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+
+     Der Methode wird als Parameter der Gegner uebergeben.
+
+     Gibt die Methode 0 als Rueckgabewert zurueck, wird die Attacke sofort
+     kommentarlos abgebrochen.
+
+BEMERKUNGEN
+-----------
+::
+
+     - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+     - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+       Property auf 0 gesetzt
+     - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+       pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+       im Code anderer und ist andererseits unfair gegenueber ihnen
+
+BEISPIELE
+---------
+::
+
+     *** der Spieler erhaelt eine Verwundung, die ihn manchmal behindert ***
+     if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_HOOK)) ||
+        sizeof(tmp)<3 || tmp[0]<=time()) {
+       TP->SetProp(P_TMP_ATTACK_HOOK,
+		   ({time()+3600, this_object(), "test_hurt"}));
+     ...
+
+     // die entsprechende Methode, die bei jedem Angriff ueber Attack()
+     // gerufen wird ...
+     int test_hurt(object enemy) {
+
+       // mit 10% Chance generell und 20% Chance bei groesseren Gegnern
+       // bricht der Angriff ab ... previous_object() ist natuerlich
+       // der Angreifer
+       if(!random(10) ||
+          (enemy->QueryProp(P_SIZE)>previous_object()->QueryProp(P_SIZE) &&
+           !random(5)) {
+
+          tell_object(previous_object(),
+            "Deine Wunde schmerzt dich zu sehr um anzugreifen.\n");
+          tell_room(environment(previous_object()),
+            previous_object()->Name(WER,1)+" zuckt vor Schmerzen zusammen.\n",
+            ({previous_object()}));
+          return 0;
+       }
+
+       // ansonsten geht der Angriff weiter
+       return 1;
+     }
+
+SIEHE AUCH
+----------
+::
+
+     Angriff:	Attack(L)
+     Schutz:    Defend(L)
+     Verwandt:  InternalModifyAttack(L), P_TMP_ATTACK_MOD	
+     Hooks:	P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_DEFEND_HOOK
+     neue Hooks: std/hooks
+
+08.12.2008, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_TMP_ATTACK_MOD.rst b/doc/sphinx/props/obsolete/P_TMP_ATTACK_MOD.rst
new file mode 100644
index 0000000..8a1f138
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_TMP_ATTACK_MOD.rst
@@ -0,0 +1,134 @@
+P_TMP_ATTACK_MOD
+================
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
+***********************************************************************
+P_TMP_ATTACK_MOD
+
+NAME
+----
+::
+
+     P_TMP_ATTACK_MOD              "attack_mod"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mittels dieser Property koennen die Attacken eines Livings temporaer
+     veraendert werden.
+
+     Es wird an dem Living die Property als mindestens 3-elementiges Array
+     ({zeitpunkt, objekt, methode, ...})
+     gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
+     Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+
+     Der Methode wird beim Aufruf ein Kopie des Mappings uebergeben, in dem
+     die bisherigen Werte des Angriffes vermerkt sind.
+     Aufbau von Mapping 'ainfo':
+     ([ SI_ENEMY :           object Angreifer,			(-> Defend)
+        SI_SPELL :           0/1/array Spellparameter,		(-> Defend)
+        P_WEAPON :           - oder Waffe,
+        SI_SKILLDAMAGE_MSG:  string Angriffsmeldungsende an Raum,
+        SI_SKILLDAMAGE_MSG2: string Angriffsmeldungsende an Kaempfende,
+        SI_SKILLDAMAGE:      int Schaden in Zehntel HP (Skills bis auf Rasse
+			     drin!)				(-> Defend),
+        SI_SKILLDAMAGE_TYPE: string/string* Schadenstypen,	(-> Defend)
+        P_WEAPON_TYPE:       string Waffentyp (combat.h),
+        P_WC:		     - oder int WC der Waffe/Hand,
+        P_NR_HANDS:	     - oder int Hands der Waffe/Hand,
+     ]);
+
+     Gibt die Methode:
+     - 0 oder kein Mapping zurueck, fuehrt das zum Abbruch der Attacke
+       -> da inzwischen Waffen abgefragt wurden, koennen schon Meldungen
+          von diesen ausgegeben worden sein
+     - ein leeres Mapping ( ([]) ) zurueck, fuehrt das zu keiner Modifikation
+     - ein Mapping mit veraenderten Werten zurueck, werden diese in das
+       Angriffsmapping kopiert
+       Die geaenderten Werte werden teilweise von SkillResTransfer() in
+       den eigentlichen Angriff uebernommen.
+
+BEMERKUNGEN
+-----------
+::
+
+     - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+       Property auf 0 gesetzt
+     - vor dem Setzen immer auf die Existenz eines gueltigen Modifiers
+       pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+       im Code anderer und ist andererseits unfair gegenueber ihnen
+
+BEISPIELE
+---------
+::
+
+     *** ein besonder heisser Segen modifiziert die Attacken des Spielers ***
+     int action_segen() {
+       ...
+       mixed *tmp;
+
+       // pruefen, ob nicht ein anderer Modifier existiert
+       if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_MOD)) ||
+          sizeof(tmp)<3 || tmp[0]<=time()) {
+
+         object wield;
+         wield=TP->QueryProp(P_WEAPON);
+
+         write(break_string(
+           "Der Priester der Flamme weiht "+
+           (wield?wield->name(WEN,1):"deine Haende")+".", 78));
+
+         // setzen des Modifiers .. 30-40 Sekunden gueltig
+         TP->SetProp(P_TMP_ATTACK_MOD,
+	              ({time()+30+random(10), this_object(), "modfun"}));
+        } else ...
+        ...
+      return 1;
+     }
+
+     // die eigentlich Methode, die waehrend des Angriffs gerufen wird
+     mapping modfun(mapping ainfo) {
+       mapping ret;
+
+       // Returnwert ist immer ein Mapping, damit die Attacke weitergeht
+       ret=m_allocate(0,1);
+
+       // magische Waffen oder Sprueche werden nicht verbessert
+       if(ainfo[P_WEAPON_TYPE]!=WT_MAGIC) {
+         // sonst Verbesserungen ... Feuer addieren ...
+         ret[SI_SKILLDAMAGE_TYPE]=(ainfo[SI_SKILLDAMAGE_TYPE]||({}))+
+				({DT_FIRE});
+	 // ... und bei Waffe Meldungen anpassen
+         if(ainfo[P_WEAPON]) {
+           ret[SI_SKILLDAMAGE_MSG]=
+             " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
+           ret[SI_SKILLDAMAGE_MSG2]=
+             " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
+         }
+       }
+
+       return ret;
+     }
+
+SIEHE AUCH
+----------
+::
+
+     Angriff:	Attack(L)
+     Schutz:    Defend(L)
+     Verwandt:  InternalModifyAttack(L)
+		P_TMP_ATTACK_HOOK
+		P_TMP_DEFEND_HOOK
+     Sonstiges: SkillResTransfer(L)
+     Hooks:	P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK
+
+10.Feb 2005 Gloinson
+
diff --git a/doc/sphinx/props/obsolete/P_TMP_DEFEND_HOOK.rst b/doc/sphinx/props/obsolete/P_TMP_DEFEND_HOOK.rst
new file mode 100644
index 0000000..5d9ae39
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_TMP_DEFEND_HOOK.rst
@@ -0,0 +1,131 @@
+P_TMP_DEFEND_HOOK
+=================
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
+***********************************************************************
+P_TMP_DEFEND_HOOK
+
+NAME
+----
+::
+
+     P_TMP_DEFEND_HOOK             "defend_hook"
+
+DEFINIERT IN
+------------
+::
+
+     /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mittels dieser Property koennen die Abwehren eines Livings temporaer
+     veraendert werden.
+
+     Es wird an dem Living die Property als mindestens 3-elementiges Array
+     ({zeitpunkt, objekt, methode, ...})
+     gesetzt und die Methode 'methode' wird dann waehrend des Defend() des
+     Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+
+     Der Methode werden die Parameter der Defend() uebergeben:
+     int dam, mixed dam_type, mixed spell, object enemy
+     - spell ist definitiv ein Mapping - ein an Defend() uebergebener
+       int-Wert wurde aequivalent umgesetzt.
+     - dam_type ist definitiv ein Array von Schadenswerten oder einem Wert
+
+     Zudem findet der Aufruf der Methode nach dem Abarbeiten der P_DEFENDERS
+     statt, diese koennen also weitere Modifikationen vorgenommen haben.
+
+     Gibt die Funktion:
+     - 0 zurueck, wird Defend() abgebrochen (und damit der Schaden voellig
+       abgefangen) - nur noch die Flucht wird geprueft
+     - ein 3-elementiges Array ({schaden, schadenstypen, spell}) zurueck,
+       werden diese Werte in der Defend() an Stelle der uebergebenen Werte
+       verwendet
+     - weder noch zurueck, wird das Ergebnis ignoriert und die Defend laeuft
+       regulaer weiter
+
+BEMERKUNGEN
+-----------
+::
+
+     - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+     - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+       Property auf 0 gesetzt
+     - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+       pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+       im Code anderer und ist andererseits unfair gegenueber ihnen
+
+BEISPIEL
+--------
+::
+
+     *** ein gruener Schutzzauber ***
+     // Setzen der Prop
+     ...
+     tmp=TP->QueryProp(P_TMP_DEFEND_HOOK);
+
+     // ein etwas ausfuehrlicher Check, ob wir ueberschreiben koennen,
+     // Existenz && Gueltigkeit
+     if(pointerp(tmp) && sizeof(tmp) && intp(tmp[0]) && (time()<tmp[0]))
+      write("Der Zauber klappt nicht!\n");
+     else {
+      // der Zauber gilt eine Stunde
+      TP->SetProp(P_TMP_DEFEND_HOOK,({time()+3600,TO,"abwehrfun");
+      write("Ein Zauber legt sich auf dich.\n");
+     }
+     ...
+
+     // die gerufene Methode
+     mixed abwehrfun(int dam, string* dam_type, mapping spell, object en) {
+      // keine rekursiven Schaeden abfangen ... mindestens ein magischer
+      // muss auch dabei sein
+      if((!mappingp(spell) || !spell[SP_RECURSIVE]) &&
+         sizeof(filter(dam_type,MAGICAL_DAMAGE_TYPES))) {
+
+       // mit 10% Whkeit schuetzt der Zauber total
+       if(!random(10)) {
+        tell_object(previous_object(),
+          "Dein Zauber gleisst rund um dich gruen auf.\n");
+        tell_room(environment(previous_object()), break_string(
+          previous_object()->Name(WESSEN)+" Haut gleisst rund um "+
+          previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+          ({previous_object()}));
+
+        // manchmal geht der Zauber dabei endgueltig kaputt
+        if(!random(10)) previous_object()->SetProp(P_TMP_DEFEND_HOOK, 0);
+
+        return 0;			// volles Abfangen des Angriffs
+       }
+
+       // der Zauber schuetzt auf jeden Fall immer ein bischen
+       tell_object(previous_object(),
+         "Dein Zauber flackert rund um dich gruen auf.\n");
+       tell_room(environment(previous_object()), break_string(
+         previous_object()->Name(WESSEN)+" Haut flackert rund um "+
+         previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+         ({previous_object()}));
+       dam=(7+random(2))*dam/10;	// Schaden reduzieren
+
+       return(({dam, dam_type, spell}));
+      }
+
+      // der Zauber schuetzt dann gar nicht ...
+      return 1;
+     }
+
+SIEHE AUCH
+----------
+::
+
+     Angriff:	Attack(L)
+     Schutz:    Defend(L)
+     Verwandt:	InternalModifyDefend(L), P_TMP_ATTACK_MOD
+     Hooks:	P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK
+     neue Hooks: std/hooks
+
+08.12.2008, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_TMP_DIE_HOOK.rst b/doc/sphinx/props/obsolete/P_TMP_DIE_HOOK.rst
new file mode 100644
index 0000000..616da96
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_TMP_DIE_HOOK.rst
@@ -0,0 +1,91 @@
+P_TMP_DIE_HOOK
+==============
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
+***********************************************************************
+P_TMP_DIE_HOOK
+
+NAME
+----
+::
+
+    P_TMP_DIE_HOOK                "die_hook"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+     Mittels dieser Property kann der Tod eines Livings abgewendet werden.
+
+     Es wird an dem Living die Property als mindestens 3-elementiges Array
+     ({zeitpunkt, objekt, methode, ...})
+     gesetzt und die Methode 'methode' wird dann waehrend des die() des
+     Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+     Bei Geistern wird der Hook nicht gerufen.
+
+     Der Methode wird ein int uebergeben, ob das Living Opfer von Gift
+     (P_POISON) war.
+
+     Gibt die Funktion einen Wert != 0 zurueck, wird die() sofort abgebrochen
+     und das Living stirbt nicht.
+
+BEMERKUNGEN
+-----------
+::
+
+    - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+    - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+      Property auf 0 gesetzt
+    - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+      pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+      im Code anderer und ist andererseits unfair gegenueber ihnen
+
+BEISPIELE
+---------
+::
+
+     *** ein besonderer Giftschutz .. wirkt beim Tod ***
+     // pruefen, ob nicht ein anderer Modifier existiert
+     if(!pointerp(tmp=TP->QueryProp(P_TMP_DIE_HOOK)) ||
+        sizeof(tmp)<3 || tmp[0]<=time()) {
+       TP->SetProp(P_TMP_DIE_HOOK,
+	           ({time()+120+random(10), this_object(), "prevent_die"}));
+
+     // die gerufene Methode
+     int prevent_die(int poison) {
+       int ret;
+
+       if(poison) {
+         tell_object(previous_object(),
+           "Ein Zauber reinigt im Moment des Todes dein Blut!\n");
+         tell_object(environment(previous_object()),
+           previous_object()->Name(WER,1)+" wird von Lichtern umhuellt.\n",
+           ({previous_object()}));
+
+         ret=1;
+       }
+
+       // wir helfen nur einmal ... und ein Tod vernichtet die Hilfe auch
+       previous_object()->SetProp(P_TMP_DIE_HOOK, 0);
+
+       return ret;
+     }
+
+SIEHE AUCH
+----------
+::
+
+     Tod:	die(L)
+     Sonstiges: P_POISON, P_KILLS, P_GHOST
+     Hooks:	P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK, P_TMP_DEFEND_HOOK
+     neue Hooks: std/hooks
+
+08.12.2008, Zesstra
+
diff --git a/doc/sphinx/props/obsolete/P_TMP_MOVE_HOOK.rst b/doc/sphinx/props/obsolete/P_TMP_MOVE_HOOK.rst
new file mode 100644
index 0000000..2b9212e
--- /dev/null
+++ b/doc/sphinx/props/obsolete/P_TMP_MOVE_HOOK.rst
@@ -0,0 +1,65 @@
+P_TMP_MOVE_HOOK
+===============
+
+********************* VERALTETE PROPERTY ******************************
+* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
+***********************************************************************
+
+NAME
+----
+::
+
+    P_TMP_MOVE_HOOK             "move_hook"
+
+DEFINIERT IN
+------------
+::
+
+    /sys/new_skills.h
+
+BESCHREIBUNG
+------------
+::
+
+    Mindestens 3-elementiges Array ({zeitpunkt, objekt, funktion, ...}).
+    Die Funktion wird im 'objekt' mit den gleichen Parametern wie move()
+    nach der Abfrage auf P_NO_TPORT aufgerufen, wenn der 'zeitpunkt'
+    noch nicht ueberschritten ist. Wenn die Funktion etwas anderes als ein
+    5-elementiges Array ({dest, methods, direction, textout, textin})
+    oder -1 zurueckgibt, wird move() normal ausgefuehrt, ansonsten werden die
+    5 move-Parameter durch die Array-Eintraege ersetzt bzw. wird bei einem
+    Rueckgabewert von -1 das move() abgebrochen. In letzterem Fall ist
+    die Funktion dafuer verantwortlich, eine entspr. Meldung an den
+    Spieler auszugeben!
+
+HINWEIS
+-------
+::
+
+    Falls man einem Spieler einen Move-Hook setzt, ist es ratsam, im
+    Move-Hook zu pruefen, ob das Spielerobjekt nach Abarbeitung der Hook-
+    Funktion noch lebt. Ansonsten wird ein doppeltes move() ausgefuehrt:
+    in den Todesraum und direkt wieder zurueck zur Leiche.
+
+BEMERKUNGEN
+-----------
+::
+
+     - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+     - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+       Property auf 0 gesetzt
+     - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+       pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+       im Code anderer und ist andererseits unfair gegenueber ihnen
+
+SIEHE AUCH
+----------
+::
+
+     Bewegung:	move(L), NotifyMove(), PreventMove()
+     Hooks:	P_TMP_DIE_HOOK, P_TMP_DEFEND_HOOK, P_TMP_ATTACK_HOOK
+     neue Hooks: std/hooks
+
+
+08.12.2008, Zesstra
+
diff --git a/doc/sphinx/props/skill_info_liste.rst b/doc/sphinx/props/skill_info_liste.rst
new file mode 100644
index 0000000..dedaaff
--- /dev/null
+++ b/doc/sphinx/props/skill_info_liste.rst
@@ -0,0 +1,345 @@
+skill_info_liste
+================
+
+SI_*
+----
+::
+
+DEFINIERT IN
+------------
+::
+
+    /sys/newskills.h
+
+BESCHREIBUNG
+------------
+::
+
+    Die folgende Liste der SI-Typen ist grob nach Gueltigkeit fuer Skills
+    und Spells sortiert.
+
+    
+
+    Anwendungsorte der SI_-Werte sind:
+    - /std/living/combat und von dort gerufene Skills (Kampf)
+    - /std/gilden_ob und in Gilden lernbare Spells/Skills
+    - /std/spellbook und von Spellbooks ausgefuehrte Spells
+    - /std/living/life und von dort gerufene Skills (Alkohol)
+    - /std/shells/* und entsprechende Rassenskills
+
+    Im Skillsystem unter /std/living/skills wird vor auf Informationen
+    aus dem Teil #1 Ruecksicht genommen. Einige dieser Werte
+    werden auch permanent im Spieler gespeichert (wie zB die
+    SI_SKILLABILITY).
+
+AKTUELLE LISTE: (5. Oktober 2011)
+ #1 Skills und Spells:
+    SI_SKILLFUNC: string
+     Beinhaltet den Namen der Methode, die die eigentliche Funktionalitaet
+     des Skills/Spells implementiert.
+     Falls nicht angegeben, wird bei Spells durch UseSpell() das Verb, das
+     der Spieler eingegeben hat, als Spell-Methodenname angenommen.
+     Im Gildenobjekt kann hier abweichend von Spell-Namen stehen, wie die
+     Spellfunktion im Spellbook heisst.
+
+    SI_CLOSURE: closure
+     Optimiert den Zugriff fuer den internen Gebrauch, indem die gefundene
+     Spell/Skillfunktion darin direkt gespeichert wird und so lange gueltig
+     ist, bis das/die Objekt(e)/Closure(s) zerstoert sind.
+     Kann theoretisch auch fuer externe Skills durch (Autoload-)Objekte
+     benutzt werden.
+
+    SI_SKILLABILITY: int
+     Faehigkeit, den Spell/Skill zu benutzen. Normal ist von
+     -MAX_ABILITY bis MAX_ABILITY.
+
+    SI_SKILLDAMAGE_TYPE: string*
+     Art des Schadens eines Angriffs: siehe Schadenstypen in /sys/combat.h
+
+    SI_SKILLDAMAGE_MSG: string
+     Meldung anstatt der Waffe oder Haende-Meldung.
+    SI_SKILLDAMAGE_MSG2: string
+     Meldung anstatt der Waffe oder Haende-Meldung fuer den Raum.
+
+    SI_INHERIT: string
+     Enthaelt den Namen des Skills/Spells, von dem geerbt wird. Das
+     bedeutet einerseits, das LearnSkill() auch diesen uebergeordneten
+     Skill beeinflusst und andererseits, dass bei Skills auch dieser
+     uebergeordnete Skill im Rahmen einer Skill-Anwendung gerufen wird.
+
+    SI_DIFFICULTY: int / [Spells: mixed]
+     Schwierigkeit eines Skills/Spells. Beeinflusst die jeweils oberen
+     Schranken fuer das Lernen eines Skills/Spells in Abhaengigkeit 
+     von Spielerlevel.
+     Wenn in einem Spell-Info-Mapping kein Wert steht wird bei Spells
+     automatisch SI_SPELLCOST genommen, der Wert im Spell-Info-Mapping
+     geht beim Lernen aber immer vor Parametern.
+    FACTOR(SI_DIFFICULTY): int / mixed
+    OFFSET(SI_DIFFICULTY): int / mixed
+     Nur fuer Spellbooks/Spells. Der mixed-Parameter kann Funktionen
+     enthalten. Siehe unten bei SI_SPELLCOST.
+
+    SI_LASTLIGHT: int
+     Zeitpunkt, bis wann der Standardskills SK_NIGHTVISION den Spieler
+     sehen laesst.
+
+    SI_TESTFLAG: int
+     Wenn gesetzt, dann soll der Skill nicht genutzt, sondern nur getestet
+     werden, ob er erfolgreich waere. Entspricht also in etwa dem Aufruf
+     von SpellSuccess() in Spellbooks, wird aber bei UseSkill() als
+     Skill-Parameter uebergeben.
+     Der Skill muss entsprechend implementiert sein!
+
+    SI_GUILD: string
+     Angabe der Gilde, aus der der Skill stammt. Sinnvoll, wenn der Skill
+     nicht aus der aktuellen P_GUILD stammt. Fuer generelle Skills/Spells
+     zB waere das "ANY".
+     Gilt nicht fuer Spells!
+
+    SI_ENEMY: object
+     Aktuelles Feindesobjekt, wird bei Skill-Anwendung aus dem Kampf heraus
+     von std/living/combat.c an den Skill uebergeben.
+     Beispiel: Standardwaffenskills, SK_MAGIC_DEFENSE, SK_MAGIC_ATTACK,
+               SK_TWOHANDED, SK_SPELL_DEFEND, SK_INFORM_DEFEND und
+               SK_DEFEND_OTHER.
+
+    SI_FRIEND: object
+     Zu verteidigendes Freundesobjekt, wird bei Skill-Anwendung aus dem
+     Kampf heraus von std/living/combat.c an den Skill uebergeben.
+     Beispiele: SK_INFORM_DEFEND und SK_DEFEND_OTHER.
+
+    SI_MAGIC_TYPE: string*
+     Enthaelt ein Array der Magietypen, die zum Einsatz kommen. Die Angabe
+     geschieht zB im Spellbook und beeinflusst SpellDefend().
+
+    SI_LAST_USE: int (eventuell obsolet)
+     Letzte Nutzung des Skills.
+
+    
+
+    SI_LEARN_PROB: int (eventuell obsolet)
+     Lernwahrscheinlichkeit.
+
+    SI_SKILLDURATION: int
+     Dauer des Skills/Spells. Momentan nicht allzu verbreitet in Nutzung.
+
+ #2 nur fuer Spells:
+    SI_SPELLBOOK: string
+     Kann direkt das enthaltende Spellbook fuer einen Spell enthalten.
+
+    SM_RACE: mapping
+      Mapping, das als Key die Rasse und als Value ein Mapping X
+      enthaelt. Dieses Mapping X wird direkt zu sinfo hinzugefuegt und
+      ueberschreibt damit bei Bedarf Defaultwerte durch rassenspezifische
+      Werte.
+
+    SI_SPELLCOST: int / mixed
+    FACTOR(SI_SPELLCOST): int / mixed
+    OFFSET(SI_SPELLCOST): int / mixed
+     Beinhaltet die Werte, die fuer die Berechnung der Spellkosten
+     zustaendig sind.
+     Dabei gilt: Realkosten = OFFSET(COST) + (COST * FACTOR(COST))/100
+     Die einzelnen Eintraege koennen anstatt eines fixen Wertes auch den
+     Verweis auch eine Funktion in Form von Closure/Methodenname/Array mit
+     Objekt/Objektname und Methodenname enthalten. Siehe dazu auch
+     execute_anything().
+
+    SI_TIME_MSG: string
+     Meldung, die dem Spieler mitteilt, dass er noch nicht wieder einen
+     Spell casten kann. Falls dieser Eintrag nicht gesetzt ist, wird
+     ein Standardtext ausgegeben.
+
+    SI_SP_LOW_MSG: string
+     Meldung, die dem Spieler mitteilt, dass er zu wenige
+     Konzentrationspunkte besitzt, um den Spell zu casten. Falls dieser
+     Eintrag nicht gesetzt ist, wird ein Standardtext ausgegeben.
+
+    SI_PREPARE_MSG: string
+     Meldung, die dem Spieler ausgegeben werden soll, wenn er einen Spell
+     vorbereitet. Ansonsten wird ein Standardtext ausgegeben.
+
+    SI_PREPARE_BUSY_MSG: string
+     Meldung, die dem Spieler ausgegeben werden soll, wenn er schon diesen
+     Spell vorbereitet. Ansonsten wird ein Standardtext ausgegeben.
+
+    SI_PREPARE_ABORT_MSG: string
+     Meldung, die dem Spieler ausgegeben werden soll, wenn er die
+     Vorbereitung dieses Spells durch einen anderen Spell unterbricht.
+     Ansonsten wird ein Standardtext ausgegeben.
+
+    SI_NOMAGIC: int
+     Wert zwischen 0 und 100 (oder mehr), der gegen die P_NOMAGIC-Wirkung
+     eines Raumes wirkt.
+     Je hoeher der Wert ist, desto unwahrscheinlicher ist es, dass ein
+     Raum den Spell durch Antimagie stoert. Ein Raum sollte nur Werte
+     zwischen 0 und 100 gesetzt haben. Ist der Wert des Raums groesser
+     als der hier angegeben, dann blockiert er Magie mit einer gewissen
+     eben seiner angegebenen Wahrscheinlichkeit.
+
+    SI_NOMAGIC_MSG: string
+     Meldung, die bei Fehlschlag durch P_NOMAGIC des Raumes ausgegeben
+     wird. Ansonsten wird ein Standardtext ausgegeben.
+
+      
+
+    SI_SPELLFATIGUE: int / mixed
+    FACTOR(SI_SPELLFATIGUE): int / mixed
+    OFFSET(SI_SPELLFATIGUE): int / mixed
+     Werte, die fuer die Berechnung der Wieder-Cast-Zeit benutzt werden.
+     Die Berechnung und die moeglichen Angaben (Closure etc.) sind
+     identisch zu SI_SPELLCOST.
+     Das Spellbook gibt bei Nicht-Wieder-Bereitschaft SI_TIME_MSG aus.
+
+    SI_X_SPELLFATIGUE: mapping mit ([string key: int val])
+     Werte, die fuer die Berechnung der Wieder-Cast-Zeit benutzt werden.
+     Spellbook-Casten: Mapping wird durch Aufruf von CheckSpellFatigue(<key>)
+     am Caster gefiltert. Nur wenn das resultierende Mapping leer ist (kein
+     <key> hat einen gueltigen Fatigue-Eintrag), ist Spell castbar, sonst
+     Ausgabe von SI_TIME_MSG.
+     Nach Spellbook-Casten: Setzen der Fatigue fuer alle <val> > 0 mit <key>.
+
+    SI_SKILLLEARN: int / mixed
+    FACTOR(SI_SKILLLEARN): int / mixed
+    OFFSET(SI_SKILLLEARN): int / mixed
+     Werte, die fuer die Berechnung der Lerngeschwindigkeit benutzt
+     werden, normalerweise pro A_INT/2 je 0.01% (also 1 von MAX_ABILITY).
+     Die Berechnung und die moeglichen Angaben (Closure etc.) sind
+     identisch zu SI_SPELLCOST.
+
+    SI_LEARN_ATTRIBUTE: mapping
+     Mapping, welches die Attribute, nach denen gelernt werden soll
+     als Keys enthaelt. Der Value legt die Gewichtung fest, denn bei
+     mehreren Attributen wird ein Mittelwert gebildet.
+     Der Normalfall entspraeche ([A_INT: 1]) fuer SI_LEARN_ATTRIBUTE.
+
+    SI_NO_LEARN
+     Wenn man (temporaer!) nicht will, dass dieser Skill gelernt wird.
+     Muss von den Spellbooks beachtet werden.
+     Sollte niemals im Spieler abgespeichert werden. Oder permanent in
+     Gilde/Spellbook gesetzt sein. Sondern im Laufe einesr Nutzung in der
+     jew. Kopie von sinfo gesetzt werden, die gerade genutzt wird.
+
+    
+
+     SI_SKILLARG: string
+     Beinhaltet den Text, den der Spieler nach dem Spellkommando eingegeben
+     hat. Z.B. stuende bei "krallenschlag ork 2" der Text "ork 2" im
+     Parameter.
+
+    SI_SKILLRESTR_USE: mixed
+     Einschraenkungen fuer das Nutzen des Spells.
+     Wird normalerweise direkt im Spellbook fuer den Spell eingetragen.
+     Die einzelnen Moeglichkeiten werden in der manpage zu
+     "check_restrictions" erlaeutert.
+
+     
+
+    SI_SKILLRESTR_LEARN: mixed
+     Einschraenkungen fuer das Lernen des Spells.
+     Wird normalerweise direkt im Gildenobjekt fuer den Spell
+     eingetragen.
+     Die einzelnen Moeglichkeiten werden in der manpage zu
+     "check_restrictions" erlaeutert.
+
+    SI_SKILLINFO: string
+    SI_SKILLINFO_LONG: string
+     Beschreibung des Spells. Wird im Gildenobjekt eingetragen und
+     SI_SKILLINFO wird von SkillListe angezeigt.
+
+    SI_SKILLDAMAGE: int / mixed
+    FACTOR(SI_SKILLDAMAGE): int / mixed
+    OFFSET(SI_SKILLDAMAGE): int / mixed
+     Werte, die fuer die Schadenshoehenberechnung des Spells benutzt
+     werden (random ueber den Gesamtwert normalerweise).
+     Die Berechnung und die moeglichen Angaben (Closure etc.) sind
+     identisch zu SI_SPELLCOST.
+
+    SI_SKILLDAMAGE_BY_ROW
+     Ein Mapping mit Boni fuer den Angriff aus bestimmten Kampfreihen.
+     Funktioniert nur bei Verwendung von TryDefaultAttackSpell-Spells
+     aus dem Spellbook.
+     Der Key steht fuer eine bestimmte Reihe, sein Wert fuer den
+     randomisierten Bonus fuer Lebewesen, die aus dieser Reihe casten.
+    OFFSET(SI_SKILLDAMAGE_BY_ROW)
+     Ein Mapping mit fixem Wert fuer Row-Boni im Kampf.
+
+     Beispiel: AddSpell("feuerball", 20,
+                        ([SI_SKILLDAMAGE:50,
+                          OFFSET(SI_SKILLDAMAGE):100,
+                          SI_SKILLDAMAGE_BY_ROW:([2:40,3:20}),
+                          OFFSET(SI_SKILLDAMAGE_BY_ROW):([2:20]), ...
+     gibt
+      Reihe 1: random(50)+100;
+      Reihe 2: random(50)+100+random(40)+20
+      Reihe 3: random(50)+100+random(20)
+     ACHTUNG: Hier gilt nicht die selbe Struktur wie bei SI_SPELLCOST!
+
+    SI_SPELL: mapping
+     Dieser Eintrag enthaelt verschiedene Unterwerte, die den Spell
+     gerade fuer Angriffs-Spells genauer beschreiben. Siehe Defend()
+     fuer eine Beschreibung der verschiedenen Eintraege (die so auch
+     in das Spellbook uebernommen werden koennen).
+
+    SI_COLLATERAL_DAMAGE: int
+     Hiermit kann man einen Prozentwert von SI_SKILLDAMAGE (inklusive
+     Offsets und Factor) fuer Kollateralschaden an Freunden im definierten
+     Bereich eines Flaechenspells (TryGlobalAttackSpell()) angeben.
+     10 bedeutet bei OFFSET(SI_SKILLDAMAGE)=100 zB 10% von 100 = 10 = 1 LP
+     an mit reduce_hit_points() verursachtem Schaden.
+
+    
+
+    SI_NUMBER_ENEMIES, SI_NUMBER_FRIENDS: int
+     Wird von TryGlobalAttackSpell() im Spell gesetzt und enthaelt die
+     Anzahl der im angegebenen Bereich befindlichen Feinde und Freunde.
+     Ist dementsprechend von informativem Nutzen fuer den Angegriffenen
+     und das Spellbook NACH Aufruf von TryGlobalAttackSpell().
+
+    
+
+    SI_DISTANCE, SI_WIDTH, SI_DEPTH: int
+     Limitiert die Entfernung, Tiefen und Breite der Wirkung eines
+     TryGlobalAttackSpell()
+
+    SI_SKILLHEAL: int
+     Konvention fuer Spells im Spellbook, dort den Heilwert zu hinterlegen,
+     hat keine Auswirkungen unter /std/.
+
+    SI_USR: mixed
+     Fuer selbst definierte Infos, spellbookabhaengig.
+
+    SI_PREPARE_TIME: int
+     Dauer der Zeit fuer zu praeparierende Spells.
+
+    SI_ATTACK_BUSY_MSG: string
+     Meldung, die dem Spieler mitteilt, dass er schon zu beschaeftigt
+     mit einem Angriff ist, um einen Spell zu casten. Falls dieser
+     Eintrag nicht gesetzt ist, wird  ein Standardtext ausgegeben.
+
+    SI_NO_ATTACK_BUSY: int
+     Enthaelt als Flag NO_ATTACK_BUSY_QUERY wenn der Spell NICHT wie
+     eine Spezialwaffe die Aktionen einschraenkt. Siehe P_ATTACK_BUSY.
+
+    SI_ATTACK_BUSY_AMOUNT: int
+     Menge des P_ATTACK_BUSY fuer diesen Spell. Falls dieser Wert nicht
+     gesetzt ist, aber auch SI_NO_ATTACK_BUSY nicht mit
+     NO_ATTACK_BUSY_QUERY ausgezeichnet ist wird 1 angenommen.
+
+SIEHE AUCH
+----------
+::
+
+    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
+    * Nutzung:      UseSpell, UseSkill
+    * Abfragen:     QuerySkill, QuerySkillAbility
+    * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
+                    QuerySkillAttributeModifier, RemoveSkillAttributeModifier
+      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
+    * sonstig:      spruchermuedung
+    * Properties:   P_NEWSKILLS
+    Spellbook:      UseSpell, Learn, SpellSuccess
+    Gilden:         gilden-doku
+    Kampf:          Defend
+
+7. Nov 2012 Gloinson
+
