// 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;
}
|