P_DROP_MSG
==========

NAME
----
::

     P_DROP_MSG				"drop_message" 

DEFINIERT IN
------------
::

     /sys/living/put_and_get.h

BESCHREIBUNG
------------
::

     Mit P_DROP_MSG kann man die Meldung, die man beim Ablegen eines
     Objektes 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 fallengelassen wird

	  

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

				

BEISPIEL
--------
::

     void create() {
      ...
      SetProp( P_SHORT, "Ugars Handaxt" );
      SetProp( P_LONG, break_string(
       "Dieses ist eine Kampfaxt, wie sie Orks normalerweise benutzen. "
       "Da Du Zeit hast, sie Dir anzuschauen, ist der Besitzer wohl "
       "bereits bei Lars.",78 ));

	  

      SetProp( P_NAME, "Axt" );
      AddId( ({"handaxt","axt"}) );
      SetProp( P_GENDER, FEMALE );

	  

      SetProp( P_DROP_MSG, ({
       "Du schmeisst @WEN2 hin.",
       "@WER1 schmeisst Dir @WENU2 vor die Fuesse.\n"}));
      ...
     }

     Will Ugar seine Axt ablegen und gibt "lasse axt fallen" ein, werden 
     folgende Meldungen ausgegeben:

	

     Ugar: "Du schmeisst die Axt hin."
     Raum: "Ugar schmeisst Dir eine Axt vor die Fuesse."

	

SIEHE AUCH
----------
::

     Aehnliches: P_PICK_MSG, P_PUT_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), drop_obj(L), /std/living/put_and_get.c

14. Maerz 2004 Gloinson

