diff --git a/doc/lfun/AddDefender b/doc/lfun/AddDefender
index 5b33e14..f0e2c22 100644
--- a/doc/lfun/AddDefender
+++ b/doc/lfun/AddDefender
@@ -19,8 +19,8 @@
 =========
 
    friend
-     Objekt (normal Lebewesen), welches zukuenftig ueber Angriffe
-     informiert werden soll oder diese sogar abwehrt.
+      Objekt (normal Lebewesen), welches zukuenftig ueber Angriffe
+      informiert werden soll oder diese sogar abwehrt.
 
 
 BESCHREIBUNG
@@ -33,18 +33,13 @@
    Im Normalfall handelt es sich hierbei um andere Lebewesen, welche
    als Verteidiger des angegriffenen Lebewesens auftreten: Daher der
    Name der Funktion.
-   Die Objekte sind in Form eines Arrays in der Property P_DEFENDERS
-   abgespeichert und koennen dort abgerufen werden. Natuerlich kann
-   man weitere Objekte direkt dort eintragen, jedoch sollte man die
-   hierfuer bereitgestellte Funktionen AddDefender() verwenden.
-   Zum Loeschen von Eintraegen im Array steht ebenfalls eine Funktion
-   bereit: RemoveDefender().
 
 
 SIEHE AUCH
 ==========
 
-   RemoveDefender(), InformDefend(), DefendOther(),
-   P_DEFENDERS, /std/living/combat.c
+   RemoveDefender(), QueryDefenders(), QueryPresentDefenders(),
+   QueryNearDefenders(), InformDefend(), DefendOther(),
+   *../props/P_DEFENDER*, /std/living/combat.c
 
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/DefendOther b/doc/lfun/DefendOther
index ea9f8e5..feefcc1 100644
--- a/doc/lfun/DefendOther
+++ b/doc/lfun/DefendOther
@@ -7,7 +7,7 @@
 ========
 
    public <int|string*|mapping|object>* DefendOther(int dam,
-                      string* dam_type, int|mapping si_spell, object enemy)
+      string* dam_type, int|mapping si_spell, object enemy)
 
 
 DEFINIERT IN
@@ -20,20 +20,20 @@
 =========
 
    int dam
-     Der Schaden, der voraussichtlich beim zu verteidigenden Lebewesen
-     verursacht werden soll.
+      Der Schaden, der voraussichtlich beim zu verteidigenden
+      Lebewesen verursacht werden soll.
 
    string* dam_type
-     Der Schadenstyp (oder die Schadenstypen), der beim zu
-     verteidigenden Lebewesen verursacht werden sollen.
+      Der Schadenstyp (oder die Schadenstypen), der beim zu
+      verteidigenden Lebewesen verursacht werden sollen.
 
    mapping si_spell
