P_PUT_MSG
*********


NAME
====

   P_PUT_MSG                          "put_message"


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

   /sys/living/put_and_get.h


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

   Mit P_PUT_MSG kann man die Meldung, die man beim Hineinstecken eines
   Objektes in einen Container bekommt, modifizieren.

   Folgende Werte sind moeglich:

   o 0
     Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.

   o NO_PNG_MSG       == -1
     Es wird keinerlei Meldung ausgegeben

   o Ein Array aus Strings
     Der erste String wird an den Spieler ausgegeben, der zweite
     (optionale) an den Raum.

     Die Strings werden durch die Funktion replace_personal() geparst.
      Objekt1 - Spieler
      Objekt2 - das Objekt, das irgendwohin gesteckt wird
      Objekt3 - der Container

     Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
     Raum.


BEISPIEL
========

   void create() {
    ...
    SetProp( P_SHORT, "Etwas Sand" );
    SetProp( P_LONG, break_string(
     "Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));

    SetProp( P_NAME, "Sand" );
    AddId( ({"sand"}) );
    SetProp( P_GENDER, MALE );

    SetProp( P_PUT_MSG, ({
     "Du laesst @WEN2 in @WENU3 rieseln.",
     "@WER1 laesst @WEN2 in @WENU3 rieseln."}));
    ...
   }

   Das ganze fuehrt bei Ugars "stecke sand in paket" zu folgenden
   Meldungen:

   Ugar: "Du laesst den Sand in ein Paket rieseln."
   Raum: "Ugar laesst den Sand in ein Paket rieseln."


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

   Aehnliches: P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
   Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
               P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET
   Sonstiges:  replace_personal(E), put_obj(L), /std/living/put_and_get.c

14. Maerz 2004 Gloinson
