Zugriffsfunktionen fuer P_DEFENDERS

P_DEFENDERS sollte nicht von Hand verwaltet werden, daher gibt es jetzt
auch Funktionen fuer die Abfrage.

- QueryDefenders() liefert alle eingetragenen Defender.
- QueryPresentDefenders() alle anwesenden.
- QueryNearDefenders() alle anwesenden in Reihe 1 fuer physikalische
  Angriffe.

Change-Id: I90d49ac8a65b05178f5cfeb9e91fb694e5b7ac12
diff --git a/doc/sphinx/lfun/InformDefend.rst b/doc/sphinx/lfun/InformDefend.rst
index fbc0b12..df3fa9c 100644
--- a/doc/sphinx/lfun/InformDefend.rst
+++ b/doc/sphinx/lfun/InformDefend.rst
@@ -3,80 +3,88 @@
 
 FUNKTION
 --------
-::
 
-	void InformDefend(object enemy);
+  void InformDefend(object enemy);
 
 DEFINIERT IN
 ------------
-::
 
-	/std/living/combat.c
+  /std/living/combat.c
 
 ARGUMENTE
 ---------
-::
 
-	enemy
-	  Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
+  enemy
+    Der Feind, der ein zu verteidigendes Lebewesen angegriffen hat.
 
 BESCHREIBUNG
 ------------
-::
 
-	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.
+  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.
 
 BEISPIEL
 --------
-::
 
-	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");
-	    ...
-	  }
-	// 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());
-	  }
-	// folgende Funktion wird automatisch aufgerufen, wenn der
-	// Beschwoerer angegriffen wird
-	  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
-	uebergeben wird.
+  Sehr beliebt sind in Gilden NPCs, die den Beschwoerer begleiten und
+  verteidigen, z.B. beschworene Daemonen:
+
+.. code-block:: pike
+
+  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
+
+  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
+
+  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
+  uebergeben wird.
 
 SIEHE AUCH
 ----------
-::
 
-	AddDefender(), RemoveDefender(), DefendOther(), Kill(), IsEnemy(),
-	P_DEFENDERS, /std/living/combat.c, /sys/new_skills.h
+  :doc:`AddDefender`, :doc:`RemoveDefender`, :doc:`QueryDefenders`, 
+  :doc:`QueryPresentDefenders`, :doc:`QueryNearDefenders`, 
+  :doc:`DefendOther`,
+  :doc:`../props/P_DEFENDER`, /std/living/combat.c
 
-
-Last modified: Thu Jul 29 18:48:45 1999 by Patryn
-
+Letzte Aenderung: 28.10.2022, Bugfix