
RemoveFixedObject()
*******************


FUNKTION
========

   void RemoveFixedObject(string filename);


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

   /std/laden.c


ARGUMENTE
=========

   str
     Dateiname des Objektes, welches nicht mehr dauerhaft im Laden sein
     soll.


RUeCKGABEWERT
=============

   keiner


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

   Objekte, die mittels der Funktion AddFixedObject() im Laden
   eingebunden werden, sind dort staendig verfuegbar. Um diesen Zustand
   wieder aufzuheben, kann man sie mittels dieser Funktion wieder
   entfernen. Eventuell im Lager befindliche Objekte dieser Art werden
   hierbei nicht zerstoert und koennen durchaus noch gekauft werden,
   bis sie alle sind. Danach gibt es sie dort nicht mehr!


BEISPIELE
=========

   Im allen Laeden gibt es schon ein Objekt, welches dort
   standardmaessig erhaeltlich ist. Folgende Zeile sorgt dafuer:
     AddFixedObject("/obj/boerse",80,({"boerse","geldboerse"}));
   Wenn man das in seinem Laden nicht wuenscht, kann man die Geldboerse
   mittels folgender Zeile wieder aus dem Laden loeschen:
     RemoveFixedObject("/obj/boerse");
   Es ist nicht moeglich, keine oder mehrere Objekte anzugeben, um auf
   diese Weise alle bzw. mehrere Objekte als nicht mehr staendig
   verfuegbar zu markieren.


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

   AddFixedObject(), SetStorageRoom(), /std/store.c

Last modified: Thu Jun 18 14:19:19 1998 by Patryn
