Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc//lfun/diedie()
*****
FUNKTION
========
public varargs void die(int poisondeath,int extern);
DEFINIERT IN
============
/std/living/life.c
ARGUMENTE
=========
poisondeath
Dieses Flag sollte bei einem Gifttod (P_POISON) gesetzt sein.
extern
Ex- oder interner Aufruf.
BESCHREIBUNG
============
Das Lebewesen stirbt, meist automatisch von do_damage() ausgeloest,
wenn 0 HP unterschritten werden. In diesem Fall wird der Kampf
beendet, Gift, Alkohol, Trink- und Esswerte, Blindheit, Taubheit
u.s.w. auf Null gesetzt oder geloescht.
Es wird automatisch eine Leiche (siehe auch P_CORPSE, P_NOCORPSE)
nebst Todesmeldungen (siehe auch P_DIE_MSG) erzeugt, und fuer
Spieler werden Killstupse vergeben, sofern notwendig.
Ueber den Hook H_HOOK_DIE kann man jedoch auf den Automatismus
Einfluss nehmen, z.B. koennte ein temporaerer Todesbann-Zauber das
Sterben fuer kurze Zeit verhindern.
RUeCKGABEWERT
=============
keiner
BEMERKUNGEN
===========
Diese Funktion sollte nur selten direkt verwendet werden. Meist ist
der uebliche Weg ueber Defend() -> do_damage() -> die() die logisch
bessere und balancetechnisch guenstigere Loesung.
Diese Funktion sollte nur ueberschrieben werden, wenn tatsaechlich
einfluss auf das Sterben genommen werden soll. Wird nur ein Item
hinzugefuegt, ist es sinnvoller second_life() zu verwenden.
Wird die() ueberschrieben, sollte man nicht nur das Argument extern
uebergeben, sondern mit extern_call() verodern (siehe Beispiel),
weil das geerbte die() den externen Aufruf nicht mehr erkennen
kann.
BEISPIEL
========
public varargs void die(int poisondeath, int extern)
{
// Dieser NPC soll nicht an Gift sterben.
if(poisondeath) return;
// Das geerbte die() aufrufen, dabei die Argumente uebergeben und ggf.
// extern setzen.
::die(poisondeath, extern||extern_call());
}
SIEHE AUCH
==========
Defend(), do_damage(), second_life(), P_POISON, P_DEADS,
P_KILL_NAME, P_KILL_MSG, P_MURDER_MSG, P_DIE_MSG, P_ZAP_MSG,
P_ENEMY_DEATH_SEQUENCE, P_CORPSE, P_NOCORPSE, extern_call,
/std/corpse, /std/hooks
Letzte Aenderung: 17.03.2019, Bugfix
zurück zur Übersicht