-     Mapping mit zusaetzlichen Informationen zum Angriff
-     Alte Objekte uebergeben manchmal einen Integer (0 fuer
-     physikalischen Angriff, 1 fuer Zauber.
+      Mapping mit zusaetzlichen Informationen zum Angriff Alte Objekte
+      uebergeben manchmal einen Integer (0 fuer physikalischen
+      Angriff, 1 fuer Zauber.
 
    object enemy
-     Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
+      Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
 
 
 RUeCKGABEWERT
@@ -51,11 +51,10 @@
 
    Es ist moeglich, dass Objekte Angriffe auf Lebewesen abwehren oder
    umwandeln, sofern diese Objekte bei dem angegriffenen Lebewesen
-   mittels AddDefender() angemeldet wurden und sich der selben Umgebung
-   befinden.
-   Zumeist wird es sich bei den Objekten natuerlich ebenfalls um
-   andere Lebewesen handeln, die das Lebewesen, bei dem sie angemeldet
-   sind, verteidigen sollen.
+   mittels AddDefender() angemeldet wurden und sich der selben
+   Umgebung befinden. Zumeist wird es sich bei den Objekten natuerlich
+   ebenfalls um andere Lebewesen handeln, die das Lebewesen, bei dem
+   sie angemeldet sind, verteidigen sollen.
 
    Bei einem Angriff auf das Lebewesen koennen alle Objekte per Aufruf
    von DefendOther() in einen Angriff eingreifen, wobei die
@@ -118,8 +117,9 @@
 ==========
 
    Funktionen:
-      AddDefender(), RemoveDefender(), InformDefend(), Kill(),
-      IsEnemy(), Defend()
+      AddDefender(), RemoveDefender(), InformDefend(), DefendOther(),
+      Kill(), IsEnemy(), Defend(), QueryDefenders(),
+      QueryPresentDefenders(), QueryNearDefenders(),
 
    Properties
       P_DEFENDERS
diff --git a/doc/lfun/HRegisterToHook b/doc/lfun/HRegisterToHook
index 3a26017..7864d62 100644
--- a/doc/lfun/HRegisterToHook
+++ b/doc/lfun/HRegisterToHook
@@ -46,41 +46,25 @@
 
    Registriert ein Objekt oder eine Closure als Hook-Konsument.
 
-   Die Callback-Methode wird mit folgenden Argumenten gerufen:
-
-   * object hooksource: das Objekt, in welchem das Ereignis
-     ausgeloest wurde
-
-   * int hookid: die ID des Hooks
-
-   * mixed hookdata: die Daten des Hooks (siehe Doku zum jeweiligen
-     Hook)
+   Die Callback-Methode wird mit folgenden Argumenten gerufen: -
+   object hooksource: das Objekt, in welchem das Ereignis ausgeloest
+   wurde - int hookid: die ID des Hooks - mixed hookdata: die Daten
+   des Hooks (siehe Doku zum jeweiligen Hook)
 
    Fuer hookprio sind folgende Werte vorgesehen (Konstanten aus
-   hook.h):
-
-   * H_HOOK_LIBPRIO(x)
-
-   * H_HOOK_GUILDPRIO(x) oder
-
-   * H_HOOK_OTHERPRIO(x).
-
-   x darf 0, 1 oder 2 sein (je niedriger, desto hoeher die
-   Prioritaet).
+   hook.h): - H_HOOK_LIBPRIO(x) - H_HOOK_GUILDPRIO(x) oder -
+   H_HOOK_OTHERPRIO(x). x darf 0, 1 oder 2 sein (je niedriger, desto
+   hoeher die Prioritaet).
 
    Fuer consumertype gibt es vier festgelegte Arten, die fuer alle
    Hooks existieren koennen, aber nicht muessen (Konstanten aus
-   hook.h):
+   hook.h): - H_LISTENER: Wird nur informiert - H_DATA_MODIFICATOR:
+   Kann Daten des Ereignisses aendern - H_HOOK_MODIFICATOR: Kann das
+   Ereignis zusaetzlich abbrechen - H_HOOK_SURVEYOR: Kann zusaetzlich
+   entscheiden, ob sich Objekte
 
-   * H_LISTENER: Wird nur informiert
-
-   * H_DATA_MODIFICATOR: Kann Daten des Ereignisses aendern
-
-   * H_HOOK_MODIFICATOR: Kann das Ereignis zusaetzlich abbrechen
-
-   * H_HOOK_SURVEYOR: Kann zusaetzlich entscheiden, ob sich Objekte
-     registrieren, Daten modifizieren oder Ereignisse abbrechen
-     koennen
+      registrieren, Daten modifizieren oder Ereignisse abbrechen
+      koennen
 
    Die Methode  *HConsumerTypeIsAllowed* gibt Aufschluss darueber,
    welche Consumer-Typen tatsaechlich freigegeben sind.
@@ -89,22 +73,15 @@
 RUECKGABEWERTE
 ==============
 
-   1  : Registrierung erfolgreich
+   1  : Registrierung erfolgreich -1 : Hook unbekannt -2 : consumer
+   ist keine closure und es konnte kein Callback auf
 
-   -1 : Hook unbekannt
-
-   -2 : consumer ist keine closure und es konnte kein Callback auf
       HookCallback im consumer erstellt werden.
 
