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
