Update diverser Manpages und Beispiele

Change-Id: I07094305b7697550dac8667a26e150ca23560e41
diff --git a/doc/lfun/AddInfo b/doc/lfun/AddInfo
index c684fe0..76c6e1c 100644
--- a/doc/lfun/AddInfo
+++ b/doc/lfun/AddInfo
@@ -6,8 +6,8 @@
 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
@@ -19,22 +19,23 @@
 ARGUMENTE
 =========
 
-   string/string* frage
-      Schluesseltext(e) auf die Informationen gegeben werden sollen.
+   string|string* frage
+      Schluesselwoerter, fuer die der NPC eine Antwort geben soll,
+      wenn man ihn danach fragt
 
-   string/closure meldung
+   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
-      Closure mit Returnwert string oder int. Bekommt nichts
-      uebergeben.
+   string|closure casebased   (optional)
+      Closure mit Returnwert string oder int. Der Funktion werden
+      keine Argumente uebergeben.
 
 
 BESCHREIBUNG
@@ -79,7 +80,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- werten von
@@ -265,4 +266,4 @@
    Interna:
       GetInfoArr() , do_frage()
 
-7. Mar 2017 Gloinson
+24.09.2020, Arathorn
diff --git a/doc/lfun/AddMoney b/doc/lfun/AddMoney
index 8f15cc6..6518215 100644
--- a/doc/lfun/AddMoney
+++ b/doc/lfun/AddMoney
@@ -69,10 +69,10 @@
 BEISPIELE
 =========
 
-   #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
@@ -86,9 +86,11 @@
 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/lfun/AddRoomMessage b/doc/lfun/AddRoomMessage
index 82c2c99..47e2b60 100644
--- a/doc/lfun/AddRoomMessage
+++ b/doc/lfun/AddRoomMessage
@@ -66,7 +66,7 @@
        verlassen haben
 
      * ist manuell nur ueber Loeschen der Nachrichten umsetzbar,
-       also mit "AddRoomMessage((string)0, 0, (string)0);"
+       also mit "AddRoomMessage(0, 0, 0);"
 
    In Funktionen, die durch AddRoomMessage() ausgeloest werden, darf
    this_player() nicht verwendet werden, da die call_out()-Kette den
@@ -130,7 +130,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/lfun/AddSpecialInfo b/doc/lfun/AddSpecialInfo
index efc3067..be61558 100644
--- a/doc/lfun/AddSpecialInfo
+++ b/doc/lfun/AddSpecialInfo
@@ -6,23 +6,31 @@
 FUNKTION
 ========
 
-   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
@@ -83,6 +91,19 @@
 SIEHE AUCH
 ==========
 
-   AddInfo(L), RemoveInfo(L)
+   Verwandt:
+      AddInfo(), RemoveInfo()
 
-7.Apr 2004 Gloinson
+   Props:
+      P_PRE_INFO
+
+   Files:
+      /std/npc/info.c
+
+   Loggen:
+      P_LOG_INFO
+
+   Interna:
+      GetInfoArr() , do_frage()
+
+24.09.2020, Arathorn
diff --git a/doc/lfun/Attack b/doc/lfun/Attack
index 08a0c20..1e958de 100644
--- a/doc/lfun/Attack
+++ b/doc/lfun/Attack
@@ -18,8 +18,8 @@
 BESCHREIBUNG
 ============
 
-   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
@@ -33,10 +33,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/lfun/CheckResistance b/doc/lfun/CheckResistance
index bcf64ca..52bfe23 100644
--- a/doc/lfun/CheckResistance
+++ b/doc/lfun/CheckResistance
@@ -6,7 +6,7 @@
 FUNKTION
 ========
 
-   CheckRessistance(string* dam_type_list)
+   public float CheckResistance(string* dam_type_list)
 
 
 ARGUMENTE
@@ -34,4 +34,4 @@
 SIEHE AUCH
 ==========
 
