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
