| 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; |
| } |
| |
| |
| SIEHE AUCH |
| ========== |
| |
| die() |
| |
| Letzte Aenderung: 04.09.2019, Bugfix |