blob: 1a4ef472dd3c4058b21f5a0dfbadbc04cfa030f0 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001QuerySkillBonus()
2
3FUNKTION:
4 int QuerySkillBonus(object caster, object target, mapping sinfo)
5
6DEFINIERT IN:
7 beliebigen Objekten
8
9ARGUMENTE:
10 object caster
11 der Benutzer eines Skills/Spells (Lebewesen)
12 object target
13 das Ziel eines Skills/Spells (beliebiges Objekt oder 0)
14 mapping sinfo
15 das Skillinfomapping
16
17BESCHREIBUNG:
18 Diese Funktion wird von der Gilde des Casters im Environment und ggf.
19 auch im Ziel eines Skills/Spells gerufen.
20 Die Gilde uebergibt neben Caster und Ziel ein Mapping mit Skillinfos (s.
21 SI Konstanten aus new_skills.h fuer Details), welches alle wesentlichen
22 Informationen ueber den benutzten Skill/Spell enthaelt.
23
24 QuerySkillBonus() liefert einen Bonus (oder Malus) zurueck, den der
25 Aufrufer als Faktor in der Berechnung des Effekts des Skills
26 beruecksichtigen kann (aber nicht muss).
27 Der Bonus/Malus wird hierbei als ganzzahliger 0.01-Prozentwert aufgefasst
28 (10000 == 100% == keine Veraenderung, 1 == 0.01%).
29
30 Diese Funktion kann in beliebigen Objekten (re-)definiert werden. Im
31 Falle mobiler Objekte oder anhaltender Effekte ist jedoch eine
32 Balancegenehmigung erforderlich, sofern kampfrelevante Skills beeinflusst
33 werden.
34 Eine flaechendeckende Reduzierung von Skills/Gildenfaehigkeiten ist
35 explizit _nicht_ erwuenscht und soll auf einzelne Raeume und Objekte
36 beschraenkt sein.
37
38BEMERKUNGEN:
39 Das Mapping <sinfo> kann in dieser Funktion geaendert werden. Dieses kann
40 allerdings sehr weitreichende Folgen haben, speziell bei mangelnden
41 Kenntnissen ueber Interna des Skillsystems. Daher bitte von Aenderungen
42 absehen bzw. vorher mit dem jeweiligen Gildenmagier und/oder der
43 Gildenbalance abklaeren.
44 Die Bedeutung der Werte in <sinfo> kann je nach Gilde variieren. Im
45 Zweifelsfall bitte bei den jeweiligen Gildenmagiern nachfragen.
46 Die Gilde kann diese Funktion rufen, muss aber nicht. Ebenso kann sie das
47 Ergebnis beruecksichtigen, muss aber nicht.
48
49BEISPIELE:
50 In einem Raum sollen Heilzauber besonders effizient sein:
51 int QuerySkillBonus(object caster, object target, mapping sinfo) {
52 if (pointerp(sinfo[SI_MAGIC_TYPE])
53 && member(sinfo[SI_MAGIC_TYPE], MT_HEILUNG) > -1)
54 {
55 return 12000 + random(3000); // bonus von 120-150%
56 }
57 return 10000;
58 }
59
60SIEHE AUCH:
61 gilden-doku
62 <new_skills.h>
63
64LETZTE AeNDERUNG:
6519.08.2013, Zesstra