blob: 22539d91856f71ec4926ac1994f3b77e2ec2f45b [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001trigger_sensitive_attack()
Zesstra953f9972017-02-18 15:37:36 +01002**************************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 varargs void trigger_sensitive_attack(object enemy, string key, int
9 dam, mixed spell, mixed *options);
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 eigenen sensitiven Objekten, wird aufgerufen von
16 /std/living/inventory.c
MG Mud User88f12472016-06-24 23:31:02 +020017
MG Mud User88f12472016-06-24 23:31:02 +020018
Zesstra953f9972017-02-18 15:37:36 +010019ARGUMENTE
20=========
MG Mud User88f12472016-06-24 23:31:02 +020021
Zesstra953f9972017-02-18 15:37:36 +010022 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.
MG Mud User88f12472016-06-24 23:31:02 +020033
MG Mud User88f12472016-06-24 23:31:02 +020034
Zesstra953f9972017-02-18 15:37:36 +010035BESCHREIBUNG
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
43
44RUeCKGABEWERT
45=============
46
47 keiner
48
49
50BEISPIELE
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");
MG Mud User88f12472016-06-24 23:31:02 +020083 }
Zesstra953f9972017-02-18 15:37:36 +010084 else if (key == DT_WATER && QueryProp(P_LIGHTED)) {
85 SetProp(P_LIGHTED, 0);
86 tell_object(environment(), "Die Fackel verlischt.\n");
MG Mud User88f12472016-06-24 23:31:02 +020087 }
Zesstra953f9972017-02-18 15:37:36 +010088 }
MG Mud User88f12472016-06-24 23:31:02 +020089
MG Mud User88f12472016-06-24 23:31:02 +020090
Zesstra953f9972017-02-18 15:37:36 +010091SIEHE AUCH
92==========
93
94 trigger_sensitive_inv(), sensitive Objekte
95
MG Mud User88f12472016-06-24 23:31:02 +020096Last modified: Sun May 19 15:56:25 1996 by Wargon