P_POST
******


NAME
====

   P_POST                          "Post"


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

   /mail/post.h


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

   In dieser Property laesst sich die Versendeerlaubnis von Paketen
   regeln. Hierbei gibt es zum einen die postlagernden Pakete, die man
   in einer Post abholen muss, und es gibt die sogenannten
   Kurierpakete, welche direkt und unmittelbar zugestellt werden.
   Nicht immer ist es erwuenscht, dass Pakete aus der Ferne in einen
   Raum geschickt werden duerfen. Dies duerfte insbesondere innerhalb
   von Gebieten interessant sein, in welche man nur beschraenkt viele
   Objekte mitfuehren kann. Mit dieser Property nun ist es leicht
   moeglich, dies zu verbieten. Man kann auch in den Objekten selbst
   angeben, ob diese per postlagerndem Paket bzw. Kurierpaket
   verschickt werden duerfen. Dies duerfte zum Beispiel bei Komponenten
   fuer Spells oder fuer Unique-Objekte interessant sein.
   Folgende Werte sind moeglich, wobei in Raeumen und Objekten
   Standardmaessig PP_DEFAULT genutzt wird:

     PP_FORBIDDEN          -2      // auf jeden Fall verboten
     PP_NO_EXPRESS         -1      // Kurierpakete verboten
     PP_DEFAULT             0      // Default
     PP_NORMAL_ALLOWED      1      // postlagernde Pakete erlaubt
     PP_ALLOWED             2      // auf jeden Fall erlaubt

   Raeume, die von /std/post.c abgeleitet wurden, nutzen als Standard
   natuerlich PP_ALLOWED.


BEISPIEL
========

   Um Kurierpakete fuer einen Raum zu verbieten, nutzt man die
   Funktionalitaet dieser Property folgendermassen:

     include "/mail/post.h"
     ...
     void create()
     { ::create();
       ...
       SetProp(P_POST,PP_NO_EXPRESS);
       ...
     }

   Objekte selbst koennte man folgendermassen aus Paketen verbannen,
   welche versendet werden sollen:

     include "/mail/post.h"
     ...
     void create()
     { ::create();
       ...
       SetProp(P_POST,PP_FORBIDDEN);
       ...
     }

   In letzterem Fall funktionieren im Gegensatz zum ersten Beispiel
   auch keine postlagernden Pakete mehr.


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

   /std/post.c, /std/mailcabin.c, /p/service/loco/std/mailcabin.c

Last modified: Sun Sep  6 19:34:37 1998 by Patryn
