blob: 6b1fb006d3eb254acc835ac00af65937d84c7349 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001EVENT:
2 EVT_LIB_NPC_DEATH(x)
3
4DEFINIERT IN:
5 /sys/events.h
6
7GETRIGGERT VON:
8 /std/living/life.c
9
10BESCHREIBUNG:
11 Dieser Event wird immer dann von einem NPC ausgeloest, wenn dieser gerade
12 getoetet wurde (um genau zu sein: im die()).
13 Dieser Event macht vermutlich die meisten Die-Hooks einfach unnoetig, da es
14 bei vielen nur darum geht, zu erfahren, ob der NPC tot ist, wer ihn
15 getoetet hat und ob derjenige genug Schaden gemacht hat. Dies laesst sich
16 aus den Daten dieses Event ebenfalls ermitteln, ohne den Aufwand eines
17 Hooks zu betreiben.
18
19 Bitte beachtet, dass in diesem Fall das ebenfalls gelieferte triggernde
20 Objekt (der NPC) bereits zerstoert ist, wenn ihr den Event empfangt,
21 'trigob' also 0 ist! Ihr muesst also den Eintrag E_OBNAME im Datenmapping
22 des Events nutzen, um herauszufinden, welcher NPC getoetet wurde.
23
24PARAMETER:
25 Der an das Event-Define zu uebergebende Parameter "x" muss ein String
26 sein.
27 Uebergibt man den Leerstring "", registriert man sich fuer das globale
28 Event EVT_LIB_NPC_DEATH(""), ueber das der Tod saemtlicher NPCs
29 weitergemeldet wird.
30 Uebergibt man den load_name() des Zielobjekts als Parameter, so werden
31 nur die Tode von NPCs gemeldet, die sich von der Blueprint des
32 Zielobjekts ableiten, also auch aller Clones.
33
34EVENT-DATEN:
35 Die Daten werden als Mapping uebergeben:
36 ([ E_OBNAME: (string) Objektname des getoeteten NPCs,
37 E_ENVIRONMENT: (object) Environment des Opfer beim Tod,
38 E_TIME: (int) Zeitstempel des Todes,
39 P_NAME: (string,string*) P_NAME,
40 P_KILLER: (object) der Killer, s. Property,
41 P_ENEMY_DAMAGE: (mapping) s. Manpage P_ENEMY_DAMAGE,
42 P_LAST_DAMAGE: (int) s. Property,
43 P_LAST_DAMTYPES: (string *) s. Property,
44 E_EXTERNAL_DEATH:(int) Flag, ob die() von aussen gerufen,
45 E_POISON_DEATH: (int) Flag, ob der Tod durch Gift ausgeloest,
46 E_CORPSE: (object) Leiche, sofern es eine gibt
47 P_XP: (int) P_XP,
48 P_ATTRIBUTES: (int*) P_ATTRIBUTES,
49 P_MAX_HP: (int) P_MAX_HP,
50 P_HANDS: (mixed) P_HANDS,
51 P_ALIGN: (int) P_ALIGN)
52 P_RACE: (string) P_RACE,
53 P_CLASS: (string*) P_CLASS,
54 ])
55
56BEMERKUNGEN:
57 Bei der Registrierung fuer die Todes-Events von einzelnen NPCs kann es
58 im Fall von VC-generierten NPCs zu unerwarteten Effekten kommen, da hier
59 load_name() fuer jedes Objekt den Namen des VC-Standardobjekts
60 zurueckliefert.
61 Die Registrierung fuer das Todes-Event eines einzelnen Clones ist nicht
62 moeglich.
63
64SIEHE AUCH:
65 events, RegisterEvent(), UnregisterEvent(), TriggerEvent(), eventd
66
67-----------------------------------------------------------------------------
6821.08.2007, Zesstra
69