P_STORE_CONSUME
***************


NAME
====

   P_STORE_CONSUME                 "store_consume"


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

   /sys/bank.h


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

   Diese Property ist entscheidend dafuer, wieviel Prozent an Objekten
   bei jedem Reset in einem Lager eines Ladens vernichtet werden. Dies
   geschieht aus Speicher- und Laggruenden. Es verbleibt dabei jedoch
   eine Grundmenge an Objekten, deren Anzahl in der Property
   P_MIN_STOCK festgehalten ist. Standardwert fuer P_STORE_CONSUME ist
   hierbei 30%, aber in oft benutzten Laeden kann man dort ruhig einen
   hoeheren Wert eintragen. Erlaubt sind Werte zwischen 0% und 100%.
   Aufgeraeumt werden jedoch keine Objekte, die mittels AddItem() im
   Lager eingebunden wurden. Mittels der Ladenfunktion AddFixedObject()
   als staendig verfuegbar markierte Objekte werden natuerlich auch
   nicht beruecksichtigt.
   Beide hier erwaehnten Properties sollten ueberigens nur mittels
   QueryProp/SetProp ausgelesen bzw. veraendert werden.


BEISPIEL
========

   Ein eigener haeufig benutzter Laden koennte ein Lager in folgender
   Form erhalten:
     // myStore
     #include <bank.h>
     inherit "std/store";
     void create()
     { ::create();
       SetProp(P_STORE_CONSUME,90);
       // keine weiteren Beschreibungen, Spieler sollen da drin
       // schliesslich nicht rumwuseln
     }
   Um das Lager dem Laden zuzuweisen, nutzt man folgendes:
     // myShop
     inherit "std/laden";
     void create()
     { ::create();
       SetStorageRoom("pfad/myStore");
       // Beschreibungen folgen
       ...
     }
   Es werden hierbei waehrend jedes Lager-Resets 90% der im Lager
   befindlichen Objekte vernichtet.


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

   P_MIN_STOCK, SetStorageRoom(), /std/store.c, /std/shop.c
   AddItem(), RemoveItem(), AddFixedObject(), RemoveFixedObject()

Last modified: 19-Jun-2015, Arathorn
