DefendInfo()

FUNKTION

DEFINIERT IN

/sys/combat.h

ARGUMENTE

BESCHREIBUNG

 Die DefendInformationen werden im Runde eines Attack/Defend Vorgangs
 in Attack initial angelegt und dem Defend ueber den Parameter spell
 uebergeben. Ist dieser Parameter ein Mapping, so sind die
 DefendInformationen ueber den Key EINFO_DEFEND zu erhalten.
 Die Informationen liegen in Form eines Mappings vor.
 Vor Zugriff sollte immer auf die Existenz dieses Keys in dem Mapping
 geprueft werden, da nicht alle Informationen immer existieren.
 Die Keys sind in combat.h definiert und sind folgende:



ORIGINAL_AINFO - Mapping
    Hier ist eine Kopie des originalen ainfo-mappings des Attacks
    vorhanden mit folgenden Eintraegen:
    Immer vorhandene Eintraege:
      SI_ENEMY              der angegriffene Gegner



    Angriff mit gezueckter Waffe:
      P_WEAPON              das Waffenobjekt selbst
      P_WEAPON_TYPE         P_WEAPON_TYPE der Waffe
      P_WC                  P_WC der Waffe
      P_NR_HANDS            P_NR_HANDS der Waffe
      SI_SKILLDAMAGE_TYPE   P_DAM_TYPE der Waffe
      SI_SKILLDAMAGE        waffe->QueryDamage(enemy)
         bei vorhandenem Zweihandskill SK_TWOHANDED wird nur der durch
         den Skill modifizierte Schadenswert uebernommen
      SI_SKILLDAMAGE_MSG    "mit "+waffe->name(WEM,0)
      SI_SKILLDAMAGE_MSG2   "mit "+waffe->name(WEM,1)
      SI_SPELL              0

    Angriff mit blossen Haenden:
      P_WEAPON_TYPE         WT_HANDS
      P_WC                  P_HANDS[1]
      SI_SKILLDAMAGE        Schadenswert, aus P_HANDS[1] und A_STR
                            berechnet
      SI_SKILLDAMAGE_TYPE   P_HANDS[2]
      SI_SKILLDAMAGE_MSG
      SI_SKILLDAMAGE_MSG2   beides P_HANDS[0]
      SI_SPELL              0



    Angriff mit einem Spell (SK_MAGIC_ATTACK):
      SI_SKILLDAMAGE        Schadenswert des Spells
      SI_SKILLDAMAGE_TYPE   Schadenstypen des Spells
      SI_SKILLDAMAGE_MSG    Schadensmeldung des Spells, wenn vorhanden,
                            sonst "mit magischen Faehigkeiten"
      SI_SKILLDAMAGE_MSG2   entsprechende Meldung des Spells, wenn
                            gesetzt, ansonsten identisch mit
                            SI_SKILLDAMAGE_MSG
      P_WEAPON_TYPE         P_WEAPON_TYPE des Spells, wenn vorhanden,
                            sonst WT_MAGIC
      SI_SPELL              SI_SPELL des Spells



    Hinweise:
    - Alle Eintraege in diesem Mapping koennen bereits durch
      InternalModifyAttack() veraendert worden sein.
    - Die Daten werden mittels deep_copy(ainfo) eingetragen.
    - Daten in den Eintraegen SI_SKILLDAMAGE* und SI_SPELL koennen bei
      physikalischen Angriffen durch die Skills FIGHT(P_WEAPON_TYPE) oder
      SK_FIGHT oder durch einen P_TMP_ATTACK_MOD bzw. Hook vom Typ
      H_HOOK_ATTACK_MOD modifiziert worden sein.



ORIGINAL_DAM - int
    Der Originalschaden aus dem Attack

ORIGINAL_DAM_TYPE - string/string*
    Der Originaldamagetyp aus dem Attack

CURRENT_DAM - int
    Der momentane Schaden, nach schon erfolgten Modifikationen



