NotifyPlayerDeath() bei Gifttoden mit 0 aufrufen

(Fast) alle NotifyPlayerDeath() gehen davon aus, dass <killer> nur
ein Objekt ist. Daher wird im Falle von Gifttoden - wenn <killer>
ein string ist, immer 0 als <killer> uebergehen.

Change-Id: Id619ba4d82c5ff58c336d5c0aef541ff1d41a537
diff --git a/doc/lfun/NotifyPlayerDeath b/doc/lfun/NotifyPlayerDeath
index 96678ea..924a704 100644
--- a/doc/lfun/NotifyPlayerDeath
+++ b/doc/lfun/NotifyPlayerDeath
@@ -19,11 +19,13 @@
 =========
 
    victim
-     Getoeteter Spieler.
+      Getoeteter Spieler.
+
    killer
-     Objekt, welches den Spieler getoetet hat.
+      Objekt, welches den Spieler getoetet hat.
+
    lost_exp
-     Erfahrungspunkte, die der Spieler durch den Tod verloren hat.
+      Erfahrungspunkte, die der Spieler durch den Tod verloren hat.
 
 
 BESCHREIBUNG
@@ -31,27 +33,34 @@
 
    Diese Funktion wird aus dem Spielerobjekt heraus immer dann
    aufgerufen, wenn der Spieler stirbt und zwar:
-     1) im Gegner, der den Spieler getoetet hat,
-     2) im Environment des getoeteten Spielers,
-     3) in der Gilde des Spielers,
-     4) in allen Objekten in diesem Environment und
-     5) in allen Objekten (auch innerhalb Containern) im Spieler.
+
+      1. im Gegner, der den Spieler getoetet hat,
+
+      2. im Environment des getoeteten Spielers,
+
+      3. in der Gilde des Spielers,
+
+      4. in allen Objekten in diesem Environment und
+
+      5. in allen Objekten (auch innerhalb Containern) im Spieler.
+
    Der Gegner wird hierbei nur einmal informiert, also bei letzteren
-   Faellen herausgefiltert, falls noetig!
-   Hauptaufgabe dieser Funktion ist es somit, auf Tode von Spielern zu
-   reagieren oder selbige einfach nur mitzuloggen.
+   Faellen herausgefiltert, falls noetig! Hauptaufgabe dieser Funktion
+   ist es somit, auf Tode von Spielern zu reagieren oder selbige
+   einfach nur mitzuloggen.
 
-   Zu dem Zeitpunkt des Aufrufs dieser Funktion ist der Spieler noch _nicht_
-   Geist und noch _nicht_ im Todesraum - dies wird im Anschluss an den Aufruf
-   der NotifyPlayerDeath() durchgefuehrt.
+   Zu dem Zeitpunkt des Aufrufs dieser Funktion ist der Spieler noch
+   _nicht_ Geist und noch _nicht_ im Todesraum - dies wird im
+   Anschluss an den Aufruf der NotifyPlayerDeath() durchgefuehrt.
 
+   Wenn ein Spieler an Gift stirbt, gibt es kein Killerobjekt - in dem
+   Fall ist <killer> 0. (P_KILLER im Opfer ist in diesem Fall "gift".)
 
-
-   Aufgerufen wird die Funktion aus '/std/player/life.c' mittels catch() und
-   werden mit limited() auf max. 150k (Gegner, Environment, Gilde) bzw. 80k
-   (alle anderen Objekte) Ticks beschraenkt.
-   Fehler in dieser Funktion haben somit keine negativen Auswirkungen
-   auf das Sterben des Spielers.
+   Aufgerufen wird die Funktion aus '/std/player/life.c' mittels
+   catch() und werden mit limited() auf max. 150k (Gegner,
+   Environment, Gilde) bzw. 80k (alle anderen Objekte) Ticks
+   beschraenkt. Fehler in dieser Funktion haben somit keine negativen
+   Auswirkungen auf das Sterben des Spielers.
 
 
 RUeCKGABEWERT
@@ -68,21 +77,22 @@
    haeufigsten auftretenden Fall bezogen, dass nur das toetende Objekt
    den Tod protokollieren soll):
 
-     void NotifyPlayerDeath(object dead, object killer, int lost_exp)
-     {
-       if ( intp(lost_exp) && objectp(dead) && objectp(killer) &&
-            killer==this_object() )
-         write_file( "/log/patryn/dead", sprintf(
-           "%s - %s von %s getoetet. XP: -%d", ctime(), getuid(dead),
-            killer->name(WEM), lost_exp) );
-     }
+      void NotifyPlayerDeath(object dead, object killer, int lost_exp)
+      {
+        if ( intp(lost_exp) && objectp(dead) && objectp(killer) &&
+             killer==this_object() )
+          write_file( "/log/patryn/dead", sprintf(
+            "%s - %s von %s getoetet. XP: -%d", ctime(), getuid(dead),
+             killer->name(WEM), lost_exp) );
+      }
 
-   Bitte beachten: write_file() schreibt ohne Groessenbegrenzung in das
-   Logfile. Da dies auf Dauer bzw. in Gebieten mit hoher Log-Aktivitaet
-   zu Logfiles von enormer Groesse fuehren kann, ist die Verwendung
-   von write_file() nicht empfehlenswert. Ausnahmen koennen natuerlich
-   mit dem zustaendigen Regionsmagier abgesprochen werden, z.B. fuer
-   begrenzte Anwendung etwa bei sehr starken, selten besiegten Gegnern.
+   Bitte beachten: write_file() schreibt ohne Groessenbegrenzung in
+   das Logfile. Da dies auf Dauer bzw. in Gebieten mit hoher Log-
+   Aktivitaet zu Logfiles von enormer Groesse fuehren kann, ist die
+   Verwendung von write_file() nicht empfehlenswert. Ausnahmen koennen
+   natuerlich mit dem zustaendigen Regionsmagier abgesprochen werden,
+   z.B. fuer begrenzte Anwendung etwa bei sehr starken, selten
+   besiegten Gegnern.
 
    Weiterhin ist es empfehlenswert, das toetende Objekt (killer) nicht
    im NotifyPlayerDeath() zu zestoeren, sondern etwas zeitversetzt,
@@ -93,7 +103,7 @@
 SIEHE AUCH
 ==========
 
-   Defend(), do_damage(), NotifyHpChange(), catch(), write_file(), log_file()
-   P_LAST_DEATH_PROPS
+   Defend(), do_damage(), *../efun/catch*, *../efun/write_file*,
+   log_file() P_LAST_DEATH_PROPS
 
-24.03.2012, Zesstra
+04.04.2020, Zesstra