P_TMP_DIE_HOOK¶
***************** VERALTETE PROPERTY ************************** * Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. * ******************************************************************* P_TMP_DIE_HOOK
NAME¶
P_TMP_DIE_HOOK                "die_hook"
DEFINIERT IN¶
/sys/new_skills.h
BESCHREIBUNG¶
Mittels dieser Property kann der Tod eines Livings abgewendet werden.
Es wird an dem Living die Property als mindestens 3-elementiges Array
({zeitpunkt, objekt, methode, ...})
gesetzt und die Methode 'methode' wird dann waehrend des die() des
Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
Bei Geistern wird der Hook nicht gerufen.
Der Methode wird ein int uebergeben, ob das Living Opfer von Gift
(P_POISON) war.
Gibt die Funktion einen Wert != 0 zurueck, wird die() sofort abgebrochen
und das Living stirbt nicht.
BEMERKUNGEN¶
- Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
- falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
  Property auf 0 gesetzt
- vor dem Setzen immer auf die Existenz eines gueltigen Hooks
  pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
  im Code anderer und ist andererseits unfair gegenueber ihnen
BEISPIELE¶
*** ein besonderer Giftschutz .. wirkt beim Tod ***
// pruefen, ob nicht ein anderer Modifier existiert
if(!pointerp(tmp=TP->QueryProp(P_TMP_DIE_HOOK)) ||
   sizeof(tmp)<3 || tmp[0]<=time()) {
  TP->SetProp(P_TMP_DIE_HOOK,
              ({time()+120+random(10), this_object(), "prevent_die"}));
// die gerufene Methode
int prevent_die(int poison) {
  int ret;
  if(poison) {
    tell_object(previous_object(),
      "Ein Zauber reinigt im Moment des Todes dein Blut!\n");
    tell_object(environment(previous_object()),
      previous_object()->Name(WER,1)+" wird von Lichtern umhuellt.\n",
      ({previous_object()}));
    ret=1;
  }
  // wir helfen nur einmal ... und ein Tod vernichtet die Hilfe auch
  previous_object()->SetProp(P_TMP_DIE_HOOK, 0);
  return ret;
}
SIEHE AUCH¶
Tod:       die(L)
Sonstiges: P_POISON, P_KILLS, P_GHOST
Hooks:     P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK, P_TMP_DEFEND_HOOK
neue Hooks: std/hooks
08.12.2008, Zesstra