
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
