
deregister_modifier()
*********************


FUNKTION
========

   void deregister_modifier(object modifier)


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

   /std/living/attributes.c


PARAMETER
=========

   modifier   - Objekt mit P_X_ATTR_MOD oder P_M_ATTR_MOD


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

   Meldet einen Modifier im Spieler ab. Wird durch RemoveSensitiveObject
   beziehungsweise beim Ausziehen oder Wegstecken gerufen.
   Muss nicht direkt gerufen werden. Bei Veraenderungen von Modifikatoren
   sollte stattdessen UpdateAttributes gerufen werden.


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

   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
   SetAttr(), SetAttribute(), SetRealAttribute(), UpdateAttributes(),
   register_modifier(),P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
   P_ATTRIBUTES_MODIFIER, P_X_ATTR_MOD, P_M_ATTR_MOD,
   /std/living/attributes.c

13.Jun.2004, Muadib
