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