diff --git a/doc/sphinx/lfun/AddInfo.rst b/doc/sphinx/lfun/AddInfo.rst
index 5db8bef..8b5914a 100644
--- a/doc/sphinx/lfun/AddInfo.rst
+++ b/doc/sphinx/lfun/AddInfo.rst
@@ -3,9 +3,10 @@
 
 FUNKTION
 --------
+:: 
 
-     varargs void AddInfo( frage, meldung
-               [, indent [, [silent [, casebased] ] ] );
+  public varargs void AddInfo(string|string* key, string|closure info,
+                 string indent, int|string silent, string|closure casebased);
 
 DEFINIERT IN
 ------------
@@ -15,18 +16,23 @@
 ARGUMENTE
 ---------
 
-     string/string* frage
-       Schluesseltext(e) auf die Informationen gegeben werden sollen.
-     string/closure meldung
+     string|string* frage
+       Schluesselwoerter, fuer die der NPC eine Antwort geben soll, wenn
+       man ihn danach fragt
+
+     string|closure meldung
        Information, die gegeben werden soll; wenn 'meldung' eine Closure 
        ist, wird der gerufenen Funktion nichts uebergeben.
-     string indent
+
+     string indent    (optional)
        Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
-     int/string silent
+
+     int|string silent    (optional)
        Ist silent gesetzt, so erfolgt Antwort nur an Fragenden. 
-     string/closure casebased
+
+     string|closure casebased   (optional)
        Closure mit Returnwert string oder int.
-       Bekommt nichts uebergeben.
+       Der Funktion werden keine Argumente uebergeben.
 
 BESCHREIBUNG
 ------------
@@ -69,7 +75,7 @@
 
      Die Strings von 'silent' und 'meldung' werden geparsed.
      Dabei koennen die @[...]-Tags von replace_personal() verwendet werden,
-     Objekt 1 ist this_player(). Ersetzte String am Satzanfang werden
+     Objekt 1 ist this_player(). Ersetzte Strings am Satzanfang werden
      automatisch gross geschrieben.
      AddInfo() konvertiert die alten Schluesselworte @WER, @WESSEN, @WEM,
      @WEN zu denen von replace_personal(), jedoch nicht in den Rueckgabe-
@@ -259,4 +265,4 @@
      Interna:
        :doc:`GetInfoArr` , :doc:`do_frage`
 
-7. Mar 2017 Gloinson
+24.09.2020, Arathorn
diff --git a/doc/sphinx/lfun/AddMoney.rst b/doc/sphinx/lfun/AddMoney.rst
index 416bdee..0868e51 100644
--- a/doc/sphinx/lfun/AddMoney.rst
+++ b/doc/sphinx/lfun/AddMoney.rst
@@ -65,10 +65,10 @@
 
 .. code-block:: pike
 
-     #include <zentralbank.h>
+     #include <bank.h>
      
      // gib ihm Geld
-     int money = ZENTRALBANK->Withdraw(50);
+     int money = ZENTRALBANK->WithDraw(50);
      this_player()->AddMoney(money);
 
      // nimm ihm Geld
@@ -80,12 +80,14 @@
 
 SIEHE AUCH
 ----------
+::
 
-     Geldhandling:	QueryMoney(L)
-     Zentralbank:	PayIn(L), WithDraw(L)
-     Sonstiges:		move(L),
-     /items/money.c, /sys/moving.h, /sys/money.h, /sys/bank.h
-     /std/container/moneyhandler.c
+     Geldhandling:  QueryMoney(L)
+     Zentralbank:   PayIn(L), WithDraw(L)
+     Sonstiges:     move(L),
+     /items/money.c
+     /sys/moving.h, /std/container/moneyhandler.c
+     /sys/money.h, /sys/bank.h 
 
 18.02.2013, Zesstra
 
diff --git a/doc/sphinx/lfun/AddRoomMessage.rst b/doc/sphinx/lfun/AddRoomMessage.rst
index 527ea54..ce325ff 100644
--- a/doc/sphinx/lfun/AddRoomMessage.rst
+++ b/doc/sphinx/lfun/AddRoomMessage.rst
@@ -53,7 +53,7 @@
 
        * passiert automatisch nur, wenn alle Spieler den Raum verlassen haben
        * ist manuell nur ueber Loeschen der Nachrichten umsetzbar, also mit
-         ``AddRoomMessage((string)0, 0, (string)0);``
+         ``AddRoomMessage(0, 0, 0);``
 
      In Funktionen, die durch AddRoomMessage() ausgeloest werden, darf
      this_player() nicht verwendet werden, da die call_out()-Kette den
@@ -122,7 +122,7 @@
      }
 
      public int action_laerm(string str) {
-       AddRoomMessage((string)0, 0, (string)0);
+       AddRoomMessage(0, 0, 0);
 
        this_player()->ReceiveMsg(
          "Du schreist dir kurz die Seele aus dem Leib. Alle Tiere "
diff --git a/doc/sphinx/lfun/AddSpecialInfo.rst b/doc/sphinx/lfun/AddSpecialInfo.rst
index 558b2d2..fd67141 100644
--- a/doc/sphinx/lfun/AddSpecialInfo.rst
+++ b/doc/sphinx/lfun/AddSpecialInfo.rst
@@ -5,23 +5,32 @@
 --------
 ::
 
-     varargs void AddSpecialInfo( frage, meldung
-			   [, indent [, [silent [, casebased] ] ] );
+  public varargs void AddSpecialInfo(string|string* keys, string functionname,
+                 string indent, int|string silent, string|closure  casebased);
+
 
 ARGUMENTE
 ---------
 ::
 
-     string/string* frage
-	Schluesseltext(e) auf die Informationen gegeben werden sollen.
-     string/closure function
-	Methodenname im NPC/Closure
-     string indent
-	Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
-     int/string silent
-	Ist silent gesetzt, so erfolgt Antwort nur an Fragenden.
-     string/closure casebased
-	Funktionsname oder Closure mit Returnwert string oder int.
+     string|string* frage
+       Schluesselwoerter, fuer die der NPC eine Antwort geben soll, wenn
+       man ihn danach fragt
+
+     string functionname
+       Name der Funktion, die gerufen werden soll, um den Informationstext
+       des NPCs zu ermitteln. Der gerufenen Funktion werden keine Argumente
+       uebergeben.
+
+     string indent    (optional)
+       Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
+
+     int|string silent    (optional)
+       Ist silent gesetzt, so erfolgt Antwort nur an Fragenden. 
+
+     string|closure casebased   (optional)
+       Closure mit Returnwert string oder int.
+       Der Funktion werden keine Argumente uebergeben.
 
 DEFINIERT IN
 ------------
@@ -80,9 +89,17 @@
 
 SIEHE AUCH
 ----------
-::
 
-     AddInfo(L), RemoveInfo(L)
+     Verwandt:
+       :doc:`AddInfo`, :doc:`RemoveInfo`
+     Props:
+       :doc:`../props/P_PRE_INFO`
+     Files:
+       /std/npc/info.c
+     Loggen:
+       :doc:`../props/P_LOG_INFO`
+     Interna:
+       :doc:`GetInfoArr` , :doc:`do_frage`
 
-7.Apr 2004 Gloinson
+24.09.2020, Arathorn
 
diff --git a/doc/sphinx/lfun/Attack.rst b/doc/sphinx/lfun/Attack.rst
index 9281478..c6357d4 100644
--- a/doc/sphinx/lfun/Attack.rst
+++ b/doc/sphinx/lfun/Attack.rst
@@ -17,8 +17,8 @@
 ------------
 ::
 
-	Der Feind wird der Staerke der Waffe (bzw. der Haende) entsprechend
-	stark angegriffen.
+  Der Feind wird entsprechend der Angriffsstaerke der Waffe (P_WC) bzw. der 
+  Haende (P_HANDS[1]) angegriffen.
 
 RUECKGABEWERT
 -------------
@@ -32,11 +32,10 @@
 
 	Diese Funktion gibt die Angriffsmeldung aus.
 	Falls mit blossen Haenden angegriffen wird, ist die Staerke
-	(2*Staerke_der_Haende + 10*A_STR)/3
+	(2 * P_HANDS[1] + 10 * A_STR)/3
 
 SIEHE AUCH
 ----------
 ::
 
-	"Defend", "QueryDamage"
-
+	Defend(), QueryDamage()
diff --git a/doc/sphinx/lfun/CheckResistance.rst b/doc/sphinx/lfun/CheckResistance.rst
index 7254068..b3a83da 100644
--- a/doc/sphinx/lfun/CheckResistance.rst
+++ b/doc/sphinx/lfun/CheckResistance.rst
@@ -5,7 +5,7 @@
 --------
 ::
 
-	CheckRessistance(string* dam_type_list)
+	public float CheckResistance(string* dam_type_list)
 
 ARGUMENTE
 ---------
@@ -33,5 +33,5 @@
 ----------
 ::
 
-	"Defend"
+	Defend(), P_RESISTANCE_STRENGTHS
 
diff --git a/doc/sphinx/lfun/DefendFunc.rst b/doc/sphinx/lfun/DefendFunc.rst
index 6b86f13..e0a9c78 100644
--- a/doc/sphinx/lfun/DefendFunc.rst
+++ b/doc/sphinx/lfun/DefendFunc.rst
@@ -50,6 +50,7 @@
 
 BEISPIELE
 ---------
+:: 
 
      Eine Ruestung, die bei Angriffen mit Feuer ihre volle Staerke entfaltet
      und bei Angriffen durch Geister geschwaecht wird:
@@ -81,12 +82,13 @@
            enemy->is_class_member(CL_GHOST))
          prot -= random(10);
 
-       // Der Rueckgabewert wird auf den aus P_AC errechneten Wert draufgeschlagen
+       // Der Rueckgabewert wird auf den aus P_AC errechneten Wert 
+       // draufgeschlagen
        return prot;
      }
 
 SIEHE AUCH
 ----------
 
-     :doc:`../props/P_DEFEND_FUNC`, :doc:`QueryDefendd`
+     :doc:`../props/P_DEFEND_FUNC`, :doc:`QueryDefend`
      /std/armour/combat.c
diff --git a/doc/sphinx/lfun/QueryArmourByType.rst b/doc/sphinx/lfun/QueryArmourByType.rst
index 17e6967..c3a126d 100644
--- a/doc/sphinx/lfun/QueryArmourByType.rst
+++ b/doc/sphinx/lfun/QueryArmourByType.rst
@@ -9,7 +9,7 @@
 --------
 ::
 
-     mixed QueryArmourByType(string type)
+     object|object*|mapping QueryArmourByType(string type)
 
 DEFINIERT IN
 ------------
@@ -30,17 +30,28 @@
 
      Abfrage, ob das Lebewesen eine Ruestung des angegebenen Typs traegt.
 
-     Zurueckgegeben wird je nach Tragestatus und <type>:
-     * 0, falls das Lebewesen die gesuchte Ruestungsart nicht traegt
-     * im Erfolgsfall das Ruestungsobjekt
-     * falls <type> AT_MISC ist:
-       * ({}), wenn es keine AT_MISC-Ruestung traegt
-       * ein Array von AT_MISC-Ruestungen
-     * falls <type> 0 ist: ein Mapping, das diese Informationen mit dem
-       Ruestungstypen als Schluessel enthaelt:
-       ([AT_MISC: ({[object], ...}),
-         AT_...: <object>,
-         ... ])
+
+RUECKGABEWERTE
+--------------
+::
+    
+    Zurueckgegeben wird abhaengig vom Argument <type> folgendes:
+
+    1) Ist <type> ein Typ, von dem man nur eine Ruestung tragen kann:
+       *  0, falls das Lebewesen die gesuchte Ruestungsart nicht traegt,
+       *  ansonsten das Ruestungsobjekt
+
+    2) Ist <type> AT_MISC:
+       *   ein Array mit allen AT_MISC-Ruestungen
+       *   ({}), wenn das Lebewesen keine AT_MISC-Ruestung traegt
+
+    3) Ist <type> 0:
+       * Ein Mapping mit den Ruestungstypen als Schluessel der folgenden 
+       Form:
+          ([AT_MISC:  ({object misc1, ... }),
+            AT_CLOAK: object cloak,
+            AT_...:   object ...,
+            ... ])
 
 BEMERKUNG
 ---------
