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