blob: 616da9647acf6bcbeb81096a953e7656b6fffdcb [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001P_TMP_DIE_HOOK
2==============
3
4********************* VERALTETE PROPERTY ******************************
5* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
6***********************************************************************
7P_TMP_DIE_HOOK
8
9NAME
10----
11::
12
13 P_TMP_DIE_HOOK "die_hook"
14
15DEFINIERT IN
16------------
17::
18
19 /sys/new_skills.h
20
21BESCHREIBUNG
22------------
23::
24
25 Mittels dieser Property kann der Tod eines Livings abgewendet werden.
26
27 Es wird an dem Living die Property als mindestens 3-elementiges Array
28 ({zeitpunkt, objekt, methode, ...})
29 gesetzt und die Methode 'methode' wird dann waehrend des die() des
30 Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
31 Bei Geistern wird der Hook nicht gerufen.
32
33 Der Methode wird ein int uebergeben, ob das Living Opfer von Gift
34 (P_POISON) war.
35
36 Gibt die Funktion einen Wert != 0 zurueck, wird die() sofort abgebrochen
37 und das Living stirbt nicht.
38
39BEMERKUNGEN
40-----------
41::
42
43 - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
44 - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
45 Property auf 0 gesetzt
46 - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
47 pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
48 im Code anderer und ist andererseits unfair gegenueber ihnen
49
50BEISPIELE
51---------
52::
53
54 *** ein besonderer Giftschutz .. wirkt beim Tod ***
55 // pruefen, ob nicht ein anderer Modifier existiert
56 if(!pointerp(tmp=TP->QueryProp(P_TMP_DIE_HOOK)) ||
57 sizeof(tmp)<3 || tmp[0]<=time()) {
58 TP->SetProp(P_TMP_DIE_HOOK,
59 ({time()+120+random(10), this_object(), "prevent_die"}));
60
61 // die gerufene Methode
62 int prevent_die(int poison) {
63 int ret;
64
65 if(poison) {
66 tell_object(previous_object(),
67 "Ein Zauber reinigt im Moment des Todes dein Blut!\n");
68 tell_object(environment(previous_object()),
69 previous_object()->Name(WER,1)+" wird von Lichtern umhuellt.\n",
70 ({previous_object()}));
71
72 ret=1;
73 }
74
75 // wir helfen nur einmal ... und ein Tod vernichtet die Hilfe auch
76 previous_object()->SetProp(P_TMP_DIE_HOOK, 0);
77
78 return ret;
79 }
80
81SIEHE AUCH
82----------
83::
84
85 Tod: die(L)
86 Sonstiges: P_POISON, P_KILLS, P_GHOST
87 Hooks: P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK, P_TMP_DEFEND_HOOK
88 neue Hooks: std/hooks
89
9008.12.2008, Zesstra
91