blob: 460352a2b6289c2cf9a67318067e6a2cf8e7be60 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001DefendInfo
2FUNKTION:
3
4DEFINIERT IN:
5 /sys/combat.h
6
7ARGUMENTE:
8
9BESCHREIBUNG:
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
165SIEHE AUCH:
166 Attack, Defend
167
16818.Jul 2006 Muadib