
SetAttr()
*********


FUNKTION
========

   public int SetAttr(string attr, int val)


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

   /std/living/attributes.c


ARGUMENTE
=========

   attr       - zu setzendes Attribut
   val        - Wert


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

   Filtert den Wert durch _filterattr(). Dadurch werden STR, INT, CON, DEX
   auf 20 begrenzt. Setzt dann das Attribut.
   Offsets werden hier nicht beruecksichtigt, QueryAttribute() gibt also
   val + etwaige Offsets/Modifier zurueck.


RUeCKGABEWERT
=============

   Tatsaechlich gesetzter Wert.


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

   Wird von SetAttribute() und SetRealAttribute() aufgerufen.


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

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

Letzte Aenderung: 22.12.2016, Bugfix
