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