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