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