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