Dokumentation zu: ET_ATTACK(WL)

HR Image


EVENT-TYP
        ET_ATTACK - Attack-Event

BEDEUTUNG
        Der Attack-Event ist das standardmaessige 'Angriffs-Ereignis' im
        Kampf.
        
DEFAULT HANDLER
        /global/handler/combat.c

EVENT DEFINES
        /sys/events.h
        /sys/combat.h

EVENT DATEN
        Das Event-Mapping enthaelt folgende Daten:

        Key              | Inhalt
        -----------------+--------------------------------------------------
        Eintraege, die nicht veraendert werden duerfen:
        E_SENDER         | (object) Das sendende Objekt.
        E_DESTINATIONS   | (array) Objekte, an die der Event gesandt wird. (Im
                         | Normalfall das aeusserste Environment)
        E_COMMAND        | (string) Das eingegebene Kommando von this_player()
                         | das zum Angriff gefuehrt hat oder 0.
        E_ACTOR          | (object) Der Angreifer, der den Schlag ausfuehrt. 
                         | Darf nicht veraendert werden!

        Eintraege, die (theoretisch) veraendert werden duerfen:
        E_COMBAT_TARGETS | (object*) Das oder die Ziele des Schlags als Array
                         | aus Objekten. In dem Array sollten keine Nicht-
                         | Lebewesen oder Geister vorhanden sein.
        E_COMBAT_WEAPON  | (object) Die Schlagwaffe oder 0 fuer blosse Haende.
        E_COMBAT_DAMAGE  | (int) Der beabsichtigte Schlagschaden. Dieser wird
                         | aber nicht 1:1 von den Opfern abgezogen, sondern
                         | durch verschiedene Formeln modifiziert. Siehe dazu
                         | E_COMBAT_RESULTS.
        E_COMBAT_DAM_TYPES | (string*) Ein Array aus Schadenstypen, die den
                         | Angriff genauer spezifizieren. Siehe P_DAM_TYPE.
        E_COMBAT_SPELL   | (int) Das Zauberspruchlevel fuer einen Magieschlag,
                         | oder 0 fuer physikalische Schlaege.
        E_COMBAT_MSGS    | (string*) Array aus 4 Strings analog ET_SOUL:
                         | Element 0: Attack-Adverb (i.d.R. aus P_HANDS)
                         | Element 1: Text an Actor
                         | Element 2: Text an Target
                         | Element 3: Text an Dritte/Umstehende
        E_COMBAT_FLAGS   | (optional) enthaelt zusaetzliche bitweise
                         | verknuepfte Flags, wie etwa:
                         | ATTACK_F_REMOTE (1) - Angriff ist ein Fernangriff

        Nach oder waehrend der Abarbeitung EVENTUELL enthalten:
        E_COMBAT_RESULTS | (int*) Array aus Schadenswerten, die den Zielob-
                         | jekten tatsaechlich abgezogen wurden. Dabei ent-
                         | spricht die Anzahl und Reihenfolge der Eintraege
                         | genau der von E_COMBAT_TARGETS.
        E_HANDLED        | Wenn gesetzt, wurde der Event ausgefuehrt.
                         | (unspezifiziert) (momentan: E_COMBAT_RESULTS)
        E_HANDLER        | (object) Der ausfuehrende Handler.
        E_CANCELLED      | (int) Fehlercode, siehe DoAttackEvent(L)
                         |   ODER
                         | (string) Meldung an den Spieler.
                         |   ODER
                         | (*string) Element 0 ist Meldung an den Spieler,
                         | Element 1 ist fuer die Umgebung.
        E_CANCELLER      | Abbrechendes Objekt.

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

SYNTAX EVENT-SENDER
        Siehe allgemeine Syntaxen in event_senders(WL).

        Automatisch werden immer gesetzt:
        E_SENDER, E_DESTINATION und E_COMMAND

        Ziel des Events sollte immer all_environment(this_object())[<1]
        sein.

BESCHREIBUNG
        Die auszugebenden Texte in E_COMBAT_MSGS sind:
           Element 0: Attack-Adverb (i.d.R. aus P_HANDS ohne Leerzeichen)
           Element 1: Text an Actor
           Element 2: Text an Target
           Element 3: Text an Dritte/Umstehende
 
        Hier sind noch die Schluesselworte fuer die Namen usw enthalten,
        die erst bei der Ausgabe des Ereignisses ersetzt werden. Welche
        dies im Einzelnen sein koennen, ist im Soul-Daemon beschrieben.

BEISPIEL
        Bitte nicht direkt erzeugen, sondern DoAttackEvent(L) benutzen.
        Siehe Beispiel dort.

SIEHE AUCH
        DoAttackEvent(L), Defend(L), Attack(L), Kill(L), P_DAM_TYPE, P_HANDS,
        P_DISABLE_ATTACK, P_ATTACK_RATE, events(WL), event_types(WL),
        event_prioritaeten(WL), send_event(S), listen_event(S)


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