die() ===== 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 :doc:`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 -------- .. code-block:: pike 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 ---------- :doc:`Defend`, :doc:`do_damage`, :doc:`second_life`, :doc:`../props/P_POISON`, :doc:`../props/P_DEADS`, :doc:`../props/P_KILL_NAME`, :doc:`../props/P_KILL_MSG`, :doc:`../props/P_MURDER_MSG`, :doc:`../props/P_DIE_MSG`, :doc:`../props/P_ZAP_MSG`, :doc:`../props/P_ENEMY_DEATH_SEQUENCE`, :doc:`../props/P_CORPSE`, :doc:`../props/P_NOCORPSE`, extern_call, /std/corpse, /std/hooks Letzte Aenderung: 17.03.2019, Bugfix