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