
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
