InformWear()
============

FUNKTION
--------
::

	protected void InformWear(object pl, int silent, int all)

DEFINIERT IN
------------
::

        /std/clothing/wear.c

ARGUMENTE
---------
::

	pl
          Das Lebewesen, das die Ruestung angezogen hat.
        silent
          Flag, ob Meldungen unterdruckt werden sollen.
        all
          Flag, ob die Ruestung mit "trage alles"/"trage alle ruestungen"
          angezogen wurde.

BESCHREIBUNG
------------
::

        Diese Funktion wird aufgerufen, wenn die Ruestung erfolgreich
        angezogen wurde.

RUeCKGABEWERT
-------------
::

	keiner

SIEHE AUCH
----------
::

        InformUnwield(), InformWield(), InformUnwear()


06.10.2007, Zesstra