diff --git a/doc/sphinx/lfun/create_default_npc.rst b/doc/sphinx/lfun/create_default_npc.rst
index 8507388..999fee2 100644
--- a/doc/sphinx/lfun/create_default_npc.rst
+++ b/doc/sphinx/lfun/create_default_npc.rst
@@ -46,7 +46,10 @@
      wurden, werden durch die neuen Werte ersetzt.
 
      Ab einem Aufruf mit Level 20 werden P_XP = 202000 gesetzt, also ein
-     Kill-Stup vergeben (siehe P_XP).
+     Kill-Stups vergeben (siehe P_XP).
+
+     P_HP und P_SP werden auf dieselben Werte wie P_MAX_HP bzw. P_MAX_SP 
+     eingestellt.
 
 BEISPIEL
 --------
diff --git a/doc/sphinx/props/P_MAGIC_RESISTANCE_OFFSET.rst b/doc/sphinx/props/P_MAGIC_RESISTANCE_OFFSET.rst
index a1be37e..d87ec69 100644
--- a/doc/sphinx/props/P_MAGIC_RESISTANCE_OFFSET.rst
+++ b/doc/sphinx/props/P_MAGIC_RESISTANCE_OFFSET.rst
@@ -36,7 +36,7 @@
      // Goblins
      SetProp(P_MAGIC_RESISTANCE_OFFSET,
                ([MT_ANGRIFF:600,         // 6% Resistenz gegen Angriff
-	         MT_ILLUSION:500,        // 6% Resistenz gegen Illusionen
+	         MT_ILLUSION:500,        // 5% Resistenz gegen Illusionen
                  MT_VERWANDLUNG:-300,    // 3% Empfindlichkeit
 		 MT_HELLSICHT:-750,      // 7.5% Empfindlichkeit
 		 MT_BEHERRSCHUNG:250])); // 2.5% Resistenz
