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