
P_NOINSERT_MSG
**************


NAME
====

   P_NOINSERT_MSG                      "noinsert_msg"


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

   /sys/thing/moving.h


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

   Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn
   jemand versucht, ein Objekt in einen Behaelter zu bewegen und der
   Behaelter dieses im PreventInsert() verhindert.
   Die Property ist im Zielbehaelter zu setzen.
   Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
   so wird die Standardmeldung ausgegeben.
   ("<Objekt> kannst Du dort nicht hineinstecken.")
   Der String in der Property wird noch durch replace_personal()
   verarbeitet, das zu bewegende Objekt wird als erstes, der Zielbehaelter
   als zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
   umgebrochen.
   Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
   ganz.


BEISPIELE
=========

   1. Ein Kochtopf laesst im PreventInsert nur bestimmte Objekte zu, die zu
   einer Suppe gehoeren. Fuer eine passende Meldung wird im Topf jetzt die
   Property gesetzt:
   SetProp(P_NOINSERT_MSG, "Du kannst @WEN1 nicht in den Kochtopf tun, da"
                           " gehoeren doch nur Suppenzutaten rein!");
   Wenn jemand jetzt versucht, eine Muenze reinzustecken, dann wuerde
   folgende Meldung erscheinen:
      Du kannst die Muenze nicht in den Kochtopf tun, da gehoeren doch nur
      Suppenzutaten rein!

   2. Ein Rucksack soll in einer bestimmten Reihenfolge gepackt werden, dazu
   kann im PreventInsert die Meldung je nach Bedarf gesetzt werden:
   if (<objekt noch nicht an der Reihe>)
      SetProp(P_NOINSERT_MSG, "@WEN1 solltest du erst spaeter einpacken.");
   else if (<objekt schon im Rucksack>)
      SetProp(P_NOINSERT_MSG, "Aber @WER1 ist doch schon eingepackt!");
   else ...


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

   Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
               P_NOLEAVE_MSG, P_NODROP, P_NOGET
   Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
               P_WEAR_MSG, P_WIELD_MSG
   Sonstiges:  replace_personal(E), /std/living/put_and_get.c
