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