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)
|