diff --git a/doc/lfun-liste b/doc/lfun-liste
index 029734d..ea3c7f3 100644
--- a/doc/lfun-liste
+++ b/doc/lfun-liste
@@ -440,6 +440,8 @@
 
 * QueryDefend()
 
+* QueryDefenders()
+
 * QueryDisguise()
 
 * QueryDoorKey()
@@ -472,6 +474,8 @@
 
 * QueryName()
 
+* QueryNearDefenders()
+
 * QueryOpenMiniQuestsForPlayer()
 
 * QueryOwn()
@@ -486,6 +490,8 @@
 
 * QueryPreferedEnemy()
 
+* QueryPresentDefenders()
+
 * QueryPronoun()
 
 * QueryProp()
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
diff --git a/doc/props/P_DEFENDERS b/doc/props/P_DEFENDERS
index a54134a..6820004 100644
--- a/doc/props/P_DEFENDERS
+++ b/doc/props/P_DEFENDERS
@@ -6,7 +6,7 @@
 NAME
 ====
 
-   P_DEFENDERS                     "defenders"
+   P_DEFENDERS      "defenders"
 
 
 DEFINIERT IN
@@ -20,26 +20,26 @@
 
    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
+   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().
+   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.
+
+   ACHTUNG: Auf diese Property nicht von Hand zugreifen, sondern bitte
+   die entsprechende Zugriffsfunktion verwenden.
 
 
 SIEHE AUCH
 ==========
 
-   AddDefender(), RemoveDefender(), InformDefend(), DefendOther(),
-   /std/living/combat.c
+   *AddDefender*, *RemoveDefender*, *QueryDefenders*,
+   *QueryPresentDefenders*, *QueryNearDefenders*, *InformDefend*,
+   *DefendOther*, /std/living/combat.c
 
-Last modified: 21.09.2007, Zesstra
+Letzte Aenderung: 28.10.2022, Bugfix
