
P_ATTRIBUTES_MODIFIER
*********************


NAME
====

   P_ATTRIBUTES_MODIFIER         "attributes_modifier"


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

   /sys/living/attributes.h


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

   In dieser Property werden Attribut-Modifikatoren gespeichert, die
   laengere Zeit wirksam sein sollen, tlw. auch ueber einen Reboot
   hinweg.
   Intern werden die Modifikatoren in einem Mapping der Form

       ([ Setzer-Key : ([ A_xy : Wert, ... ]) , ... ])

   gespeichert. Das Setzen folg hingegen in der Form

       spieler->SetProp(P_ATTRIBUTES_MODIFIER, ([ A_xy : Wert, ... ]));
   oder
       spieler->SetProp(P_ATTRIBUTES_MODIFIER, ({ Setzer-Key, ([ ... ]) }));

   Bei der ersten Variante wird hierbei der Filename des setzenden Objektes
   als Setzer-Key genommen.
   Es koennen also durchaus von mehreren Objekten Modifier gesetzt werden.
   Bekannte Modifier sind:

       #death      Attribut-Abzug durch Todesfolgen      (Mudlib)
       #drain      Statabzug durch NPCs                  (Paracelsus)
       #frosch     Staerken-Abzug bei Froeschen          (Mudlib)


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

   Keine echte Property, _query_attributes_modifier() und
   _set_attributes_modifier() sind in /std/living/attributes.c
   implementiert
   - SetProp/QueryProp nutzen!
   - Wenn ein Modifier nicht mehr gebracht wird, nicht die Attributswerte auf
     0 setzen, sondern den ganzen Eintrag! also:
     SetProp(P_ATTRIBUTES_MODIFIER, ([]) );
     oder: SetProp(P_ATTRIBUTES_MODIFIER, 0 );
     aber nicht: SetProp(P_ATTRIBUTES_MODIFIER, ([A_STR:0]));


BEISPIELE
=========

   // ein Bonus ... 'ende'-fest (muss also per uid gesichert werden)
   player->SetProp(P_ATTRIBUTES_MODIFIER,
                   ({"g_klerus_segen", ([A_CON:5, A_INT:5])}));
   ...
   player->SetProp(P_ATTRIBUTES_MODIFIER, ({"g_klerus_segen", 0}));


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

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

Last modified: Tue Jul 27 20:00:20 2004 by Muadib
