
GetFValue()
***********


FUNKTION
========

   varargs int GetFValue(string vname, mapping map, object pl)


ARGUMENTE
=========

   vname   : name des parameters aus dem spellmapping
   map     : spellmapping
   pl      : caster


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

   Berechnet den Wert und den Factor des Parameters in spellmapping.


RUECKGABEWERT
=============

   Berechneter Wert*Factor aus dem Spellmapping.


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

   Ruft GetValue(vname,map,pl)*GetFactor(vname,map,pl)/100 auf.


BEISPIEL
========

   xxx=GetFValue(SI_SKILLDAMAGE,sinfo,caster);

Siehe auch:

   "GetValue", "GetFactor", "GetOffset", "GetValueO", "GetFValueO"

   Ausfuehrliches Beispiel siehe "GetFValueO".
