Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc/lfun/DefendInfo

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


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.