Ein Schiffsjunge mit mörderabhängigen Todesmeldungen
![]()
// Je nachdem, ob ihn ein weiblicher oder maennlicher Spieler getötet // hat, ändert sich seine Todesmeldung. Dazu lauschen wir auf ET_DEATH // nach dem Original von Holger@Wunderland inherit "npc"; #pragma strong_types #include <properties.h> #include <events.h> #include <death.h> // fuer P_DIE_MSG void todes_meldung(mixed data, string type); void create() { if (!clonep()) return; ::create(); create_default_npc(13); SetProp(P_LONG, "Der arme Schiffsjunge steht mit zerlumpten Kleidern vor " "Dir. Sicher hat er einmal von weiten Reisen auf allen Weltmeeren " "getraeumt, doch nun hat es ihn hierher verschlagen und er rackert sich " "Tag fuer Tag in der Hafenmeisterei ab. Er sieht nicht besonders gluecklich aus, " "doch an seinen freundlichen Augen siehst Du, dass er nach wie vor ein " "gutes Herz hat."); SetProp(P_NAME, "Schiffsjunge"); SetProp(P_PLURAL, "Schiffsjungen"); SetProp(P_NAME_ADJ, "arm"); AddAdjective(({"arm","armer","armen", "jung", "junger", "jungen"})); SetProp(P_GENDER, MALE); SetProp(P_RACE, "Mensch"); SetProp(P_ALIGN, 850); AddDetail(({"kleider", "bekleidung", "kleidung"}), "Die Kleider des Jungen sind schon ziemlich zerlumpt. Ausserdem scheinen sie ihm nicht " "mehr so richtig zu passen. Die Hosen sind schon viel zu kurz und spannen ueber dem knackigen Po " "des Jungen. Und auch das Hemd scheint ihm zu eng und zu kurz zu werden."); AddDetail(({"hose"}), "Die Hose des Jungen ist ihm wohl zu klein geworden. Die Hosenbeine gehen ihm nur noch knapp " "uebers Knie und liegt schon fast gefaehrlich eng an seinem Po an."); AddDetail(({"po", "knackigen po", "knackiger po", "knackpo", "geltung"}), "Hmm, der Po des Jungen ist richtig knackig. Durch die enge Hose kommt er erst richtig zur " "Geltung. Er ist wohl doch kein Junge mehr sondern schon eher ein junger Mann."); AddDetail(({"hosenbeine", "hosenbein", "knie", "kniee"}), "Die Hosenbeine reichen dem Jungen nur noch knapp bis uebers Knie. Er braeuchte wohl dringend " "neue Kleidung."); AddDetail(({"hemd"}), "Das Hemd des Jungen hat viel zu kurze Aermel und es fehlen ihm schon ein paar Knoepfe, so dass " "es teilweise offen steht und eine braungebrannte muskuloese Brust freigibt."); AddDetail(({"muskeln", "muskel"}), "Der Junge hat ganz schoene Muskeln, wie Du an Brust und Armen erkennen kannst. Auch die Beinmuskeln sind " "nicht ohne. Das kommt sicherlich von seiner Arbeit hier im Hafen."); AddDetail(({"beine", "bein", "beinmuskel", "beinmuskeln", "waden", "schenkel", "oberschenkel", "unterschenkel", "wade", "muskuloese beine"}), "Der Junge hat schoene muskuloese Beine. Die enge Hose laesst das ganz gut erkennen."); AddDetail(({"brust", "muskuloese brust", "braungebrannte brust"}), "Unter dem Hemd des Jungen erkennst Du eine schoene muskuloese und braungebrannte Brust."); AddId(({"schiffsjunge", "junge", "mann"}), ({"schiffsjungen", "jungen", "maenner"})); AddInfo( "kleider|kleidung|sachen", ({ "erroete", 2, "sage Jaja, ich weiss, dass meine Sachen total zerlumpt sind, " "aber bei dem kargen Lohn hier, kann ich mir keine neuen Sachen leisten."})); AddInfo( "tag", ({ "seufze", 2, "sage Tag fuer Tag schufte ich hier fuer einen Hungerlohn. ", 2, "zwinker", "sage schmunzelnd:: Aber manchmal kommen auch huebsche Frauen " "hier her."})); // wir melden uns zum Lauschen an listen_event(ET_DEATH, EPRIO_MODIFY, #'todes_meldung); } void todes_meldung(mixed data, string type) { if (!stringp(type) || type!=ET_DEATH || !mappingp(data)) return; // Wenn nicht ich der Sterbende bin if (data[E_SENDER] != this_object() ) return; // Wenn es keinen Moerder gibt if (!data[E_DEATH_KILLOBJ]) return; // je nach Geschlecht des Moerders setzen wir die Todesmeldung switch (data[E_DEATH_KILLOBJ]->QueryProp(P_GENDER)) { case MALE: data[E_DEATH_MSG] = "Der arme Schiffsjunge denkt .o( Immer diese Eifersuchtsanfaelle. ) und stirbt."; break; case FEMALE: data[E_DEATH_MSG] = " ( Wir haetten noch so viel Spass miteinander )\n" "Der arme Schiffsjunge denkt .o( haben koennen. ) und stirbt."; break; } return; } |
| Start » Magierhandbuch » Dokumentation » Programmierbeispiele » Schiffsjunge | |
|
| |