P_LIGHT_MODIFIER ================ NAME ---- :: P_LIGHT_MODIFIER "light_modifier" DEFINIERT IN ------------ :: /sys/properties.h BESCHREIBUNG ------------ :: Veraendert das Lichtlevel das von einem Lebewesen wahrgenommen wird. Der Wert dieser Property wird additiv in P_PLAYER_LIGHT beruecksichtigt. Es ist hiermit z.B. moeglich eine Sonnenbrille zu programmieren, diese veraendert ja nicht das tatsaechliche Lichtlevel, sondern verdunkelt nur die Sicht. ANMERKUNG --------- :: Damit NPCs in der Lage sind solche Gegenstaende richtig einzuschaetzen, sollte diese Property in jedem Gegenstand der einen Light-Modifier setzt, auch gesetzt sein. Das veraendern dieser Property in Spielern durch NPCs oder Gegenstaende ist selbstverstaendlich genehmigungspflichtig. BEISPIELE --------- :: // Ein NPC der auch in relativ dunklen Raeumen mit Lichtlevel -2 // noch sehen kann... create_default_npc(10); SetProp(P_LIGHT_MODIFIER, 3); // Eine Sonnenbrille, die das Lichtlevel um eins senkt. create() { : SetProp(P_ARMOUR_TYPE, AT_GLASSES); SetProp(P_LIGHT_MODIFIER, -1); : } // Achtung: Falls pl Query- oder Set-Methoden auf P_LIGHT_MODIFIER hat, // wird diese Methode hier furchtbar schief gehen und im besten Fall // nichts veraendern. In realen Objekten empfiehlt sich zumindest eine // Pruefung im Vorfeld, ob eine Query-/Set-Methode gesetzt ist. protected void InformWear(object pl, int silent, int all) { pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) -1); } protected void InformUnwear(object pl, int silent, int all) { pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) +1); } SIEHE AUCH ---------- :: P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()