blob: e954e4bfce1781a7a9bbc04a9cb7bab98b564bdf [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001FUNKTION:
2
3 varargs int GetFValueO(string vname, mapping map, object pl)
4
5
6ARGUMENTE:
7
8 vname : name des parameters aus dem spellmapping
9 map : spellmapping
10 pl : caster
11
12
13BESCHREIBUNG:
14
15 'Berechnet' den Wert, den Factor und den Offset des Parameters
16 in spellmapping.
17
18
19RUECKGABEWERT:
20
21 Berechneter (Wert*Factor)/100+Offset aus dem Spellmapping.
22
23
24BEMERKUNGEN:
25
26 Ruft (GetValue(vname,map,pl)*GetFactor(vname,map,pl))/100+
27 GetOffset(vname,map,pl) auf.
28
29
30BEISPIEL:
31
32 AddSpell("egal",10,
33 ([
34 OFFSET(SI_COST):([SM_RACE:(["Zwerg":4]) ]),
35 FACTOR(SI_COST):([SM_RACE:(["Mensch":90]) ]),
36 SI_SKILLDAMAGE:100,
37 OFFSET(SI_SKILLDAMAGE):25,
38 SI_SKILLDAMAGE_TYPE:DT_EXAMPLE,
39 FACTOR(SI_SKILLDAMAGE):([SM_RACE:(["Zwerg":80,"Elf":120]) ])
40 ]));
41
42 So, was sollen uns diese Zeilen sagen?
43
44 Es wird ein Spruch Names 'egal' ins Spellbook eingetragen. Er kostet
45 regulaer 10 MP. Fuer Zwerge allerdings wird ein Offset von 4 MP
46 aufgeschlagen. Ausserdem machen Zwerge nur 80% Schaden, Elfen
47 hingegen 120%. Der Grundschaden betraegt 100 Schadenspunkte, der
48 Offset des Schadens nochmal 25. Menschen bezahlen fuer diesen
49 Spruch nur 90% der Kosten.
50
51 Nun die Rechenbeispiele:
52
53 Fuer die Kosten:
54 Value ValueO FValue FValueO
55 Mensch 10 10 9 9
56 Elf 10 10 10 10
57 Hobbit 10 10 10 10
58 Zwerg 10 14 10 14
59
60 Fuer den Schaden:
61 Value ValueO FValue FValueO
62 Mensch 100 125 100 125
63 Elf 100 125 120 150
64 Hobbit 100 125 100 125
65 Zwerg 100 125 80 100
66
67 An diesem Beispiel sieht man deutlich, wie man mit ein paar
68 Offsets und Faktoren die Wirkung eines Spruches deutlich
69 veraendern kann. Es sollte bei eigenen Berechnungen immer
70 GetFValueO benutzt werden.
71
72Siehe auch:
73
74 "GetValue", "GetFactor", "GetOffset", "GetFValue", "GetValueO"