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 