diff --git a/doc/sphinx/props/P_MAX_HP.rst b/doc/sphinx/props/P_MAX_HP.rst
index 3e23b46..ce7049f 100644
--- a/doc/sphinx/props/P_MAX_HP.rst
+++ b/doc/sphinx/props/P_MAX_HP.rst
@@ -19,6 +19,13 @@
 
      Maximale Anzahl der Lebenspunkte.
 
+HINWEIS
+-------
+:: 
+
+     Beim Setzen der Property wird gleichzeitig P_HP auf denselben Wert 
+     gesetzt.
+
 SIEHE AUCH
 ----------
 ::
diff --git a/doc/sphinx/props/P_MAX_SP.rst b/doc/sphinx/props/P_MAX_SP.rst
index 2269cd2..57ef762 100644
--- a/doc/sphinx/props/P_MAX_SP.rst
+++ b/doc/sphinx/props/P_MAX_SP.rst
@@ -19,6 +19,13 @@
 
      Maximale Anzahl der Magiepunkte.
 
+HINWEIS
+-------
+:: 
+
+      Beim Setzen der Property wird gleichzeitig P_SP auf denselben Wert
+      gesetzt.
+
 SIEHE AUCH
 ----------
 ::
diff --git a/doc/sphinx/sefun/replace_personal.rst b/doc/sphinx/sefun/replace_personal.rst
index ff7c07f..e799ddb 100644
--- a/doc/sphinx/sefun/replace_personal.rst
+++ b/doc/sphinx/sefun/replace_personal.rst
@@ -46,8 +46,6 @@
 
      x steht fuer die Position des Objekts/Strings in *obs, beginnend bei 1.
 
