blob: c7741eef12bac5057ace6ea595a10d2f573dd4ef [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001
Zesstra953f9972017-02-18 15:37:36 +01002P_LIGHT_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_LIGHT_MODIFIER "light_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/properties.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============
20
21 Veraendert das Lichtlevel das von einem Lebewesen wahrgenommen wird.
22 Der Wert dieser Property wird additiv in P_PLAYER_LIGHT beruecksichtigt.
23 Es ist hiermit z.B. moeglich eine Sonnenbrille zu programmieren, diese
24 veraendert ja nicht das tatsaechliche Lichtlevel, sondern verdunkelt nur
25 die Sicht.
26
27
28ANMERKUNG
29=========
30
31 Damit NPCs in der Lage sind solche Gegenstaende richtig einzuschaetzen,
32 sollte diese Property in jedem Gegenstand der einen Light-Modifier setzt,
33 auch gesetzt sein. Das veraendern dieser Property in Spielern durch NPCs
34 oder Gegenstaende ist selbstverstaendlich genehmigungspflichtig.
35
36
37BEISPIELE
38=========
39
40 // Ein NPC der auch in relativ dunklen Raeumen mit Lichtlevel -2
41 // noch sehen kann...
42 create_default_npc(10);
43 SetProp(P_LIGHT_MODIFIER, 3);
44
45 // Eine Sonnenbrille, die das Lichtlevel um eins senkt.
46
47 create()
48 {
49
50 :
51
52 SetProp(P_ARMOUR_TYPE, AT_GLASSES);
53 SetProp(P_LIGHT_MODIFIER, -1);
54
55 :
56
57 }
58
59 // Achtung: Falls pl Query- oder Set-Methoden auf P_LIGHT_MODIFIER hat,
60 // wird diese Methode hier furchtbar schief gehen und im besten Fall
61 // nichts veraendern. In realen Objekten empfiehlt sich zumindest eine
62 // Pruefung im Vorfeld, ob eine Query-/Set-Methode gesetzt ist.
63 protected void InformWear(object pl, int silent, int all) {
64 pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) -1);
65 }
66
67 protected void InformUnwear(object pl, int silent, int all) {
68 pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) +1);
69 }
70
71
72SIEHE AUCH
73==========
74
75 P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()