
P_DEATH_MSG
***********


DEFINIERT IN
============

   /sys/living/combat.h


BESCHREIBUNG
============

   In dieser Property kann man ein Array ablegen, das beim Tod eines
   Spielers ausgewertet und der darin enthaltene String
   anschliessend auf dem Todeskanal gesendet wird.
   Der Array muss folgenden Aufbau haben:

     SetProp( P_DEATH_MSG, ({ Text, Flag }) )



   Text: Der Text kann beliebig eingegeben werde. Allerdings darf
         er nicht mit einem '\n' abgeschlossen werden.



   Flag: Hier kann man drei Arten von Sendemethoden waehlen.
         1. MSG_SAY      Normales Senden
         2. MSG_GEMOTE   Genitiv-Emote
         3. MSG_EMOTE    Emote


BEISPIEL
========

   Der Spieler soll direkt nach seinem Tod eine Meldung auf dem
   Todeskanal senden.



   Nachricht auf dem Todes-Kanal:



   [Tod:Spieler] Ich will keine Beleidsbekundungen!



   void spieler_stirbt()
   {
    this_player()->SetProp( P_DEATH_MSG, ({ "Ich will keine "
                                   "Beleidsbekundungen!", MSG_SAY}) );
    this_player()->die();
   }



   Nachricht auf dem Todes-Kanal:



   [Tod:Spieler liebt es zu sterben.]



   void spieler_stirbt()
   {
    this_player()->SetProp( P_DEATH_MSG, ({ "liebt es zu sterben.",
                                            MSG_EMOTE }) );
    this_player()->die();
   }


SIEHE AUCH
==========

   P_MURDER_MSG, P_FORCE_MURDER_MSG