-     
-
      Besonderheiten beim Possessivpronomen (@WERQPPGNx):
      G muss durch das Geschlecht (M, F oder N) und N durch den Numerus (S 
      oder P) ersetzt werden. 
@@ -66,27 +64,19 @@
      
 
 Beispiele
-
-     replace_personal("@WER1", ({find_player("gloinson")}))
-     == "Gloinson"
------------------------------------------------------------------------------------------
+---------
 ::
 
+     replace_personal("@WER1", ({find_player("gloinson")})) ==> "Gloinson"
      
-
-     replace_personal("@WEMQP1", ({find_player("gloinson")}))
-     == "ihm"     
-
-     
+     replace_personal("@WEMQP1", ({find_player("gloinson")})) ==> "ihm"     
 
      // unbestimmter und bestimmter Artikel:
      replace_personal("@WER1 zueckt @WENU2 und verhaut @WEN3.", 
                       ({find_player("gloinson"),
                         find_object("/obj/mpa"), 
                         find_object("/obj/wanderer")}))
-     == "Gloinson zueckt eine Zeitung und verhaut den Wanderer."
-
-     
+     ==> "Gloinson zueckt eine Zeitung und verhaut den Wanderer."
 
      // Beim Possessivpronomen beziehen sich WEN, F und P (Akkusativ,
      // Femininum, Plural) auf die Taschen, nicht auf Kessa:
