blob: 44dd2e496e702b16b5d4145a9996ae7c6ede4cba [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001
Zesstra953f9972017-02-18 15:37:36 +01002TriggerEvent()
3**************
MG Mud User88f12472016-06-24 23:31:02 +02004
5
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 varargs int TriggerEvent(string eid, mixed data);
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011
12DEFINIERT IN
13============
14
15 /p/daemon/eventd.c
16
17
18DEKLARIERT IN
19=============
20
21 /sys/events.h
22
23
24ARGUMENTE
25=========
26
27 string eid,
28 Die ID des Events, der ausgeloest werden soll.
29 Da dieser String fuer alle Events jeweils eindeutig sein muss,
30 empfiehlt es sich, fuer eigene Events z.B. als Praefix den eigenen
31 Magiernamen zu nehmen, z.B. "zesstra_vulkanausbruch".
32 ACHTUNG: IDs, die mit 'evt_lib_' beginnen, sind AUSSCHLIESSLICH der
33 Mudlib vorbehalten!
34
35 mixed data,
36 Daten, die jeder Lauscher uebergeben bekommt. Kann ein beliebiger
37 Datentyp sein. Ggf. ein Mapping oder Array benutzen.
38
39
40BESCHREIBUNG
41============
42
43 Der Event mit der ID 'eid' wird ausgeloest. Mit kurzer Verzoegerung
44 (meist 0-2s) werden alle fuer 'eid' registrierten Lauscher durch Aufruf
45 einer Funktion in ihnen informiert:
46 listener->fun(eid, triggerob, data);
47 'triggerob' ist hierbei das Objekt, welche TriggerEvent() gerufen hat,
48 'data' das, was das triggernde Objekte als Daten weiterverteilen moechte.
49 Die einzelnen fun() in den lauschenden Objekten muessen wissen, was sie
50 mit 'data' anfangen sollen. ;-)
51
52
53RUeCKGABEWERT
54=============
55
56 1 fuer Erfolg, <=0 fuer Misserfolg.
57 1 - Erfolg, Event 'eid' wurde ausgeloest.
58 -1 - falsche Argumente wurden uebergeben
59 -2 - nicht-oeffentlicher Event und das triggernde Objekt wurde nicht
60 fuer diesen Event freigegeben (momentan gibt es noch keine
61 nicht-oeffentlichen Events)
62 -3 - Event 'eid' existiert nicht, d.h. es gibt keine Lauscher.
63 -4 - Es gibt zuviele nicht verarbeitete Events.
64
65
66BEMERKUNGEN
67===========
68
69
70BEISPIELE
71=========
72
73 1. Ein Waechter wird angegriffen:
74 EVENTD->TriggerEvent("xand_holzfaellerlager_angriff",
75 (["angreifer": enemy,
76 "ort": environment(this_object()) ]) );
77 Alle anderen angemeldeten Waechter der Lagers werden nun informiert
78 und koennen ihrerseits reagieren (dem ersten Waechter zuhilfe kommen
79 oder auch die Lagertore schliessen).
80
81
82SIEHE AUCH
83==========
84
85 events, eventd, UnregisterEvent(), RegisterEvent()
86
MG Mud User88f12472016-06-24 23:31:02 +020087Last modified: 15.08.2007, Zesstra