blob: 5f4b34bb9d6344678ccc9ab387080d588a245bfa [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001P_ATTRIBUTES_MODIFIER
2*********************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005NAME
6====
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 P_ATTRIBUTES_MODIFIER "attributes_modifier"
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 /sys/living/attributes.h
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017BESCHREIBUNG
18============
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 In dieser Property werden Attribut-Modifikatoren gespeichert, die
21 laengere Zeit wirksam sein sollen, tlw. auch ueber einen Reboot
22 hinweg.
23 Intern werden die Modifikatoren in einem Mapping der Form
24
25 ([ Setzer-Key : ([ A_xy : Wert, ... ]) , ... ])
26
27 gespeichert. Das Setzen folg hingegen in der Form
28
29 spieler->SetProp(P_ATTRIBUTES_MODIFIER, ([ A_xy : Wert, ... ]));
30 oder
31 spieler->SetProp(P_ATTRIBUTES_MODIFIER, ({ Setzer-Key, ([ ... ]) }));
32
33 Bei der ersten Variante wird hierbei der Filename des setzenden Objektes
34 als Setzer-Key genommen.
35 Es koennen also durchaus von mehreren Objekten Modifier gesetzt werden.
36 Bekannte Modifier sind:
37
38 #death Attribut-Abzug durch Todesfolgen (Mudlib)
39 #drain Statabzug durch NPCs (Paracelsus)
40 #frosch Staerken-Abzug bei Froeschen (Mudlib)
41
42
43BEMERKUNGEN
44===========
45
46 Keine echte Property, _query_attributes_modifier() und
47 _set_attributes_modifier() sind in /std/living/attributes.c
48 implementiert
49 - SetProp/QueryProp nutzen!
50 - Wenn ein Modifier nicht mehr gebracht wird, nicht die Attributswerte auf
51 0 setzen, sondern den ganzen Eintrag! also:
52 SetProp(P_ATTRIBUTES_MODIFIER, ([]) );
53 oder: SetProp(P_ATTRIBUTES_MODIFIER, 0 );
54 aber nicht: SetProp(P_ATTRIBUTES_MODIFIER, ([A_STR:0]));
55
56
57BEISPIELE
58=========
59
60 // ein Bonus ... 'ende'-fest (muss also per uid gesichert werden)
61 player->SetProp(P_ATTRIBUTES_MODIFIER,
62 ({"g_klerus_segen", ([A_CON:5, A_INT:5])}));
63 ...
64 player->SetProp(P_ATTRIBUTES_MODIFIER, ({"g_klerus_segen", 0}));
65
66
67SIEHE AUCH
68==========
69
70 QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
71 SetAttribute(), SetRealAttribute(), UpdateAttributes(),
72 SetTimedAttrModifier(), QueryTimedAttrModifier(),
73 DeleteTimedAttrModifier(),
74 P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_TIMED_ATTR_MOD,
75 P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
76
MG Mud User88f12472016-06-24 23:31:02 +020077Last modified: Tue Jul 27 20:00:20 2004 by Muadib