
FUNKTION:
     varargs int TriggerEvent(string eid, mixed data);

DEFINIERT IN:
     /p/daemon/eventd.c
DEKLARIERT IN:
     /sys/events.h

ARGUMENTE:
     string eid,
       Die ID des Events, der ausgeloest werden soll.
       Da dieser String fuer alle Events jeweils eindeutig sein muss, 
       empfiehlt es sich, fuer eigene Events z.B. als Praefix den eigenen 
       Magiernamen zu nehmen, z.B. "zesstra_vulkanausbruch".
       ACHTUNG: IDs, die mit 'evt_lib_' beginnen, sind AUSSCHLIESSLICH der
       Mudlib vorbehalten!

     mixed data,
       Daten, die jeder Lauscher uebergeben bekommt. Kann ein beliebiger
       Datentyp sein. Ggf. ein Mapping oder Array benutzen.

BESCHREIBUNG:
     Der Event mit der ID 'eid' wird ausgeloest. Mit kurzer Verzoegerung
     (meist 0-2s) werden alle fuer 'eid' registrierten Lauscher durch Aufruf
     einer Funktion in ihnen informiert:
     listener->fun(eid, triggerob, data);
     'triggerob' ist hierbei das Objekt, welche TriggerEvent() gerufen hat,
     'data' das, was das triggernde Objekte als Daten weiterverteilen moechte.
     Die einzelnen fun() in den lauschenden Objekten muessen wissen, was sie
     mit 'data' anfangen sollen. ;-)

RUeCKGABEWERT:
     1 fuer Erfolg, <=0 fuer Misserfolg.
     1   - Erfolg, Event 'eid' wurde ausgeloest.
     -1  - falsche Argumente wurden uebergeben
     -2  - nicht-oeffentlicher Event und das triggernde Objekt wurde nicht
           fuer diesen Event freigegeben (momentan gibt es noch keine
           nicht-oeffentlichen Events)
     -3  - Event 'eid' existiert nicht, d.h. es gibt keine Lauscher.
     -4  - Es gibt zuviele nicht verarbeitete Events.

BEMERKUNGEN:


BEISPIELE:
     1. Ein Waechter wird angegriffen:
        EVENTD->TriggerEvent("xand_holzfaellerlager_angriff", 
                             (["angreifer": enemy,
                               "ort": environment(this_object()) ]) );
        Alle anderen angemeldeten Waechter der Lagers werden nun informiert
        und koennen ihrerseits reagieren (dem ersten Waechter zuhilfe kommen
        oder auch die Lagertore schliessen).

SIEHE AUCH:
     events, eventd, UnregisterEvent(), RegisterEvent()

----------------------------------------------------------------------------
Last modified: 15.08.2007, Zesstra
