MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | DefendInfo |
| 2 | FUNKTION: |
| 3 | |
| 4 | DEFINIERT IN: |
| 5 | /sys/combat.h |
| 6 | |
| 7 | ARGUMENTE: |
| 8 | |
| 9 | BESCHREIBUNG: |
| 10 | Die DefendInformationen werden im Runde eines Attack/Defend Vorgangs |
| 11 | in Attack initial angelegt und dem Defend ueber den Parameter spell |
| 12 | uebergeben. Ist dieser Parameter ein Mapping, so sind die |
| 13 | DefendInformationen ueber den Key EINFO_DEFEND zu erhalten. |
| 14 | Die Informationen liegen in Form eines Mappings vor. |
| 15 | Vor Zugriff sollte immer auf die Existenz dieses Keys in dem Mapping |
| 16 | geprueft werden, da nicht alle Informationen immer existieren. |
| 17 | Die Keys sind in combat.h definiert und sind folgende: |
| 18 | |
| 19 | ORIGINAL_AINFO - Mapping |
| 20 | Hier ist eine Kopie des originalen ainfo-mappings des Attacks |
| 21 | vorhanden mit folgenden Eintraegen: |
| 22 | Immer vorhandene Eintraege: |
| 23 | SI_ENEMY der angegriffene Gegner |
| 24 | |
| 25 | Angriff mit gezueckter Waffe: |
| 26 | P_WEAPON das Waffenobjekt selbst |
| 27 | P_WEAPON_TYPE P_WEAPON_TYPE der Waffe |
| 28 | P_WC P_WC der Waffe |
| 29 | P_NR_HANDS P_NR_HANDS der Waffe |
| 30 | SI_SKILLDAMAGE_TYPE P_DAM_TYPE der Waffe |
| 31 | SI_SKILLDAMAGE waffe->QueryDamage(enemy) |
| 32 | bei vorhandenem Zweihandskill SK_TWOHANDED wird nur der durch |
| 33 | den Skill modifizierte Schadenswert uebernommen |
| 34 | SI_SKILLDAMAGE_MSG "mit "+waffe->name(WEM,0) |
| 35 | SI_SKILLDAMAGE_MSG2 "mit "+waffe->name(WEM,1) |
| 36 | SI_SPELL 0 |
| 37 | |
| 38 | Angriff mit blossen Haenden: |
| 39 | P_WEAPON_TYPE WT_HANDS |
| 40 | P_WC P_HANDS[1] |
| 41 | SI_SKILLDAMAGE Schadenswert, aus P_HANDS[1] und A_STR |
| 42 | berechnet |
| 43 | SI_SKILLDAMAGE_TYPE P_HANDS[2] |
| 44 | SI_SKILLDAMAGE_MSG |
| 45 | SI_SKILLDAMAGE_MSG2 beides P_HANDS[0] |
| 46 | SI_SPELL 0 |
| 47 | |
| 48 | Angriff mit einem Spell (SK_MAGIC_ATTACK): |
| 49 | SI_SKILLDAMAGE Schadenswert des Spells |
| 50 | SI_SKILLDAMAGE_TYPE Schadenstypen des Spells |
| 51 | SI_SKILLDAMAGE_MSG Schadensmeldung des Spells, wenn vorhanden, |
| 52 | sonst "mit magischen Faehigkeiten" |
| 53 | SI_SKILLDAMAGE_MSG2 entsprechende Meldung des Spells, wenn |
| 54 | gesetzt, ansonsten identisch mit |
| 55 | SI_SKILLDAMAGE_MSG |
| 56 | P_WEAPON_TYPE P_WEAPON_TYPE des Spells, wenn vorhanden, |
| 57 | sonst WT_MAGIC |
| 58 | SI_SPELL SI_SPELL des Spells |
| 59 | |
| 60 | Hinweise: |
| 61 | - Alle Eintraege in diesem Mapping koennen bereits durch |
| 62 | InternalModifyAttack() veraendert worden sein. |
| 63 | - Die Daten werden mittels deep_copy(ainfo) eingetragen. |
| 64 | - Daten in den Eintraegen SI_SKILLDAMAGE* und SI_SPELL koennen bei |
| 65 | physikalischen Angriffen durch die Skills FIGHT(P_WEAPON_TYPE) oder |
| 66 | SK_FIGHT oder durch einen P_TMP_ATTACK_MOD bzw. Hook vom Typ |
| 67 | H_HOOK_ATTACK_MOD modifiziert worden sein. |
| 68 | |
| 69 | ORIGINAL_DAM - int |
| 70 | Der Originalschaden aus dem Attack |
| 71 | |
| 72 | ORIGINAL_DAM_TYPE - string/string* |
| 73 | Der Originaldamagetyp aus dem Attack |
| 74 | |
| 75 | CURRENT_DAM - int |
| 76 | Der momentane Schaden, nach schon erfolgten Modifikationen |
| 77 | |
| 78 | CURRENT_DAM_TYPE - string/string* |
| 79 | Der momentane Damagetyp, nach schon erfolgten Modifikationen |
| 80 | |
| 81 | ENEMY_INSERTED - int |
| 82 | 0 oder 1 je nachdem ob der Angreifer schon in der enemy-list |
| 83 | vorhanden war oder nicht |
| 84 | |
| 85 | RFR_REDUCE - int |
| 86 | 0 oder reduzierter Schaden durch RFR Modifikation |
| 87 | |
| 88 | PRESENT_DEFENDERS - Array |
| 89 | Liste der durch InformDefend informierten Defender als Objekt. |
| 90 | Ein Defender wird immer NACH InformDefend |
| 91 | dazugefuegt |
| 92 | |
| 93 | DEFENDING_DEFENDER - Array ({}) |
| 94 | Hat ein durch InformDefend ein Defender verteidigt, so wird |
| 95 | fuer diesen Defender ein Eintrag in diesem Array vorgenommen, |
| 96 | welcher folgende Struktur besitzt. |
| 97 | ({ |
| 98 | DEF_DEFENDER - Object |
| 99 | Der Verteidiger, welcher VOR |
| 100 | DefendOther eingefuegt wird |
| 101 | DEF_DAM - int |
| 102 | Der veraenderte Schaden, welcher NACH |
| 103 | DefendOther eingefuegt wird |
| 104 | DEF_DAMTYPE string/string* |
| 105 | Die veraenderte Schadensart, welche |
| 106 | NACH DefendOther eingefuegt wird |
| 107 | DEF_SPELL - Mapping |
| 108 | Das Mapping des veraenderten Spells, welches |
| 109 | als Kopie NACH DefendOther eingefuegt wird |
| 110 | }) |
| 111 | |
| 112 | DEFEND_HOOK - Int/Array |
| 113 | DI_NOHOOK, wenn kein Hook da war, DI_HOOKINTERRUPT, wenn der |
| 114 | Hook das Defend unterbricht, DI_HOOK, wenn ein Hook vorhanden |
| 115 | ist, dieser das Defend aber unveraendert laesst. |
| 116 | Veraendert ein Hook das Defend, so ist hier ein Array zu finden |
| 117 | mit den veraenderten Parametern in der Struktur: |
| 118 | ({ |
| 119 | HOOK_DAM - int |
| 120 | Der veraenderte Schaden |
| 121 | HOOK_DAMTYPE - string/string* |
| 122 | Die veraenderte Schadensart |
| 123 | HOOK_SPELL - Mapping |
| 124 | Das Mapping des veraenderten Spells als Kopie |
| 125 | }) |
| 126 | |
| 127 | DEFEND_ARMOURS - Mapping (2 Werte pro Key) |
| 128 | Liste der beruecksichtigten Ruestungen. Fuer jede Ruestung |
| 129 | wird ein Eintrag vorgenommen, mit dem Objekt der jeweiligen |
| 130 | Ruestung als Key. Hierbei werden die Ruestungen erst eingetragen, |
| 131 | wenn ihr jeweiliges QueryDefend() aufgerufen wird, d.h. es sind nicht |
| 132 | von Anfang an alle getragenen Ruestung drin. Jeder Eintrag im Mapping |
| 133 | besitzt die folgenden 2 Werte: |
| 134 | DEF_ARMOUR_DAM - int |
| 135 | Der Schaden NACH QueryDefend (vorher 0) |
| 136 | DEF_ARMOUR_PROT - int |
| 137 | Verteidigungswert der Ruestung VOR DefendFunc |
| 138 | Bsp: Ich will wissen, wie gut 'ruestung' schuetzte: |
| 139 | spell[EINFO_DEFEND][DEFEND_ARMOURS][ruestung,DEF_ARMOUR_PROT] |
| 140 | |
| 141 | DEFEND_GUILD - Array |
| 142 | Eine Liste mit der Modifikation der Gilde mit der Struktur |
| 143 | ({ |
| 144 | GUILD_DAM - int |
| 145 | Der veraenderte Schaden |
| 146 | GUILD_DAMTYPE - string/string* |
| 147 | Die veraenderte Schadensart |
| 148 | }) |
| 149 | |
| 150 | DEFEND_RESI - int |
| 151 | Schaden nach CheckResistance |
| 152 | |
| 153 | DEFEND_BODY - int |
| 154 | Schaden nach Beruecksichtigung des Bodies (nur |
| 155 | physikalisch) |
| 156 | |
| 157 | DEFEND_LOSTLP - int |
| 158 | Tatsaechlich abgezogene LP |
| 159 | |
| 160 | DEFEND_CUR_ARMOUR_PROT - int |
| 161 | Schutz der Ruestung vor Call der |
| 162 | DefendFunc. Ist nur in der DefendFunc definiert. Kann auch aus |
| 163 | DEFEND_ARMOURS entnommen werden |
| 164 | |
| 165 | SIEHE AUCH: |
| 166 | Attack, Defend |
| 167 | |
| 168 | 18.Jul 2006 Muadib |