-   "Defend"
+   Defend(), P_RESISTANCE_STRENGTHS
diff --git a/doc/lfun/DefendFunc b/doc/lfun/DefendFunc
index 5338a9f..00bfc91 100644
--- a/doc/lfun/DefendFunc
+++ b/doc/lfun/DefendFunc
@@ -61,46 +61,43 @@
 BEISPIELE
 =========
 
-   Eine Ruestung, die bei Angriffen mit Feuer ihre volle Staerke
-   entfaltet und bei Angriffen durch Geister geschwaecht wird:
+   Eine Ruestung, die bei Angriffen mit Feuer ihre volle Staerke entfaltet
+   und bei Angriffen durch Geister geschwaecht wird:
 
-   protected void create() {
+   protected void create()
+   {
+     ::create();
 
-      ::create();
-
-      SetProp(P_ARMOUR_TYPE, AT_ARMOUR); SetProp(P_AC, 20); ... // Die
-      DefendFunc() ist in der Ruestung selbst definiert
-      SetProp(P_DEFEND_FUNC, this_object());
-
+     SetProp(P_ARMOUR_TYPE, AT_ARMOUR);
+     SetProp(P_AC, 20);
+     ...
+     // Die DefendFunc() ist in der Ruestung selbst definiert
+     SetProp(P_DEFEND_FUNC, this_object());
    }
 
-   public int DefendFunc(string* dtyp, mapping spell, object enemy) {
+   public int DefendFunc(string* dtyp, mapping spell, object enemy)
+   {
+     int prot;
 
-      int prot;
+     // Zuerst fragen wir den Angriff durch Feuer ab:
+     if (member(dtyp, DT_FIRE) >= 0)  // Feuer gehoert zu den Schadenstypen
+       prot = 5 + random(10); // Das ergibt maximal 14. Zusammen mit P_AC
+                              // kommt man also maximal auf 14+20 = 34,
+                              // liegt also unter der fuer AT_ARMOUR
+                              // geltenden Obergrenze
 
-      // Zuerst fragen wir den Angriff durch Feuer ab: if
-      (member(dtyp, DT_FIRE) >= 0)  // Feuer gehoert zu den
-      Schadenstypen
+     // Und jetzt der Geistertest
+     if (enemy->QueryProp(P_RACE) == "Geist" ||
+         enemy->is_class_member(CL_GHOST))
+       prot -= random(10);
 
-         prot = 5 + random(10); // Das ergibt maximal 14. Zusammen mit
-         P_AC
-            // kommt man also maximal auf 14+20 = 34, // liegt also
-            unter der fuer AT_ARMOUR // geltenden Obergrenze
-
-      // Und jetzt der Geistertest if (enemy->QueryProp(P_RACE) ==
-      "Geist" ||
-
-            enemy->is_class_member(CL_GHOST))
-
-         prot -= random(10);
-
-      // Der Rueckgabewert wird auf den aus P_AC errechneten Wert
-      draufgeschlagen return prot;
-
+     // Der Rueckgabewert wird auf den aus P_AC errechneten Wert
+     // draufgeschlagen
+     return prot;
    }
 
 
 SIEHE AUCH
 ==========
 
-   P_DEFEND_FUNC, *QueryDefendd* /std/armour/combat.c
+   P_DEFEND_FUNC, QueryDefend() /std/armour/combat.c
diff --git a/doc/lfun/QueryArmourByType b/doc/lfun/QueryArmourByType
index 20fcab5..5c9da6f 100644
--- a/doc/lfun/QueryArmourByType
+++ b/doc/lfun/QueryArmourByType
@@ -10,7 +10,7 @@
 FUNKTION
 ========
 
-   mixed QueryArmourByType(string type)
+   object|object*|mapping QueryArmourByType(string type)
 
 
 DEFINIERT IN
@@ -31,17 +31,27 @@
 
    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/lfun/create_default_npc b/doc/lfun/create_default_npc
index 09c3a14..fac3fe2 100644
--- a/doc/lfun/create_default_npc
+++ b/doc/lfun/create_default_npc
@@ -47,7 +47,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