Unwear()
********


FUNKTION
========

   public int Unwear(object ob)


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

   /std/living/clothing.c


ARGUMENTE
=========

   object ob
     Die Ruestung oder Kleidung, die ausgezogen wird.


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

   Das Lebewesen, in dem diese Funktion gerufen wird, zieht die Ruestung
   oder das Kleidungsstueck <ob> aus.
   ABER: 'Ausziehen' bedeutet in diesem Kontext lediglich, dass die
   Ruestung/Kleidung aus P_ARMOURS bzw. P_CLOTHING ausgetragen wird. Es
   finden zur Zeit keine Pruefungen statt, ob das Lebewesen den Gegenstand
   ueberhaupt ausziehen kann. Genausowenig werden Funktionen wie
   InformUnwear()/RemoveFunc() gerufen oder etwaige Stat-Boni deaktiviert.

   Die Funktion ist nur dazu gedacht, im Zuge des Ausziehens eines Objekts
   von diesem im Lebewesen gerufen zu werden.


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

   1, wenn das Ausziehen erfolgreich war.
   0 sonst.


BEMERKUNGEN
===========

   Nicht von Hand aufrufen, es sei denn man weiss genau, was man tut. Und am
   besten auch dann nicht.


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

   Wear(), WearArmour(), WearClothing(), UnwearArmour(), UnwearClothing()
   P_CLOTHING, P_ARMOURS
   FilterClothing(), FilterArmours()


ZULETZT GEAeNDERT
=================

14.03.2009, Zesstra
