MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | ModifySkillAttributeOld() |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 2 | ************************* |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 3 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 4 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 5 | FUNKTION |
| 6 | ======== |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 7 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 8 | varargs int ModifySkillAttributeOld(object caster, string atrname, |
| 9 | int value, int duration, mixed fun) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 10 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 11 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 12 | DEFINIERT IN |
| 13 | ============ |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 14 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 15 | /std/living/skill_attributes.c |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 16 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 17 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 18 | ARGUMENTE |
| 19 | ========= |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 20 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 21 | <caster> IGNORIERT |
| 22 | frueher Objekt, das die Modifikation vornimmt, heute ist |
| 23 | dieses Argument ohne Bedeutung und wird ignoriert. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 24 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 25 | <atrname> STRING |
| 26 | Name des zu veraendernden Attributes |
| 27 | (Definiert in /sys/living/skill_attributes.h) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 28 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 29 | <value> INT |
| 30 | Neuer Wert des Attributs (Standard: 100) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 31 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 32 | <duration> INT |
| 33 | Dauer in Sekunden |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 34 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 35 | <fun> NICHT MEHR UNTERSTUETZT - ModifySkillAttribute() nutzen!! |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 36 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 37 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 38 | BESCHREIBUNG |
| 39 | ============ |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 40 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 41 | Diese Funktion existiert nur aus Kompatibilitaetsgruenden. Bitte in neuen |
| 42 | Objekten NICHT mehr verwenden und in alten nach Moeglichkeit ausbauen! |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 43 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 44 | 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 | |
| 63 | RUECKGABEWERT |
| 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 | |
| 71 | BEMERKUNGEN |
| 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 | |
| 79 | BEISPIELE |
| 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 | |
| 110 | SIEHE AUCH |
| 111 | ========== |
| 112 | |
| 113 | P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS, |
| 114 | ModifySkillAttribute, QuerySkillAttribute(), |
| 115 | RemoveSkillAttributeModifer(), QuerySkillAttributeModifier() |
| 116 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 117 | 07.08.2008 Zesstra |