blob: 6b1fb006d3eb254acc835ac00af65937d84c7349 [file] [log] [blame]
EVENT:
EVT_LIB_NPC_DEATH(x)
DEFINIERT IN:
/sys/events.h
GETRIGGERT VON:
/std/living/life.c
BESCHREIBUNG:
Dieser Event wird immer dann von einem NPC ausgeloest, wenn dieser gerade
getoetet wurde (um genau zu sein: im die()).
Dieser Event macht vermutlich die meisten Die-Hooks einfach unnoetig, da es
bei vielen nur darum geht, zu erfahren, ob der NPC tot ist, wer ihn
getoetet hat und ob derjenige genug Schaden gemacht hat. Dies laesst sich
aus den Daten dieses Event ebenfalls ermitteln, ohne den Aufwand eines
Hooks zu betreiben.
Bitte beachtet, dass in diesem Fall das ebenfalls gelieferte triggernde
Objekt (der NPC) bereits zerstoert ist, wenn ihr den Event empfangt,
'trigob' also 0 ist! Ihr muesst also den Eintrag E_OBNAME im Datenmapping
des Events nutzen, um herauszufinden, welcher NPC getoetet wurde.
PARAMETER:
Der an das Event-Define zu uebergebende Parameter "x" muss ein String
sein.
Uebergibt man den Leerstring "", registriert man sich fuer das globale
Event EVT_LIB_NPC_DEATH(""), ueber das der Tod saemtlicher NPCs
weitergemeldet wird.
Uebergibt man den load_name() des Zielobjekts als Parameter, so werden
nur die Tode von NPCs gemeldet, die sich von der Blueprint des
Zielobjekts ableiten, also auch aller Clones.
EVENT-DATEN:
Die Daten werden als Mapping uebergeben:
([ E_OBNAME: (string) Objektname des getoeteten NPCs,
E_ENVIRONMENT: (object) Environment des Opfer beim Tod,
E_TIME: (int) Zeitstempel des Todes,
P_NAME: (string,string*) P_NAME,
P_KILLER: (object) der Killer, s. Property,
P_ENEMY_DAMAGE: (mapping) s. Manpage P_ENEMY_DAMAGE,
P_LAST_DAMAGE: (int) s. Property,
P_LAST_DAMTYPES: (string *) s. Property,
E_EXTERNAL_DEATH:(int) Flag, ob die() von aussen gerufen,
E_POISON_DEATH: (int) Flag, ob der Tod durch Gift ausgeloest,
E_CORPSE: (object) Leiche, sofern es eine gibt
P_XP: (int) P_XP,
P_ATTRIBUTES: (int*) P_ATTRIBUTES,
P_MAX_HP: (int) P_MAX_HP,
P_HANDS: (mixed) P_HANDS,
P_ALIGN: (int) P_ALIGN)
P_RACE: (string) P_RACE,
P_CLASS: (string*) P_CLASS,
])
BEMERKUNGEN:
Bei der Registrierung fuer die Todes-Events von einzelnen NPCs kann es
im Fall von VC-generierten NPCs zu unerwarteten Effekten kommen, da hier
load_name() fuer jedes Objekt den Namen des VC-Standardobjekts
zurueckliefert.
Die Registrierung fuer das Todes-Event eines einzelnen Clones ist nicht
moeglich.
SIEHE AUCH:
events, RegisterEvent(), UnregisterEvent(), TriggerEvent(), eventd
-----------------------------------------------------------------------------
21.08.2007, Zesstra