@@ -94,7 +84,7 @@
                       "Taschen.", 
                       ({find_player("kessa"), 
                         find_player("gloinson")}))
-     == "Kessa steckt Gloinsons Turnschuhe in ihre Taschen."
+     ==> "Kessa steckt Gloinsons Turnschuhe in ihre Taschen."
 
      // Ein Beispiel mit laengerem *obs:
      replace_personal("@WER1 zieht @WENQPPMP1 neuen Turnschuhe an. @WER2 ist "
@@ -108,10 +98,10 @@
                         "Birne",
                         find_object("/obj/wanderer"),
                         find_netdead("jof")}),1)
-     == "Gloinson zieht seine neuen Turnschuhe an. Kessa ist so beeindruckt, "
-        "dass sie ihm eine Zeitung auf die Birne haut und die Schuhe in ihrer "
-        "Tasche verschwinden laesst. Ein Wanderer schaut zu und kichert "
-        "irre. Wenn das Jof gesehen haette!"
+     ==> "Gloinson zieht seine neuen Turnschuhe an. Kessa ist so "
+         "beeindruckt, dass sie ihm eine Zeitung auf die Birne haut und die "
+         "Schuhe in ihrer Tasche verschwinden laesst. Ein Wanderer schaut "
+         "zu und kichert irre. Wenn das Jof gesehen haette!"
 
 SIEHE AUCH
 ----------
diff --git a/doc/sphinx/sefun/set_light.rst b/doc/sphinx/sefun/set_light.rst
deleted file mode 100644
index 99d5bee..0000000
--- a/doc/sphinx/sefun/set_light.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-set_light()
-===========
-
-SYNOPSIS
---------
-::
-
-        int set_light(int n)
-
-DESCRIPTION
------------
-::
-
-        An object is by default dark. It can be set to not dark by
-        calling set_light(1). The environment will then also get this
-        light. The returned value is the total number of lights in
-        this room. So if you call set_light(0) it will return the
-        light level of the current object.
-
-        
-
-        Note that the value of the argument is added to the light of
-        the current object.
-
-BUGS
-----
-::
-
-	This handling of light by the parser is inappropriate for most
-	purposes: If you put a burning candle into a safe, the safe
-	will start to emit light.
-