-   -3 : Consumer ist bereits registriert
-
-   -4 : Consumer-Typ ist nicht erlaubt
-
-   -5 : hookprio ist nicht erlaubt
-
-   -6 : Surveyor hat Registrierung nicht erlaubt
-
-   -7 : zuviele Hooks registriert / kein Hookeintrag frei
+   -3 : Consumer ist bereits registriert -4 : Consumer-Typ ist nicht
+   erlaubt -5 : hookprio ist nicht erlaubt -6 : Surveyor hat
+   Registrierung nicht erlaubt -7 : zuviele Hooks registriert / kein
+   Hookeintrag frei
 
 
 SIEHE AUCH
diff --git a/doc/lfun/InformDefend b/doc/lfun/InformDefend
index d6a401e..7fa975d 100644
--- a/doc/lfun/InformDefend
+++ b/doc/lfun/InformDefend
@@ -19,7 +19,7 @@
 =========
 
    enemy
-     Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
+      Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
 
 
 BESCHREIBUNG
@@ -28,15 +28,14 @@
    Es ist moeglich, dass Objekte ueber Angriffe auf Lebewesen
    informiert werden, sofern diese Objekte bei dem angegriffenen
    Lebewesen mittels AddDefender() angemeldet wurden und sich der
-   selben Umgebung befinden.
-   Zumeist wird es sich bei den Objekten natuerlich ebenfalls um
-   andere Lebewesen handeln, die das Lebewesen, bei dem sie angemeldet
-   sind, verteidigen sollen.
-   Bei einem Angriff auf das Lebewesen werden alle Objekte per Aufruf
-   von InformDefend() darueber informiert, wobei der Angreifer als
-   Parameter uebergeben wird.
-   Standardmaessig ist diese Funktion in Lebewesen bereits definiert,
-   wobei der Skill SK_INFORM_DEFEND, sofern vorhanden, aufgerufen wird.
+   selben Umgebung befinden. Zumeist wird es sich bei den Objekten
+   natuerlich ebenfalls um andere Lebewesen handeln, die das
+   Lebewesen, bei dem sie angemeldet sind, verteidigen sollen. Bei
+   einem Angriff auf das Lebewesen werden alle Objekte per Aufruf von
+   InformDefend() darueber informiert, wobei der Angreifer als
+   Parameter uebergeben wird. Standardmaessig ist diese Funktion in
+   Lebewesen bereits definiert, wobei der Skill SK_INFORM_DEFEND,
+   sofern vorhanden, aufgerufen wird.
 
 
 BEISPIEL
@@ -44,28 +43,40 @@
 
    Sehr beliebt sind in Gilden NPCs, die den Beschwoerer begleiten und
    verteidigen, z.B. beschworene Daemonen:
-     inherit "std/npc";
-     include <properties.h>
-     object owner;
-     void create()
-     { ::create();
-       SetProp(P_NAME,"Daemon");
-       ...
-     }
+
+   inherit "/std/npc";
+
+   #include <properties.h>
+
+   object owner;
+
+   protected void create()
+   {
+     ::create();
+     SetProp(P_NAME,"Daemon");
+     ...
+   }
+
    // nach Clonen des Daemons folgende Funktion mit Beschwoerer als
    // Parameter aufrufen
