blob: fa1ac3abc0a5de006fb8ae0c6dec2eaf0cd5805b [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001ModifySkillAttributeOld()
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 varargs int ModifySkillAttributeOld(object caster, string atrname,
9 int value, int duration, mixed fun)
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 /std/living/skill_attributes.c
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 <caster> IGNORIERT
22 frueher Objekt, das die Modifikation vornimmt, heute ist
23 dieses Argument ohne Bedeutung und wird ignoriert.
MG Mud User88f12472016-06-24 23:31:02 +020024
Zesstra953f9972017-02-18 15:37:36 +010025 <atrname> STRING
26 Name des zu veraendernden Attributes
27 (Definiert in /sys/living/skill_attributes.h)
MG Mud User88f12472016-06-24 23:31:02 +020028
Zesstra953f9972017-02-18 15:37:36 +010029 <value> INT
30 Neuer Wert des Attributs (Standard: 100)
MG Mud User88f12472016-06-24 23:31:02 +020031
Zesstra953f9972017-02-18 15:37:36 +010032 <duration> INT
33 Dauer in Sekunden
MG Mud User88f12472016-06-24 23:31:02 +020034
Zesstra953f9972017-02-18 15:37:36 +010035 <fun> NICHT MEHR UNTERSTUETZT - ModifySkillAttribute() nutzen!!
MG Mud User88f12472016-06-24 23:31:02 +020036
MG Mud User88f12472016-06-24 23:31:02 +020037
Zesstra953f9972017-02-18 15:37:36 +010038BESCHREIBUNG
39============
MG Mud User88f12472016-06-24 23:31:02 +020040
Zesstra953f9972017-02-18 15:37:36 +010041 Diese Funktion existiert nur aus Kompatibilitaetsgruenden. Bitte in neuen
42 Objekten NICHT mehr verwenden und in alten nach Moeglichkeit ausbauen!
MG Mud User88f12472016-06-24 23:31:02 +020043
Zesstra953f9972017-02-18 15:37:36 +010044 Aendert ein Skill-Attribut eines Living.
45
46
47
48 Fuer <value> ist folgendes zu beachten:
49 Frueher handelte es sich um einen multiplikativen Faktor. 100 hatte die
50 Bedeutung von 1 und veraenderte nichts. Heute sind die Modifikatoren
51 additiv. Diese Funktion macht eine einfache Umrechnung, indem sie vom hier
52 uebergeben Wert 100 abzieht. (In der Annahme, dass frueher meist eh nur
53 ein Modifikator zur gleichen Zeit aktiv war.)
54 Gibt man hier also hier eine 100 an, wird ein Modifikator von 0 einge-
55 tragen, der nichts aendert, bei 200 wird ein Modifikator von 100 einge-
56 tragen, bei 50 einer von -50, welcher das Skillattribute folglich
57 reduziert.
58
59 Es sind momentan max. 5 gleichzeitige Skillattribute-Modifikatoren pro SA
60 zulaessig.
61
62
63RUECKGABEWERT
64=============
65
66 0 wenn der Wert ungueltig ist oder aus sonstigem Grunde nicht gesetzt
67 werden konnte (fuer bessere Diagnostik -> ModifySkillAttribute()).
68 >0 wenn alles okay war
69
70
71BEMERKUNGEN
72===========
73
74 Frueher musste ein setzendes Objekt ein groesseres P_LEVEL haben als das
75 Objekt, welches einen vorherigen Modifikator gesetzt hat, um diesen zu
76 ueberschreiben. Dies ist inzwischen ohne Bedeutung.
77
78
79BEISPIELE
80=========
81
82 Ein NPC:
83
84 void
85 create() {
86 .
87 .
88 .
89 AddSpell(1, 1,
90 "Der fuerchterliche NPC haut Dir auf den Kopf.\n",
91 "Der fuerchterliche NPC haut @WEN auf den Kopf.\n",
92 DT_MAGIC, "schwaechen");
93 .
94 .
95 }
96
97 schwaechen(object enemy, int damage, mixed *dam_type) {
98 int ergebnis;
99 ergebnis = enemy->ModifySkillAttributeOld(this_object(), SA_QUALITY, 50, 5);
100 if (ergebnis > 0)
101 tell_object(enenmy, "Du fuehlst Dich ganz schwach.\n");
102 }
103
104
105
106 Der NPC schwaecht seinen Gegner erheblich! Alles wird fuer 5 Sekunden um
107 50, d.h. 0.5 Skillattribute reduziert (50 - 100 => -50 als Modifikator).
108
109
110SIEHE AUCH
111==========
112
113 P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS,
114 ModifySkillAttribute, QuerySkillAttribute(),
115 RemoveSkillAttributeModifer(), QuerySkillAttributeModifier()
116
MG Mud User88f12472016-06-24 23:31:02 +020011707.08.2008 Zesstra