Dokumentation zu: ET_ADVANCE(WL)

HR Image


EVENT-TYP
        ET_ADVANCE - Globaler Erhoehungs-Event

BEDEUTUNG
        Mit bzw. bei diesem Event erhoeht ein Spieler:
        - Spielerlevel
        - Gildenlevel
        - Stats (kaufen, ZTs nicht)

        Der Event wird in aller Regel nur in den Gilden verwendet, es ist
        aber auch moeglich ihn ausserhalb einer Gilde einzusetzen. Wenn der
        Spieler jedoch in keiner Gilde Mitglied ist, kann er damit nur sein
        Spielerlevel erhoehen, da Gildenlevel und Statkosten von der Gilde
        abhaengen.

DEFAULT HANDLER
        /global/handler/advance.c

EVENT DEFINES
        /sys/events.h
        /sys/guilds.h

EVENT DATEN
        Das Event-Mapping enthaelt folgende Daten:

        Key            | Inhalt
        ---------------+----------------------------------------------------
        Eintraege, die automatisch gesetzt werden (NICHT VERAENDERN!)
        E_SENDER       | (object) Event-Erzeuger. (meist eine Gilde)
        E_DESTINATIONS | (array) Objekte, an die der Event gesandt wird.
        E_COMMAND      | (string oder 0) das eingegebene Kommando

        Eintraege, die der Sender gesetzt hat (setzen muss):
        E_ACTOR        | Das agierende Lebewesen. Also das Lebwesen, das
                       | etwas erhoehen will. ACHTUNG: Das kann vor dem
                       | Handler ein anderes Objekt sein, als danach. Z.B.
                       | bei der Seherwerdung.
        E_ADVANCE_WHAT | Das was erhoeht/geaendert werden soll. Moeglich sind
                       | derzeit als Werte:
                       | P_LEVEL       - Spielerlevel erhoehen (maximal + 1)
                       | P_GUILD_LEVEL - Gildenlevel aendern
                       | A_INT         - Intelligenz aendern (maximal + 1)
                       | A_DEX         - Geschicklichkeit aendern (maximal+1)
                       | A_STR         - Staerke aendern (maximal + 1)
                       | A_CON         - Ausdauer aendern (maximal + 1)
        E_ADVANCE_OLD  | Der alte (bisherige) Wert.
        E_ADVANCE_NEW  | Der neue Wert, auf den geaendert werden soll.

        Nach oder waehrend der Abarbeitung EVENTUELL enthalten:
        E_HANDLED      | (int) Wenn gesetzt, wurde der Event verarbeitet
        E_HANDLER      | (object) Der ausfuehrende Handler.
        E_CANCELLED    | (mixed) Wenn gesetzt, wurde der Event abgebrochen.
                       | Der Inhalt kann beliebig sein.
        E_CANCELLED    | (int) Fehlercode - meist 1
                       |   ODER
                       | (string) Meldung (Abbruchgrund) an den Spieler
                       |   ODER
                       | (*string) Element 0 ist Meldung an den Spieler,
                       | Element 1 ist fuer die Umgebung.
        E_CANCELLER    | (object) Das abbrechende Object.

        Eine Besonderheit stell hier E_ACTOR dar, wenn ein Spieler durch den
        Event Spielerlevel 20 erreicht, also Seher wird. DANN ist E_ACTOR
        nach der Verarbeitung durch den Handler ein anderes Objekt als vor-
        her! Will man also E_ACTOR vor und nach dem Event verwenden, muss
        man etwas aufpassen, dass die Daten noch 'frisch' sind. ;-)

        Die Gilden geben eine Standardmeldung aus, wenn man beim Abbruch mit
        cancel_event() keinen String oder Array aus Strings angibt. Will
        man das verhindern, kann man z.B. einen leeren String angeben,
        z.B. cancel_event("");

EVENT-LAUSCHER
        Siehe allgemeine Syntaxen in event_listeners(WL).

EVENT-SENDER
        Siehe allgemeine Syntaxen in event_senders(WL). Gesendet werden
        muessen mindestens:
        E_GUILD, E_ACTOR, E_ADVANCE_WHAT, E_ADVANCE_OLD, E_ADVANCE_NEW

        Automatisch werden immer gesetzt:
        E_SENDER, E_DESTINATION und E_COMMAND

        Ziel des Events sollte immer der Senderaum (meist die Gilde) sein.

BESCHREIBUNG
        Der Event wird normalerweise in der Gilde erzeugt, wenn ein Spieler
        'erhoehe <wasweissich>' eingibt. Vorm eigentlichen Senden wird 
        geprueft, ob der Spieler nicht vielleicht ein Geist oder garnicht
        Mitglied dieser Gilde ist.

        Beim Erhoehen des Level wird geprueft, ob der Spieler genau um EIN
        Level erhoeht werden soll und der Spieler genuegend XP und FP hat.
        Dafuer muss der Spieler NICHT in einer Gilde sein.
        Vorm Erhoehen des Levels wird das Level korrigiert, falls es nicht
        mindestens 1 ist oder wenn der Spieler ein level >=20 hat und noch
        kein Seher ist.

        Vorm Erhoehen der Gildenstufe wird geprueft, ob der Spieler noch
        ein Level aufsteigen kann, und ob er die Restriktionen erfuellt.
        Beim Setzen des Gildenlevels wird nur geprueft, ob es das neue Level
        gibt, und der Titel wird entsprechend gesetzt.

        Beim Setzen der Stats wird ueberprueft, ob genu um 1 erhoeht werden
        soll und ob der Spieler die erforderliche Anzahl XPs besitzt. Weiter-
        hin wird ueberprueft, ob die Stat-Entwicklung nicht zu unausgeglichen
        ist (wie bisher). Die Statkosten werden von der Gilde des Spielers
        erfragt.

        Objekte die mit hoeherer Prioritaet lauschen (z.B.: EPRIO_MODIFY 
        (700) bzw. EPRIO_CANCEL (400)), koennen VOR dem Erhoehen den Event
        aendern oder ganz abbrechen.

        Objekte die mit kleinerer Prioritaet (z.B.: EPRIO_REACT (-300)) 
        lauschen, koennen NACH dem Erhoehen dem Spieler zum Beispiel
        gratulieren etc.

SIEHE AUCH
        ET_GUILD_JOIN, ET_GUILD_LEAVE, ET_GUILD_LEARN, events(WL),
        event_types(WL), event_prioritaeten(WL), listen_event(S)


Start » Magierhandbuch » Docu » Konzepte » ET_ADVANCE Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!