blob: a8f6404ec19a9e2ebec691ef1ebec00b29da8ece [file] [log] [blame]
H_HOOK_ATTACK_MOD
=================
HOOK
----
H_HOOK_ATTACK_MOD
DEFINIERT IN
------------
/sys/hook.h
GERUFEN VON
-----------
/std/living/combat.c
BESCHREIBUNG
------------
Wird im Attack() eines Lebewesens ausgeloest. Es ist moeglich das Attack()
abzubrechen oder die Daten zu veraendern.
Dieser Hook kommt nach der Auswertung von P_TMP_ATTACK_HOOK und
P_TMP_ATTACK_MOD zum Zuge, kann also auch die durch diese modifizierten
Daten aendern.
Insb. wird dieser Hook aber auch erst nach Abfrage von Waffen und Skills
ausgefuehrt. Von diesen sind evtl. bereits Meldungen ausgegeben worden,
auch wenn das Attack an dieser Stelle vom Hook abgebrochen wird.
HOOK-DATEN
----------
Es wird ein Mapping uebergeben.
deep_copy(ainfo), siehe Defendinfo, Abschnitt ORIGINAL_AINFO
Der Inhalt des zurueckgegebenen Mappings wird als Aenderung des
uebergebenen ainfo aufgefasst. Man kann so also auch nur einzelne Keys
zurueckgeben und aendern und ein leeres Mapping erzeugt keine Aenderung
(in diesem Fall aber bitte H_NO_MOD bevorzugen).
Die Aenderungen werden zur Zeit aber nur teilweise von SkillResTransfer()
in den eigentlichen Angriff uebernommen. Das sind aktuell folgende Keys:
SI_SKILLDAMAGE, SI_SKILLDAMAGE_MSG, SI_SKILLDAMAGE_MSG2,
SI_SKILLDAMAGE_TYPE, SI_SPELL
RUECKGABEWERTE
--------------
({ <status>, <daten> })
<status> : H_NO_MOD, H_CANCELLED, H_ALTERED
<daten> : wie uebergebenes Datenmapping
SIEHE AUCH
----------
HRegisterToHook(), HUnregisterFromHook(), HookFlow(), defeindinfo
Letzte Aenderung: 04.10.2022 Zesstra