SetRealAttribute()
==================

FUNKTION
--------
::

     int SetRealAttribute(string attr, int val)

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

     /std/living/attributes.c

ARGUMENTE
---------
::

     attr       - zu setzendes Attribut
     val        - Wert

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

     Setzt den realen Wert des Attributes, d.h. das reine Attribut,
     wenn moeglich. Lediglich eine Alias-Methode fuer SetAttr().
     (QueryAttribute() gibt also val + etwaige Offsets/Modifier zurueck)

RUeCKGABEWERT
-------------
::

     Den gesetzten Wert.

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

     Bitte nicht auf Spieler anwenden!

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

