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