blob: f290fc83853ffd8f03344a85961e99700caae469 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002trigger_sensitive_attack()
Zesstra953f9972017-02-18 15:37:36 +01003**************************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 varargs void trigger_sensitive_attack(object enemy, string key, int
10 dam, mixed spell, mixed *options);
MG Mud User88f12472016-06-24 23:31:02 +020011
MG Mud User88f12472016-06-24 23:31:02 +020012
Zesstra953f9972017-02-18 15:37:36 +010013DEFINIERT IN
14============
MG Mud User88f12472016-06-24 23:31:02 +020015
Zesstra953f9972017-02-18 15:37:36 +010016 eigenen sensitiven Objekten, wird aufgerufen von
17 /std/living/inventory.c
MG Mud User88f12472016-06-24 23:31:02 +020018
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020ARGUMENTE
21=========
MG Mud User88f12472016-06-24 23:31:02 +020022
Zesstra953f9972017-02-18 15:37:36 +010023 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.
MG Mud User88f12472016-06-24 23:31:02 +020034
MG Mud User88f12472016-06-24 23:31:02 +020035
Zesstra953f9972017-02-18 15:37:36 +010036BESCHREIBUNG
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");
MG Mud User88f12472016-06-24 23:31:02 +020084 }
Zesstra953f9972017-02-18 15:37:36 +010085 else if (key == DT_WATER && QueryProp(P_LIGHTED)) {
86 SetProp(P_LIGHTED, 0);
87 tell_object(environment(), "Die Fackel verlischt.\n");
MG Mud User88f12472016-06-24 23:31:02 +020088 }
Zesstra953f9972017-02-18 15:37:36 +010089 }
MG Mud User88f12472016-06-24 23:31:02 +020090
MG Mud User88f12472016-06-24 23:31:02 +020091
Zesstra953f9972017-02-18 15:37:36 +010092SIEHE AUCH
93==========
94
95 trigger_sensitive_inv(), sensitive Objekte
96
MG Mud User88f12472016-06-24 23:31:02 +020097Last modified: Sun May 19 15:56:25 1996 by Wargon