
P_UNWEAR_MSG
************


NAME
====

   P_UNWEAR_MSG                       "unwear_msg"


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

   /sys/armour.h


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

   Zweiteiliges Array mit Meldungen, die beim Ausziehen einer Ruestung
   oder Kleidung 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, "Mantel");
   SetProp(P_UNWEAR_MSG,
    ({"Du reisst Dir @WEN2 vom Leib.",
      "@WER1 reisst sich @WENU2 vom Leib." }));

   -> beim Ausziehen durch Urk:
      Urk bekommt: Du reisst dir den Mantel vom Leib.
      Der Raum:    Urk reisst sich einen Mantel vom Leib.

   SetProp(P_UNWEAR_MSG,
    ({"Dir wird furchtbar warm. So eine Hitze aber auch. Schnell "
      "schluepfst Du aus Deiner dicken Ruestung. Aaaah, was fuer "
      "eine Wohltat.",
      "@WEM1 scheint ploetzlich warm zu werden. Schnell schluepft "
      "@WERQP1 aus @WEMQPPFS1 dicken Ruestung. Du hoffst instaendig, "
      "das es noch etwas waermer wird ... "}));

   -> beim Ausziehen durch Urk:
      Urk bekommt: Dir wird furchtbar warm. So eine Hitze aber auch.
                   Schnell schluepfst Du aus Deiner dicken Ruestung.
                   Aaaah, was fuer eine Wohltat.
      Der Raum:    Urk scheint ploetzlich warm zu werden. Schnell
                   schluepft er aus seiner dicken Ruestung. Du hoffst
                   instaendig, das es noch etwas waermer wird ...


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

   Aehnliches: P_WEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
               P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
   Funktionen: WearFunc, UnwearFunc
   Sonstiges:  replace_personal(E), /std/armour/wear.c, armours
               clothing, /std/clothing.wear.c


LETZTE AeNDERUNG
================

15.02.2009, Zesstra
