
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
