P_SKILL_ATTRIBUTES
==================

NAME
----
::

    P_SKILL_ATTRIBUTES        "skill_attr"

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

    /sys/living/skill_attributes.h

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

    In dieser Prop stehen alle nicht-permanenten Modifikatoren der
    Skill-Attribute.
    Die Datenstruktur ist ein Mapping mit den SA-Namen als Schluessel und
    jeweils drei Werten pro Schluessel.
    Der erste Wert ist ein Array mit drei Werten: der Summe der stat.
    Modifier, dem Zeitpunkt an dem dies Summe ungueltig wird und der
    Gesamtzahl aktiver Modifikatoren.
    Der zweite Wert enthaelt ein Mapping mit allen statischen Modifikatoren
    und den Objekten dieser Mods als Schluessel. Die beiden Werte dieses
    Mappings sind der Wert des Modifikators (int) und die Ablaufzeit (int).
    Der dritte Wert enthaelt ein Mapping mit allen dynamischen
    Modifikatoren und den Objekten dieser Mods als Schluessel. Die beiden
    Werte dieses Mappings sind die zu rufende Closure (closure) und die
    Ablaufzeit des Mods (int).

    ([ SA_ATTR: ({Summe_Stat_Modifier, Zeitpunkt, AnzahlModifier, });
                ([ ob1:value;duration,
                   ob2:value;duration, ...]);  // stat. Modifier
                ([ ob1:closure;duration,
                   ob2:closure;duration, ...])     // dyn. Modifier
                ,
       SA_ATTR2: ({...}); ([]); ([]),
       SA_ATTR3: ({...}); ([]); ([]),
    ])

BEMERKUNGEN
-----------
::

    Diese Property darf AUF GAR KEINEN FALL per Hand manipuliert werden,
    dafuer gibt es die Funktionen ModifySkillAttribute() und
    RemoveSkillAttributeModifier().
    Zum Auslesen stehen QuerySkillAttribute() und
    QuerySkillAttributeModifier() zur Verfuegung.

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

    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
    * Nutzung:      UseSpell, UseSkill
    * Abfragen:     QuerySkill, QuerySkillAbility
    * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
                    QuerySkillAttributeModifier, RemoveSkillAttributeModifier
      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
    * sonstig:      spruchermuedung, skill_info_liste
    * Properties:   P_NEWSKILLS

13.09.2008, Zesstra

