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¶
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;
}