blob: 80d795989e53b7116767c05bc26f10e907101759 [file] [log] [blame]
second_life()
=============
FUNKTION
--------
protected varargs int second_life(object corpse);
DEFINIERT IN
------------
/std/player/life.c
ARGUMENTE
---------
corpse
Leiche des Lebewesens (sofern es eine hat)
BESCHREIBUNG
------------
Diese Funktion wird im die() des Lebewesens aufgerufen, wenn sicher
ist, dass es stirbt. Die Funktion bestimmt dabei, ob ein Lebewesen
nach dem Tod zerstoert (NPC) oder nur zum Geist wird (Spieler).
Ueblicherweise ist diese Funktion nur im Spieler definiert und regelt
EP-Verlust und dergleichen. Sie wird aber auch in NPCs gerufen und man
kann dort z.B. Items clonen oder entsorgen.
NPC *muessen* 0 zurueckgeben, Spieler geben immer 1 zurueck.
RUeCKGABEWERT
-------------
0
wenn das Objekt nach dem Tod zerstoert wird (NPC)
1
wenn das Objekt im Tod nicht zerstoert wird (Spieler)
BEMERKUNGEN
-----------
Das Inventar des Livings wurde bei Aufruf von second_live() normalerweise
schon in die Leiche bewegt, sofern diese existiert. War das Inventar sehr
gross, koennen allerdings noch vereinzelte Objekte im Living sein, die
erst spaeter bewegt werden. Will man noch Gegenstaende hinzufuegen, muss
man diese direkt in die Leiche bewegen, *nicht* in das gestorbene
Lebewesen.
BEISPIEL
--------
.. code-block:: pike
protected varargs int second_life(object corpse)
{
// Wenn man sich wirklich sicher ist, dass das Lebewesen eine Leiche
// hat (weil es der eigene NPC ist), ist es verfuehrerisch, die Pruefung
// auf die Existenz der Leiche wegzulassen. Aber auch dann koennte es ja
// passieren, dass diese vom Raum bereits zerstoert wurde.
if (corpse)
corpse->AddItem("tolle_trophaehe",REFRESH_NONE);
return 0;
}
SIEHE AUCH
----------
die()
Letzte Aenderung: 04.09.2019, Bugfix