UnwearArmour()
**************


FUNKTION
========

   public int UnwearArmour(object ob)


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

   /std/living/clothing.c


ARGUMENTE
=========

   object ob
     Die Ruestung, die ausgezogen wird.


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

   Das Lebewesen, in dem diese Funktion gerufen wird, zieht die Ruestung
   <ob> aus.
   ABER: 'Ausziehen' bedeutet in diesem Kontext lediglich, dass die
   Ruestung/Kleidung aus P_ARMOURS 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(), Unwear(), UnwearClothing()
   P_CLOTHING, P_ARMOURS
   FilterClothing(), FilterArmours()


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

14.03.2009, Zesstra
