
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
