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