FUNKTION:

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


ARGUMENTE:

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


BESCHREIBUNG:

	'Berechnet' den Wert, den Factor und den Offset des Parameters 
	in spellmapping.


RUECKGABEWERT:

	Berechneter (Wert*Factor)/100+Offset aus dem Spellmapping.


BEMERKUNGEN:

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


BEISPIEL:

	AddSpell("egal",10,
	([
	OFFSET(SI_COST):([SM_RACE:(["Zwerg":4]) ]),
	FACTOR(SI_COST):([SM_RACE:(["Mensch":90]) ]),
	SI_SKILLDAMAGE:100,
	OFFSET(SI_SKILLDAMAGE):25,
	SI_SKILLDAMAGE_TYPE:DT_EXAMPLE,
	FACTOR(SI_SKILLDAMAGE):([SM_RACE:(["Zwerg":80,"Elf":120]) ]) 
	]));

	So, was sollen uns diese Zeilen sagen?

	Es wird ein Spruch Names 'egal' ins Spellbook eingetragen. Er kostet
	regulaer 10 MP. Fuer Zwerge allerdings wird ein Offset von 4 MP 
	aufgeschlagen. Ausserdem machen Zwerge nur 80% Schaden, Elfen 
	hingegen 120%. Der Grundschaden betraegt 100 Schadenspunkte, der 
	Offset des Schadens nochmal 25. Menschen bezahlen fuer diesen 
	Spruch nur 90% der Kosten.

	Nun die Rechenbeispiele:

	Fuer die Kosten:
		Value	ValueO	FValue	FValueO
	Mensch	   10	    10	     9	      9
	Elf   	   10	    10	    10       10
	Hobbit	   10	    10	    10	     10
	Zwerg	   10	    14	    10	     14

	Fuer den Schaden:
			Value	ValueO	FValue	FValueO
	Mensch		100	125	100	125
	Elf  		100	125	120	150
	Hobbit		100	125	100	125
	Zwerg		100	125	 80	100

	An diesem Beispiel sieht man deutlich, wie man mit ein paar 
	Offsets und Faktoren die Wirkung eines Spruches deutlich 
	veraendern kann. Es sollte bei eigenen Berechnungen immer 
	GetFValueO benutzt werden.

Siehe auch:

	"GetValue", "GetFactor", "GetOffset", "GetFValue", "GetValueO"
