P_X_ATTR_MOD
************


NAME
====

   P_X_ATTR_MOD                  "extern_attributes_modifier"


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

   /sys/living/attributes.h


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

   Mapping, das die Attribute des Spielers veraendert, der das Objekt bei
   sich hat.

   Zu beachten:
   Diese Property bitte _ausschliesslich_ mit SetProp aendern, weil damit
   gleichzeitig UpdateAttributes() im Lebewesen aufgerufen und ggf. das
   Objekt als Statmodifizierer registriert wird.

   Diese Property ist fuer Krankheiten, Flueche etc. gedacht. Bei
   Waffen/Ruestungen, die die Attribute beeinflussen sollen, verwendet
   man besser P_M_ATTR_MOD.

   P_X_ATTR_MOD und P_M_ATTR_MOD duerfen einen gemeinsamen kumulierten
   positiven Grenzwert nicht ueberschreiten. Dieser Grenzwert,
   CUMULATIVE_ATTR_LIMIT, ist in /sys/living/attributes.h definiert.


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

   Die Methode /std/thing/restrictions::_set_extern_attributes_modifier()
   benachrichtigt tragende Livings ueber Aenderungen.
   Bitte beim "Loeschen" der Prop nicht den Wert des jew. Attributes im
   uebergebenen Mapping als 0 uebergeben, sondern das Key/Werte-Paar ganz
   entfernen und bzw. ein leeres Mapping oder 0 uebergeben.


BEISPIEL
========

   // Dem Lebewesen, das das Objekt bei sich hat, wird 2 von A_INT abgezogen
   SetProp(P_X_ATTR_MOD,([A_INT:-2]));

   // Stats wiederherstellen:
   SetProp(P_X_ATTR_MOD,([]));


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

   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
   SetTimedAttrModifier(), QueryTimedAttrModifier(),
   DeleteTimedAttrModifier(),
   P_X_HEALTH_MOD, P_M_HEALTH_MOD, P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
   P_TIMED_ATTR_MOD, P_M_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c

02.02.2016, Gloinson
