GetOffset()
***********


FUNKTION
========

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


ARGUMENTE
=========

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


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

   'Berechnet' den Offset des Parameters in spellmapping.


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

   Berechneter Offset aus dem Spellmapping.


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

   Beschraekung auf -10000 bis +10000. Werte groesser oder kleiner
   als diese werden 'abgeschnitten'. Mehr als 100% Bonus oder Malus
   gibts nicht ;-).


BEISPIEL
========

   xxx=GetOffset(SI_SKILLDAMAGE,sinfo,caster);

Siehe auch:

   "GetValue", "GetFactor", "GetFValue", "GetValueO", "GetFValueO"

   Ausfuehrliches Beispiel siehe "GetFValueO".