CURRENT_DAM_TYPE - string/string*
    Der momentane Damagetyp, nach schon erfolgten Modifikationen



ENEMY_INSERTED - int
    0 oder 1 je nachdem ob der Angreifer schon in der enemy-list
    vorhanden war oder nicht



RFR_REDUCE - int
    0 oder reduzierter Schaden durch RFR Modifikation



PRESENT_DEFENDERS - Array
    Liste der durch InformDefend informierten Defender als Objekt.
    Ein Defender wird immer NACH InformDefend
    dazugefuegt



DEFENDING_DEFENDER - Array ({})
    Hat ein durch InformDefend ein Defender verteidigt, so wird
    fuer diesen Defender ein Eintrag in diesem Array vorgenommen,
    welcher folgende Struktur besitzt.
            ({
                    DEF_DEFENDER - Object
                      Der Verteidiger, welcher VOR
                      DefendOther eingefuegt wird
                    DEF_DAM - int
                      Der veraenderte Schaden, welcher NACH
                      DefendOther eingefuegt wird
                    DEF_DAMTYPE string/string*
                      Die veraenderte Schadensart, welche
                      NACH DefendOther eingefuegt wird
                    DEF_SPELL - Mapping
                      Das Mapping des veraenderten Spells, welches
                      als Kopie NACH DefendOther eingefuegt wird
            })



DEFEND_HOOK - Int/Array
    DI_NOHOOK, wenn kein Hook da war, DI_HOOKINTERRUPT, wenn der
    Hook das Defend unterbricht, DI_HOOK, wenn ein Hook vorhanden
    ist, dieser das Defend aber unveraendert laesst.
    Veraendert ein Hook das Defend, so ist hier ein Array zu finden
    mit den veraenderten Parametern in der Struktur:
            ({
                    HOOK_DAM - int
                       Der veraenderte Schaden
                    HOOK_DAMTYPE - string/string*
                       Die veraenderte Schadensart
                    HOOK_SPELL - Mapping
                       Das Mapping des veraenderten Spells als Kopie
            })



DEFEND_ARMOURS - Mapping (2 Werte pro Key)
    Liste der beruecksichtigten Ruestungen. Fuer jede Ruestung
    wird ein Eintrag vorgenommen, mit dem Objekt der jeweiligen
    Ruestung als Key. Hierbei werden die Ruestungen erst eingetragen,
    wenn ihr jeweiliges QueryDefend() aufgerufen wird, d.h. es sind nicht
    von Anfang an alle getragenen Ruestung drin. Jeder Eintrag im Mapping
    besitzt die folgenden 2 Werte:
            DEF_ARMOUR_DAM - int
                Der Schaden NACH QueryDefend (vorher 0)
            DEF_ARMOUR_PROT - int
                Verteidigungswert der Ruestung VOR DefendFunc
    Bsp: Ich will wissen, wie gut 'ruestung' schuetzte:
         spell[EINFO_DEFEND][DEFEND_ARMOURS][ruestung,DEF_ARMOUR_PROT]

DEFEND_GUILD - Array
    Eine Liste mit der Modifikation der Gilde mit der Struktur
            ({
                    GUILD_DAM - int
                      Der veraenderte Schaden
                    GUILD_DAMTYPE - string/string*
                      Die veraenderte Schadensart
            })



DEFEND_RESI - int
    Schaden nach CheckResistance



DEFEND_BODY - int
    Schaden nach Beruecksichtigung des Bodies (nur
    physikalisch)



DEFEND_LOSTLP - int
    Tatsaechlich abgezogene LP



DEFEND_CUR_ARMOUR_PROT - int
    Schutz der Ruestung vor Call der
    DefendFunc. Ist nur in der DefendFunc definiert. Kann auch aus
    DEFEND_ARMOURS entnommen werden

SIEHE AUCH

Attack, Defend

18.Jul 2006 Muadib