-     Identify(object caster)
-     { if(!objectp(caster))
-         call_out(#'remove,0);
-       owner=caster;
-       owner->AddDefender(this_object());
-     }
+
+   void Identify(object caster)
+   {
+     if(!objectp(caster))
+       call_out(#'remove,0);
+     owner=caster;
+     owner->AddDefender(this_object());
+   }
+
    // folgende Funktion wird automatisch aufgerufen, wenn der
    // Beschwoerer angegriffen wird
-     void InformDefend(object enemy)
-     { if(!IsEnemy(enemy)&&enemy!=owner)
-         Kill(enemy);
-     }
+
+   public void InformDefend(object enemy)
+   {
+     if(!IsEnemy(enemy)&&enemy!=owner)
+       Kill(enemy);
+   }
+
    Soll der Daemon sich auch in ein Team einordnen, in welchem sich der
    Beschwoerer eventuell befindet, so ist zusaetzlich AssocMember() in
    diesem Beschwoerer aufzurufen, wobei der Daemon als Parameter
@@ -75,7 +86,8 @@
 SIEHE AUCH
 ==========
 
-   AddDefender(), RemoveDefender(), DefendOther(), Kill(), IsEnemy(),
-   P_DEFENDERS, /std/living/combat.c, /sys/new_skills.h
+   AddDefender(), RemoveDefender(), QueryDefenders(),
+   QueryPresentDefenders(), QueryNearDefenders(), DefendOther(),
+   *../props/P_DEFENDER*, /std/living/combat.c
 
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/QueryDefenders b/doc/lfun/QueryDefenders
new file mode 100644
index 0000000..1c1bae8
--- /dev/null
+++ b/doc/lfun/QueryDefenders
@@ -0,0 +1,38 @@
+
+QueryDefenders()
+****************
+
+
+FUNKTION
+========
+
+   public object* QueryDefenders()
+
+
+DEFINIERT IN
+============
+
+   /std/living/combat.c
+
+
+RUECKGABEWERT
+=============
+
+   Object-Array mit den eingetragenen Defendern.
+
+
+BESCHREIBUNG
+============
+
+   Gibt eine um zerstoerte Objekte bereinigte Kopie von P_DEFENDERS
+   zurueck.
+
+
+SIEHE AUCH
+==========
+
+   AddDefender(), RemoveDefender(), QueryPresentDefenders(),
+   QueryNearDefenders(), InformDefend(), DefendOther(),
+   *../props/P_DEFENDER*, /std/living/combat.c
+
+Letzte Aenderung: 29.10.2022, Bugfix
diff --git a/doc/lfun/QueryNearDefenders b/doc/lfun/QueryNearDefenders
new file mode 100644
index 0000000..2526ebd
--- /dev/null
+++ b/doc/lfun/QueryNearDefenders
@@ -0,0 +1,48 @@
+
+QueryNearDefenders()
+********************
+
+
+FUNKTION
+========
+
+   public object* QueryNearDefenders(object* defenders)
+
+
+DEFINIERT IN
+============
+
+   /std/living/combat.c
+
+
+ARGUMENTE
+=========
+
+   object* defenders: Ein Object-Array mit Defendern, aus denen
+   ausgewaehlt
+      werden soll.
+
+
+RUeCKGABEWERT
+=============
+
+   Object-Array mit den nahen Verteidigern (s.u.).
+
+
+BESCHREIBUNG
+============
+
+   Gibt ein Object-Array mit den Defendern im Environment von
+   this_object() oder in this_object() zurueck, die in Reihe 1 stehen
+   oder in keinem Team sind. Wird <defenders> nicht uebergeben, wird
+   das Ergebnis von QueryDefenders() benutzt.
+
+
+SIEHE AUCH
+==========
+
+   AddDefender(), RemoveDefender(), QueryDefenders(),
+   QueryPresentDefenders(), InformDefend(), DefendOther(),
+   *../props/P_DEFENDER*, /std/living/combat.c
+
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/QueryPresentDefenders b/doc/lfun/QueryPresentDefenders
new file mode 100644
index 0000000..37e0d6c
--- /dev/null
+++ b/doc/lfun/QueryPresentDefenders
@@ -0,0 +1,48 @@
+
+QueryPresentDefenders()
+***********************
+
+
+FUNKTION
+========
+
+   public object* QueryPresentDefenders(object* defenders)
+
+
+DEFINIERT IN
+============
+
+   /std/living/combat.c
+
+
+ARGUMENTE
+=========
+
+   object* defenders: Ein Object-Array mit Defendern, aus denen
+   ausgewaehlt
+      werden soll.
+
+
+RUeCKGABEWERT
+=============
+
+   Object-Array mit den eingetragenen Defendern im gleichen
+   Environment oder in this_object().
+
+
+BESCHREIBUNG
+============
+
+   Gibt ein Object-Array mit den Defendern im Environment von
+   this_object() oder in this_object() zurueck. Wird <defenders> nicht
+   uebergeben, wird das Ergebnis von QueryDefenders() benutzt.
+
+
+SIEHE AUCH
+==========
+
+   AddDefender(), RemoveDefender(), QueryDefenders(),
+   QueryNearDefenders(), InformDefend(), DefendOther(),
+   *../props/P_DEFENDER*, /std/living/combat.c
+
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/RemoveDefender b/doc/lfun/RemoveDefender
index 1dec97a..a8b6863 100644
--- a/doc/lfun/RemoveDefender
+++ b/doc/lfun/RemoveDefender
@@ -19,8 +19,9 @@
 =========
 
    friend
-     Objekt (normal Lebewesen), welches zukuenftig nicht mehr ueber
-     Angriffe informiert werden soll und diese auch nicht mehr abwehrt.
+      Objekt (normal Lebewesen), welches zukuenftig nicht mehr ueber
+      Angriffe informiert werden soll und diese auch nicht mehr
+      abwehrt.
 
 
 BESCHREIBUNG
@@ -35,18 +36,13 @@
    Name der Funktion. Ausserdem besteht die Einschraenkung, dass diese
    Objekte in der gleichen Umgebung sein muessen, wie das zu
    verteidigende Lebewesen.
-   Die Objekte sind in Form eines Arrays in der Property P_DEFENDERS
-   abgespeichert und koennen dort abgerufen werden. Natuerlich kann
-   man alte Objekte direkt dort loeschen, jedoch sollte man die
-   hierfuer bereitgestellte Funktionen RemoveDefender() verwenden.
-   Zum Hinzufuegen von Eintraegen im Array steht ebenfalls eine
-   Funktion bereit: AddDefender().
 
 
 SIEHE AUCH
 ==========
 
-   AddDefender(), InformDefend(), DefendOther(),
-   P_DEFENDERS, /std/living/combat.c
+   AddDefender(), QueryDefenders(), QueryPresentDefenders(),
+   QueryNearDefenders(), InformDefend(), DefendOther(),
+   *../props/P_DEFENDER*, /std/living/combat.c
 
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
+Letzte Aenderung: 28.10.2022, Bugfix
diff --git a/doc/lfun/SetChats b/doc/lfun/SetChats
index a74e69f..c4fe633 100644
--- a/doc/lfun/SetChats
+++ b/doc/lfun/SetChats
@@ -21,8 +21,9 @@
    int chance
       Prozentuale Wahrscheinlichkeit einer Ausgabe
 
-   mixed strs
+   <string|closure|<string|closure|int>* >* strs
       Array mit den verschiedenen Moeglichkeiten der Monsterchats
+      (optional)
 
 
 BESCHREIBUNG
@@ -30,20 +31,24 @@
 
    Der NPC gibt mit der Wahrscheinlichkeit <chance> pro Heartbeat
    einen zufaellig gewaehlten Text aus dem Array <strs> in den Raum
-   aus. Dabei wird per Default send_room() ohne erneutes Umbrechen mit
-   den Messagetypen MT_LOOK|MT_LISTEN|MT_FEEL|MT_SMELL verwendet.
+   aus. Wird kein <strs> uebergeben, wird nur die Chat-Chance
+   geaendert und die bisherigen Chats werden beibehalten.
 
-   Die einzelnen Arrayelemente koennen:
+   Per Default wird send_room() ohne erneutes Umbrechen mit den
+   Messagetypen MT_LOOK|MT_LISTEN|MT_FEEL|MT_SMELL zur Ausgabe
+   verwendet.
 
-      * Strings sein
+   Die einzelnen Arrayelemente koennen sein:
 
-      * Closures sein, deren Rueckgabe ausgegeben wird und die
+      * Strings
+
+      * Closures, deren Rueckgabe ausgegeben wird und die
         zusaetzlich einen aenderbaren und in send_room() verwendeten
         'msg_typ' per Referenz uebergeben bekommen
 
       * Arrays mit der Struktur *({<string|closure msg >, <int
-        msg_typ>})* sein, fuer die obige Regeln auf 'msg' angewendet
-        werden und bei denen 'msg_typ' im send_room() verwendet wird
+        msg_typ>})*, fuer die obige Regeln auf 'msg' angewendet werden
+        und bei denen 'msg_typ' im send_room() verwendet wird
 
    Fuer keine Ausgabe muss man einen Leerstring "" zurueckgeben oder
    verwenden. In allen Funktionen ist this_player() das Monster
