blob: f290fc83853ffd8f03344a85961e99700caae469 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2trigger_sensitive_attack()
3**************************
4
5
6FUNKTION
7========
8
9 varargs void trigger_sensitive_attack(object enemy, string key, int
10 dam, mixed spell, mixed *options);
11
12
13DEFINIERT IN
14============
15
16 eigenen sensitiven Objekten, wird aufgerufen von
17 /std/living/inventory.c
18
19
20ARGUMENTE
21=========
22
23 enemy
24 Der Gegner, der die Aktion ausgeloest hat.
25 key
26 Der ausloesende Schadenstyp.
27 dam
28 Der angerichtete Schaden.
29 spell
30 Wie bei Defend().
31 options
32 Array mit den in P_SENSITIVE angegebenen Optionen fuer diese
33 Aktion.
34
35
36BESCHREIBUNG
37============
38
39 Wenn der bei einem Angriff zugefuegte Schaden den in P_SENSITIVE
40 angegebenen Grenzwert uebersteigt sowie der als Schluessel angegebene
41 Schadenstyp in den Schaedenstypen des Angriffes vorkommt, wird diese
42 Funktion aufgerufen und kann entsprechend reagieren.
43
44
45RUeCKGABEWERT
46=============
47
48 keiner
49
50
51BEISPIELE
52=========
53
54 Eine Fackel, die sich bei Feuerattacken selbst entzuendet und bei
55 Wasserattacken verloescht, koennte man wie folgt implementieren:
56
57 inherit "/std/lightsource.c"
58
59 #include <properties.h>
60 #include <sensitive.h>
61 #include <combat.h>
62
63 create()
64 {
65 ::create();
66
67 SetProp(...); // die ueblichen Eigenschaften definieren
68
69 SetProp(P_SENSITIVE,
70 // Ereignis Key Grenze (keine Optionen)
71 ({ ({ SENSITIVE_ATTACK, DT_FIRE, 100 }),
72 ({ SENSITIVE_ATTACK, DT_WATER, 100 }) }) );
73 }
74
75 varargs void
76 trigger_sensitive_attack(object enemy, string key,
77 int dam, mixed spell)
78 {
79 // Es soll nicht verschwiegen werden, dass das Entzuenden und
80 // Loeschen einer Lichtquelle so leider nicht funktioniert...
81 if (key == DT_FIRE && !QueryProp(P_LIGHTED)) {
82 SetProp(P_LIGHTED, 1);
83 tell_object(environment(), "Die Fackel faengt Feuer.\n");
84 }
85 else if (key == DT_WATER && QueryProp(P_LIGHTED)) {
86 SetProp(P_LIGHTED, 0);
87 tell_object(environment(), "Die Fackel verlischt.\n");
88 }
89 }
90
91
92SIEHE AUCH
93==========
94
95 trigger_sensitive_inv(), sensitive Objekte
96
97Last modified: Sun May 19 15:56:25 1996 by Wargon