blob: 1cb82e83ff49a496b13912ebb95555a4646fe3e9 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002QuerySkillBonus()
Zesstra953f9972017-02-18 15:37:36 +01003*****************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 int QuerySkillBonus(object caster, object target, mapping sinfo)
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 beliebigen Objekten
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018ARGUMENTE
19=========
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 object caster
22 der Benutzer eines Skills/Spells (Lebewesen)
23 object target
24 das Ziel eines Skills/Spells (beliebiges Objekt oder 0)
25 mapping sinfo
26 das Skillinfomapping
MG Mud User88f12472016-06-24 23:31:02 +020027
Zesstra953f9972017-02-18 15:37:36 +010028
29BESCHREIBUNG
30============
31
32 Diese Funktion wird von der Gilde des Casters im Environment und ggf.
33 auch im Ziel eines Skills/Spells gerufen.
34 Die Gilde uebergibt neben Caster und Ziel ein Mapping mit Skillinfos (s.
35 SI Konstanten aus new_skills.h fuer Details), welches alle wesentlichen
36 Informationen ueber den benutzten Skill/Spell enthaelt.
37
38 QuerySkillBonus() liefert einen Bonus (oder Malus) zurueck, den der
39 Aufrufer als Faktor in der Berechnung des Effekts des Skills
40 beruecksichtigen kann (aber nicht muss).
41 Der Bonus/Malus wird hierbei als ganzzahliger 0.01-Prozentwert aufgefasst
42 (10000 == 100% == keine Veraenderung, 1 == 0.01%).
43
44 Diese Funktion kann in beliebigen Objekten (re-)definiert werden. Im
45 Falle mobiler Objekte oder anhaltender Effekte ist jedoch eine
46 Balancegenehmigung erforderlich, sofern kampfrelevante Skills beeinflusst
47 werden.
48 Eine flaechendeckende Reduzierung von Skills/Gildenfaehigkeiten ist
49 explizit _nicht_ erwuenscht und soll auf einzelne Raeume und Objekte
50 beschraenkt sein.
51
52
53BEMERKUNGEN
54===========
55
56 Das Mapping <sinfo> kann in dieser Funktion geaendert werden. Dieses kann
57 allerdings sehr weitreichende Folgen haben, speziell bei mangelnden
58 Kenntnissen ueber Interna des Skillsystems. Daher bitte von Aenderungen
59 absehen bzw. vorher mit dem jeweiligen Gildenmagier und/oder der
60 Gildenbalance abklaeren.
61 Die Bedeutung der Werte in <sinfo> kann je nach Gilde variieren. Im
62 Zweifelsfall bitte bei den jeweiligen Gildenmagiern nachfragen.
63 Die Gilde kann diese Funktion rufen, muss aber nicht. Ebenso kann sie das
64 Ergebnis beruecksichtigen, muss aber nicht.
65
66
67BEISPIELE
68=========
69
70 In einem Raum sollen Heilzauber besonders effizient sein:
71 int QuerySkillBonus(object caster, object target, mapping sinfo) {
72 if (pointerp(sinfo[SI_MAGIC_TYPE])
73 && member(sinfo[SI_MAGIC_TYPE], MT_HEILUNG) > -1)
74 {
75 return 12000 + random(3000); // bonus von 120-150%
76 }
77 return 10000;
78 }
79
80
81SIEHE AUCH
82==========
83
84 gilden-doku
85 <new_skills.h>
86
87
88LETZTE AeNDERUNG
89================
90
MG Mud User88f12472016-06-24 23:31:02 +02009119.08.2013, Zesstra