Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 1 | second_life() |
| 2 | ============= |
| 3 | |
| 4 | FUNKTION |
| 5 | -------- |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 6 | |
Bugfix | 36bdd5d | 2019-09-04 21:09:26 +0200 | [diff] [blame] | 7 | protected varargs int second_life(object corpse); |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 8 | |
| 9 | DEFINIERT IN |
| 10 | ------------ |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 11 | |
Bugfix | 36bdd5d | 2019-09-04 21:09:26 +0200 | [diff] [blame] | 12 | /std/player/life.c |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 13 | |
| 14 | ARGUMENTE |
| 15 | --------- |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 16 | |
Bugfix | 36bdd5d | 2019-09-04 21:09:26 +0200 | [diff] [blame] | 17 | corpse |
| 18 | Leiche des Lebewesens (sofern es eine hat) |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 19 | |
| 20 | BESCHREIBUNG |
| 21 | ------------ |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 22 | |
Zesstra | 4fdd975 | 2019-03-17 16:21:05 +0100 | [diff] [blame] | 23 | Diese Funktion wird im die() des Lebewesens aufgerufen, wenn sicher |
| 24 | ist, dass es stirbt. Die Funktion bestimmt dabei, ob ein Lebewesen |
| 25 | nach dem Tod zerstoert (NPC) oder nur zum Geist wird (Spieler). |
| 26 | |
| 27 | Ueblicherweise ist diese Funktion nur im Spieler definiert und regelt |
| 28 | EP-Verlust und dergleichen. Sie wird aber auch in NPCs gerufen und man |
| 29 | kann dort z.B. Items clonen oder entsorgen. |
| 30 | |
| 31 | NPC *muessen* 0 zurueckgeben, Spieler geben immer 1 zurueck. |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 32 | |
| 33 | RUeCKGABEWERT |
| 34 | ------------- |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 35 | |
Zesstra | 4fdd975 | 2019-03-17 16:21:05 +0100 | [diff] [blame] | 36 | 0 |
| 37 | wenn das Objekt nach dem Tod zerstoert wird (NPC) |
| 38 | 1 |
| 39 | wenn das Objekt im Tod nicht zerstoert wird (Spieler) |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 40 | |
Zesstra | 5960a56 | 2019-09-06 20:58:15 +0200 | [diff] [blame] | 41 | BEMERKUNGEN |
| 42 | ----------- |
| 43 | |
| 44 | Das Inventar des Livings wurde bei Aufruf von second_live() normalerweise |
| 45 | schon in die Leiche bewegt, sofern diese existiert. War das Inventar sehr |
| 46 | gross, koennen allerdings noch vereinzelte Objekte im Living sein, die |
| 47 | erst spaeter bewegt werden. Will man noch Gegenstaende hinzufuegen, muss |
| 48 | man diese direkt in die Leiche bewegen, *nicht* in das gestorbene |
| 49 | Lebewesen. |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 50 | |
Bugfix | 2b780f0 | 2019-09-04 21:23:53 +0200 | [diff] [blame^] | 51 | BEISPIEL |
| 52 | -------- |
| 53 | |
| 54 | .. code-block:: pike |
| 55 | |
| 56 | protected varargs int second_life(object corpse) |
| 57 | { |
| 58 | // Wenn man sich wirklich sicher ist, dass das Lebewesen eine Leiche |
| 59 | // hat (weil es der eigene NPC ist), ist es verfuehrerisch, die Pruefung |
| 60 | // auf die Existenz der Leiche wegzulassen. Aber auch dann koennte es ja |
| 61 | // passieren, dass diese vom Raum bereits zerstoert wurde. |
| 62 | if (corpse) |
| 63 | corpse->AddItem("tolle_trophaehe",REFRESH_NONE); |
| 64 | return 0; |
| 65 | } |
| 66 | |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 67 | SIEHE AUCH |
| 68 | ---------- |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 69 | |
Zesstra | 4fdd975 | 2019-03-17 16:21:05 +0100 | [diff] [blame] | 70 | die() |
Zesstra | 1862697 | 2017-01-31 10:38:27 +0100 | [diff] [blame] | 71 | |
Zesstra | 5960a56 | 2019-09-06 20:58:15 +0200 | [diff] [blame] | 72 | Letzte Aenderung: 04.09.2019, Bugfix |
| 73 | |