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