Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//lfun/die

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 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

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.