Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 1 | |
| 2 | P_MURDER_MSG |
| 3 | ************ |
| 4 | |
| 5 | |
| 6 | NAME |
| 7 | ==== |
| 8 | |
| 9 | P_MURDER_MSG "murder_msg" |
| 10 | |
| 11 | |
| 12 | DEFINIERT IN |
| 13 | ============ |
| 14 | |
| 15 | /sys/properties.h |
| 16 | |
| 17 | |
| 18 | BESCHREIBUNG |
| 19 | ============ |
| 20 | |
| 21 | In dieser Property kann man einen String oder eine Closure ablegen |
| 22 | dessen Wert bzw. deren Resultat beim Tod des NPCs auf dem |
| 23 | Moerder-Kanal erscheint. |
| 24 | Normalerweise ist die Property nicht gesetzt, woraufhin zufaellig |
| 25 | eine Meldung generiert wird. |
| 26 | |
| 27 | Ob der Tod eines NPCs auf dem Moerder-Kanal erscheint, haengt davon ab, |
| 28 | wie oft und welche Art von NPCs in der letzten Zeit getoetet wurden. Zum |
| 29 | Beispiel ist es eher selten, dass ein schwacher NPC auf dem Kanal |
| 30 | erscheint, wenn kuerzlich viele starke NPCs getoetet wurden. Allerdings |
| 31 | kann man auf diese Regelung mittels der Property P_FORCE_MURDER_MSG |
| 32 | Einfluss nehmen. |
| 33 | |
| 34 | Wird in einen String der Platzhalter %s eingefuegt, so erscheint an der |
| 35 | Stelle spaeter der Name des Moerders. |
| 36 | |
| 37 | |
| 38 | BEISPIELE |
| 39 | ========= |
| 40 | |
| 41 | // Zum Beispiel koennte man ja bei einer Ratte, die getoetet wird, |
| 42 | // folgendes auf dem Moerder-Kanal ausgeben lassen: |
| 43 | SetProp(P_MURDER_MSG, |
| 44 | "Ratten aller MUDs, vereinigt euch gegen %s!"); |
| 45 | |
| 46 | |
| 47 | // Um auch mal eine Closure zu zeigen: die Ratte koennte auch ihre |
| 48 | // Meldung erst bei ihrem Tod erstellen lassen: |
| 49 | private string moerder_meldung() { |
| 50 | return ({"Achweh!", "Au!", "Weia!"})[random(3)]; |
| 51 | } |
| 52 | |
| 53 | SetProp(P_MURDER_MSG, #'moerder_meldung); |
| 54 | |
| 55 | |
| 56 | BEMERKUNGEN |
| 57 | =========== |
| 58 | |
| 59 | - P_NOCORPSE: |
| 60 | Ist in dem NPC die Property P_NOCORPSE gesetzt, so wird die |
| 61 | Moerdermeldung nicht auf dem Kanal gesendet, da diese Ausgabe ueber |
| 62 | /std/corpse laeuft. |
| 63 | Will man dennoch eine Meldung, so sollte man /std/corpse im die() |
| 64 | selbst clonen, daran Identify(this_object()) rufen und das geclonte |
| 65 | Objekt wieder entsorgen. |
| 66 | |
| 67 | - Closures: |
| 68 | Closures bieten sich an, wenn ein zentrales Objekt fuer mehrere NPCs |
| 69 | bestimmte Moerdermeldungen generieren soll. Dann muss nur noch bei |
| 70 | den NPCs die Closure, die auf die erstellende Methode zeigt gesetzt |
| 71 | werden. |
| 72 | |
| 73 | |
| 74 | SIEHE AUCH |
| 75 | ========== |
| 76 | |
| 77 | Tod: die(L) |
| 78 | Verwandt: P_FORCE_MURDER_MSG |
| 79 | Todesmeldungen: P_KILL_NAME, P_KILL_MSG, P_DIE_MSG |
| 80 | P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE |
| 81 | Sonstiges: P_CORPSE, P_NOCORPSE, /std/corpse.c |
| 82 | |
| 83 | 30. Mai 2006, Gloinson |