blob: 0f33eacb8890a93b0256548104de5b58268611c4 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001P_TMP_DIE_HOOK
Zesstra953f9972017-02-18 15:37:36 +01002**************
MG Mud User88f12472016-06-24 23:31:02 +02003
Zesstra953f9972017-02-18 15:37:36 +01004********************* VERALTETE PROPERTY
5****************************** * Diese Property ist veraltet. Bitte
6nicht mehr in neuem Code nutzen. * **********************************
7************************************* P_TMP_DIE_HOOK
MG Mud User88f12472016-06-24 23:31:02 +02008
MG Mud User88f12472016-06-24 23:31:02 +02009
Zesstra953f9972017-02-18 15:37:36 +010010NAME
11====
MG Mud User88f12472016-06-24 23:31:02 +020012
Zesstra953f9972017-02-18 15:37:36 +010013 P_TMP_DIE_HOOK "die_hook"
MG Mud User88f12472016-06-24 23:31:02 +020014
MG Mud User88f12472016-06-24 23:31:02 +020015
Zesstra953f9972017-02-18 15:37:36 +010016DEFINIERT IN
17============
MG Mud User88f12472016-06-24 23:31:02 +020018
Zesstra953f9972017-02-18 15:37:36 +010019 /sys/new_skills.h
MG Mud User88f12472016-06-24 23:31:02 +020020
MG Mud User88f12472016-06-24 23:31:02 +020021
Zesstra953f9972017-02-18 15:37:36 +010022BESCHREIBUNG
23============
MG Mud User88f12472016-06-24 23:31:02 +020024
Zesstra953f9972017-02-18 15:37:36 +010025 Mittels dieser Property kann der Tod eines Livings abgewendet werden.
MG Mud User88f12472016-06-24 23:31:02 +020026
Zesstra953f9972017-02-18 15:37:36 +010027 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.
MG Mud User88f12472016-06-24 23:31:02 +020032
Zesstra953f9972017-02-18 15:37:36 +010033 Der Methode wird ein int uebergeben, ob das Living Opfer von Gift
34 (P_POISON) war.
MG Mud User88f12472016-06-24 23:31:02 +020035
Zesstra953f9972017-02-18 15:37:36 +010036 Gibt die Funktion einen Wert != 0 zurueck, wird die() sofort abgebrochen
37 und das Living stirbt nicht.
38
39
40BEMERKUNGEN
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
50
51BEISPIELE
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;
MG Mud User88f12472016-06-24 23:31:02 +020073 }
74
Zesstra953f9972017-02-18 15:37:36 +010075 // 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
81
82SIEHE AUCH
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
MG Mud User88f12472016-06-24 23:31:02 +020089
9008.12.2008, Zesstra