P_UNWIELD_MSG
*************


NAME
====

   P_UNWIELD_MSG                       "unwield_msg"


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

   /sys/weapon.h


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

   Zweiteiliges Array mit Meldungen, die beim Wegstecken einer
   Waffe an den Spieler und die Umgebung ausgegeben werden.

   Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
   Umgebung.  Zeilenumbrueche werden automatisch gemacht, existierende
   jedoch beruecksichtigt.

   Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
   man replace_personal()).

   [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
    moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
    in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
    den Waffennamen.]


BEISPIELE
=========

   SetProp(P_NAME, "Streitkolben");
   SetProp(P_UNWIELD_MSG,
    ({ "Du steckst @WEN2 zurueck und atmest erstmal tief durch.",
       "@WER1 steckt @WENU2 zurueck und atmet erstmal tief durch." }));

   -> beim Wegstecken durch Urk:
      Urk bekommt: Du steckst den Streitkolben zurueck und atmest erstmal
                   tief durch.
      Der Raum:    Urk steckt einen Streitkolben zurueck und atmet erstmal
                   tief durch.

   SetProp(P_UNWIELD_MSG,
    ({"Du steckst die schwere Keule zurueck. Zufaellig landet sie "
      "dabei auf Deinem Fuss. Laut schreiend humpelst Du in der "
      "Gegend herum.",
      "@WER1 steckt eine schwere Keule zurueck. Dummerweise landet diese "
      "direkt auf dem eigenen Fuss. Aua, das tat sicher weh ... nicht "
      "umsonst humpelt @WERQP1 jetzt schreiend durch die Gegend."}));

   -> beim Wegstecken durch Urk:
      Urk bekommt: Du steckst die schwere Keule zurueck. Zufaellig landet
                   sie dabei auf Deinem Fuss. Laut schreiend humpelst Du in
                   der Gegend herum.
      Der Raum:    Urk steckt eine schwere Keule zurueck. Dummerweise
                   landet diese direkt auf dem eigenen Fuss. Aua, das tat
                   sicher weh ... nicht umsonst humpelt er jetzt schreiend
                   durch die Gegend.


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

   Aehnliches: P_WIELD_MSG, P_WEAR_MSG, P_UNWEAR_MSG
               P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
   Funktionen: UnwieldFunc, WieldFunc
   Sonstiges:  replace_personal(E), /std/weapon/combat.c

29. Maerz 2004 Gloinson
