P_KILL_MSG
**********


NAME
====

   P_KILL_MSG                      "kill_msg"


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

   /sys/properties.h


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

   Wenn ein Spieler getoetet wird, so erscheint dazu eine kurze Information
   auf dem Todeskanal. Um dem toetenden Objekt zusaetzlich die Moeglichkeit
   zu geben, noch etwas mehr auf diesem Kanal auszugeben, kann man in
   dieser Property einen String uebergeben.
   Noetige Zeilenumbrueche werden hierbei automatisch generiert.

   Es ist auch moeglich anzugeben, ob Emotes verwendet werden und ob das
   toetende Objekt ein Plural-Objekt ist. Hierzu uebergibt man ein Array
   der Gestalt:

      ({Killmessage,Emotes}) bzw. ({Killmessage,Emotes,PLURAL})

   Der Eintrag <Killmessage> stellt hierbei die Meldung selbst dar, PLURAL
   gibt an, dass es sich um ein Plural-Objekt handelt und <Emotes> kann
   folgende Werte annehmen:

      MSG_SAY    - Meldung wird normal ausgegeben.
      MSG_EMOTE  - Meldung erscheint als Emote.
      MSG_GEMOTE - Meldung erscheint als Genitiv-Emote.
      MSG_EMPTY  - Meldung erscheint ohne zuvorige Angabe des
                     toetenden Objektes.

   Moechte man die Meldung noch etwas "persoenlicher" ;-) gestalten, so
   kann man den Platzhalter %s verwenden. An dessen Stelle wird dann der
   Name des Verblichenen eingesetzt.


BEISPIEL
========

   Ein nettes Beispiel ist das folgende: Wenn ein Spieler sich als
   Drachentoeter bewehrt hat, so kann er traditionell in seinem Blut baden.
   Hin und wieder ist jedoch auch der Drache erfolgreich, dem man eine
   lustige Zusatzmeldung fuer den Todeskanal uebergeben kann:

   void create() {
     ::create();
     ...
     SetProp(P_KILL_MSG,"Jetzt bade ich mal in DEINEM Blut, %s!");
     ...
   }


   Falls der 'Killer' ein Plural-Objekt oder -NPC war, koennte eine Meldung
   auch folgendermassen aussehen:

   SetProp(P_KILL_MSG,({"haun sich jetzt die Hucke voll.",
                        MSG_EMOTE,
                        PLURAL}));

   wobei P_KILL_NAME hier natuerlich auf "Eine Menge Orks" oder
   dergleichen gesetzt sein sollte. Auf dem Kanal waere dann dies zu
   lesen:

      [Tod:Lars] Eine Menge Orks haben gerade Orktoeter umgebracht.
      [Tod:Eine Menge Orks haun sich jetzt die Hucke voll.]


   Weiteres Beispiel.
   Man habe einen NPC, dessen Killname als Plural aufzufassen ist, der aber
   keinen zusaetlichen Text auf -Tod bringen soll.

   SetProp(P_NAME, "Eine Horde Gummibaeren");
   SetProp(P_KILL_NAME, "Viele kleine Gummibaeren");
   SetProp(P_KILL_MSG, ({0, 0, 1}));


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

   Tod:               die(L)
   Todesmeldungen:    P_KILL_NAME, P_DIE_MSG, P_MURDER_MSG
                      P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
   Sonstiges:         P_CORPSE, P_NOCORPSE, /room/death/death_room.c

Last modified: Wed Aug 21 14:36:04 2002 by Bambi
