MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | |
| 2 | Kaempferboni und deren Implementation |
| 3 | ------------------------------------- |
| 4 | ------------------------------------- |
| 5 | |
| 6 | Bei den Kaempfern gibt es einige Properties, die, in Waffen oder Ruestungen |
| 7 | gesetzt, der Kampfverlauf eines Spielers erheblich beeinflussen koennen. |
| 8 | |
| 9 | Zu beachten ist, dass die Abnahme von Waffen oder Ruestungen mit Kaempferboni |
| 10 | allein der Balance obliegt. Der Gildenmagier der Kaempfer steht aber gerne |
| 11 | mit Rat und Tat zur Seite. |
| 12 | |
| 13 | |
| 14 | Abschnitt A |
| 15 | ----------- |
| 16 | |
| 17 | In Waffen koennen nachfolgende, in /p/kaempfer/kaempfer.h definierten, |
| 18 | Properties gesetzt werden. Die meisten davon fungieren als 'Boni' und werden |
| 19 | dem Spieler auch mittels 'schaetz <waffe>' angezeigt: |
| 20 | |
| 21 | |
| 22 | 1 Waffenschlagbonus - K_BRAWLING_WC (INT) - "k_brawling_wc" |
| 23 | |
| 24 | Wenn die Waffe eine zusaetzlich gefaehrliche Stelle besitzt - z.B. einen |
| 25 | harten Dorn am Stielende, eine Spitze am Ruecken einer Axtklinge, Zacken |
| 26 | am Dolchgriff - kann man der Waffe einen Waffenschlagbonus geben. |
| 27 | Dies bedeutet, dass der Waffenschlag um ein paar Prozente verstaerkt wird, |
| 28 | da der Spieler natuerlich versucht, immer genau mit diesem 'feature' |
| 29 | den Waffenschlag auszufuehren (der Waffenschlag ist kurz gesagt ein |
| 30 | unerwarteter Schlag, der nicht mit dem 'normalen' Waffenende ausgefuehrt |
| 31 | wird, der Gegner wird dadurch ueberrascht -> mehr Schaden). |
| 32 | Da solch ein 'feature' doch recht auffaellig ist, sollte es in der |
| 33 | Langbeschreibung der Waffe auf jeden Fall erwaehnt werden. |
| 34 | |
| 35 | Interessant zu wissen waere noch, dass Zweihandwaffen einen generellen |
| 36 | zusaetzlichen Bonus auf den Waffenschlag bekommen und dass es eine |
| 37 | Abstufung gibt, nach der die Waffengattungen die Hoehe des Basiswertes |
| 38 | gesetzt bekommen, wobei Speere den hoechsten und Messer den niedrigsten |
| 39 | besitzen: |
| 40 | |
| 41 | Speere - Kampfstaebe - Aexte - Keulen - Schwerter - Messer |
| 42 | |
| 43 | Der max. Bonus fuer diese Property betraegt 30, wobei 1-10 -> geringer |
| 44 | Bonus, 11-20 -> guter Bonus, 21-30 -> sehr guter Bonus. |
| 45 | |
| 46 | Bitte beachten: ein Zweihand-Speer mit max. P_WC und max. K_BRAWLING_WC |
| 47 | haut entsprechend gut rein und sollte nur schwer zu ergattern sein, bzw. |
| 48 | noch andere Auflagen haben (ggf. unique, personalisiert, etc.) |
| 49 | |
| 50 | |
| 51 | 2 Waffenschlagschaden - K_BRAWLING_DT (STRING) - "k_brawling_dt" |
| 52 | |
| 53 | Wenn die Waffe, mit der der Kaempfer einen Waffenschlag ausfuehrt, ein |
| 54 | 'feature' hat, mit dem er diesen Schlag ausfuehrt, kann dieses 'feature' |
| 55 | einen anderen Waffenschlagschaden besitzen. Z.B. kann ein Schwert, welches |
| 56 | normalerweise DT_SLASH macht, besonders lange und spitze Parierstangen |
| 57 | besitzen, die vielleicht auch noch vergiftet sind. Dann kann der Magier |
| 58 | ({DT_PIERCE,DT_POISON}) setzen, so dass beim Waffenschlag immer ein |
| 59 | Mischschaden aus Stiche und Gift erfolgt. |
| 60 | |
| 61 | |
| 62 | 3 Waffenschlagsmeldung - K_BRAWLING_MSG (STRING/STRING*) - k_brawling_msg" |
| 63 | |
| 64 | In diese Property kann man hineinschreiben, mit welchem Teil der Waffe |
| 65 | der Waffenschlag ausgefuehrt wird. Angenommen, es bietet sich an, mit |
| 66 | einer Waffe stets den Waffenschlag mit einem grossen Knauf am Griff |
| 67 | auszufuehren, wird schlicht und einfach "mit einem grossen Knauf am |
| 68 | Griff der Schlachtaxt" in die Property gesetzt. |
| 69 | Sollte sich bei der Programmierung ergeben, dass es sich anbietet, der |
| 70 | Waffe mehr als nur eine guenstige Stelle anzudichten mit der man den |
| 71 | Waffenschlag ausfuehren kann, so setzt man ein Array, z.B. ({"mit einem |
| 72 | grossen Knauf am Griff der Schlachtaxt","mit der breiten Seite der " |
| 73 | "Schlachtaxtklinge"}). Insgesamt ist darauf zu achten, dass die Meldungen |
| 74 | 'vollstandig' sind. Das Array kann beliebige Groesse annehmen, es wird |
| 75 | dann zufaellig eine Meldung beim Schlag ausgesucht. |
| 76 | |
| 77 | Es empfiehlt sich, jede Waffe mit dieser Property zu schmuecken, die |
| 78 | K_BRAWLING_WC gesetzt haben, da die Waffenschlagmeldungen damit im Kampf |
| 79 | 'individualisiert' werden. In der Praxis wird es jedoch daran scheitern, |
| 80 | dass es viel zu viele alte Waffen gibt, die keiner mehr anfassen moechte. |
| 81 | Daher wird auf Standardmeldungen zurueckgegriffen, sollte diese Property |
| 82 | nicht gesetzt sein. |
| 83 | |
| 84 | |
| 85 | 4 Waffenbruchbonus - K_WEAPON_SHATTER (INT) - "k_weapon_shatter" |
| 86 | |
| 87 | Waffen, die besonders fuer den Waffenbruch konstruiert wurden, koennen |
| 88 | einen Bonus einbringen, der in dieser Property angegeben wird. Natuerlich |
| 89 | eignen sich die verschiedenen Waffentypen wieder unterschiedlich gut fuer |
| 90 | einen Waffenbruch: Keulen (meist aufgrund ihres Gewichts) am besten, Messer |
| 91 | am schlechtesten, alle anderen dazwischen (Axt - Schwert - Stab - Speer). |
| 92 | Dabei kriegen alle Waffen, die u.a. Schlagschaden verursachen, nochmal |
| 93 | einen kleinen Bonus obendrauf. |
| 94 | |
| 95 | Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 -> geringer |
| 96 | Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus. |
| 97 | |
| 98 | Bei gut gelungenem Waffenbruch wird die Waffe des Gegners beschaedigt, wenn |
| 99 | die Technik sehr gut gelingt, kann es auch sein, dass dem Gegner die Waffe |
| 100 | aus der Hand geschlagen wird (der Spieler kann sie allerdings nicht |
| 101 | aufheben und der NPC zueckt sie nach ein paar Kampfrunden wieder). |
| 102 | |
| 103 | |
| 104 | 5 Bonus fuer Finte/Waffentrick - K_DISTRACTING_WEAPON (INT) - |
| 105 | "k_distracting_weapon" |
| 106 | |
| 107 | Waffen, die fuer den Gegner aufgrund ihrer Bauweise besonders irritierend |
| 108 | sein koennen, koennen einen Bonus fuer Finte und Waffentrick haben. Dabei |
| 109 | wird der Gegner bei einer Finte bzw. einem Waffentrick NOCH mehr verwirrt, |
| 110 | als er es ohnehin schon nur durch die angewandte Technik wird. |
| 111 | Ein gutes Beispiel hierfuer ist z.B. der Kriegshamster: ein Hamster, der |
| 112 | auf einem Holzstab aufgespiesst ist, sollte fuer den Gegner schon SEHR |
| 113 | irritierend sein ;). |
| 114 | Die Waffengattung hat nur wenig Einfluss auf Finte/Waffentrick. |
| 115 | |
| 116 | Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 -> geringer |
| 117 | Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus. |
| 118 | |
| 119 | |
| 120 | 6 Todesstossbonus - K_CRITICAL_HIT (INT) - "k_critical_hit" |
| 121 | |
| 122 | Man stelle sich eine Waffe mit besonders spitzer, langer Klinge vor oder |
| 123 | eine magische Waffe, die dem geschwaechten Gegner die Seele entreisst. |
| 124 | Diese Eigenschaften verleihen dem Spieler beim Todesstoss einen |
| 125 | entsprechenden Bonus von bis zu 100%. |
| 126 | |
| 127 | Es ist moeglich, dass ein und dasselbe 'feature' sowohl dem Waffenschlag |
| 128 | als auch dem Todesstoss den Bonus stellt, z.B. zwei Hiebklingen auf dem |
| 129 | Klingenruecken einer grossen Axt. Auch dies sollte man deutlich aus der |
| 130 | Langbeschreibung herauslesen koennen. |
| 131 | |
| 132 | Der max. Bonus fuer diese Property betraegt 100, wobei 100 eine Verdopplung |
| 133 | der P_WC beim Todesstoss bedeutet! |
| 134 | Ansonsten bedeutet 1-20 -> geringer Bonus, 21-60 -> guter Bonus, |
| 135 | 61-100 -> sehr guter Bonus. |
| 136 | |
| 137 | |
| 138 | 7 Waffenwurfbonus - K_THROWING_WEAPON (INT) - "k_throwing_weapon" |
| 139 | |
| 140 | Wenn eine Waffe besonders gut zum Werfen geeignet ist, z.B. ein Wurfdolch, |
| 141 | dann kann diese Property gesetzt werden. Natuerlich ist der Grundwert wieder |
| 142 | von der Waffengattung abhaengig. Es gilt, dass man Messer und Speere |
| 143 | grundsaetzlich am besten werfen - und dabei gut Schaden machen - kann, am |
| 144 | schlechtesten schneiden Keulen und Kampfstaebe ab. |
| 145 | |
| 146 | Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 -> geringer |
| 147 | Bonus, 21-40 -> guter Bonus, 31-50 -> sehr guter Bonus. |
| 148 | |
| 149 | Zu beachten ist hierbei, dass ein sehr hoher Bonus nur bei Waffen mit etwas |
| 150 | geringerer P_WC vergeben werden sollte. Ein reines Wurfmesser ist nunmal im |
| 151 | normalen Kampf nicht die gefaehrlichste aller Waffen (speziell |
| 152 | ausbalanciert, keinen richtigen Griff, etc.). |
| 153 | Natuerlich kann es einen Wurfspeer mit max. P_WC und sehr hohem |
| 154 | Waffenwurfbonus geben, allerdings mit den ueblich hohen Restriktionen. |
| 155 | |
| 156 | |
| 157 | 8 KO-Schlag-Bonus - K_KO (INT) - "k_ko" |
| 158 | |
| 159 | Waffen, die besonders fuer einen KO-Schlag geeignet sind, koennen einen |
| 160 | Bonus mit dieser Property bekommen. Eine entsprechende Waffe koennte z.B. |
| 161 | ein lederumwickelter Pruegel sein, denn man will den Gegner ja nur KO |
| 162 | schlagen und nicht gleich toeten. |
| 163 | |
| 164 | Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 -> geringer |
| 165 | Bonus, 21-30 -> guter Bonus, 31-50 -> sehr guter Bonus. |
| 166 | |
| 167 | |
| 168 | 9 Kein Waffenschaerfen - K_NO_HONING (INT) - "k_no_honing" |
| 169 | |
| 170 | Wenn eine Waffe aus irgendeinem Grund nicht geschaerft werden kann oder |
| 171 | darf, muss man diese Property auf 1 setzen. |
| 172 | Eine Erklaerung dafuer sollte in der P_LONG bzw. P_INFO erfolgen. |
| 173 | |
| 174 | |
| 175 | Abschnitt B |
| 176 | ----------- |
| 177 | |
| 178 | Die beiden Properties, P_EFFECTIVE_AC und P_EFFECTIVE_WC, welche in |
| 179 | <combat.h> definiert sind, sind eigentlich nur dazu da, um Ruestungen und |
| 180 | Waffen, die eine DefendFunc() bzw. HitFunc() besitzen, korrekt vom Spieler |
| 181 | einschaetzen lassen zu koennnen. |
| 182 | |
| 183 | Das Kaempferspellbook verwendet diese Properties darueberhinaus wie folgt: |
| 184 | |
| 185 | |
| 186 | 1 Schutzboni in Waffen - P_EFFECTIVE_AC (INT) - "effective_ac" |
| 187 | |
| 188 | Ist diese Property in einer Waffe gesetzt, geht das Kaempferspellbook |
| 189 | davon aus, dass diese Waffe mehr oder weniger die Faehigkeit besitzt, |
| 190 | auch wie eine Ruestung schuetzen zu koennen. Da man eine Waffe aber nicht |
| 191 | anziehen, sondern nur vor sich hertragen kann, kann auch der max. |
| 192 | Ruestungsschutz einer Waffe nur gleich dem max. Ruestungsschutz eines |
| 193 | Schildes entsprechen. |
| 194 | Eine gesetzte P_EFFECTIVE_AC in einer Waffe wird dem Spieler als mehr |
| 195 | oder weniger gute 'Paradewaffe' im 'schaetz' angezeigt und geht sowohl bei |
| 196 | der Waffenparade als auch beim Block als Bonus mit ein. |
| 197 | |
| 198 | Z.B. koennte ein leichtes Schwert, was aufgrund seiner Bauweise mehr fuer |
| 199 | den defensiven Kampf ausgelegt ist (extralange Parierstangen, verstaerkter |
| 200 | Handschutz im Griffbereich, ...) wie ein maessiges Schild wirken. Die |
| 201 | Vorteile liegen auf der Hand: der Spieler bekommt verstaerkten Schutz, |
| 202 | kann aber weiterhin eine Zweihandwaffe fuehren. |
| 203 | |
| 204 | Der max. Bonus fuer diese Property betraegt 40, wobei 1-20 -> geringer |
| 205 | Bonus, 21-30 -> guter Bonus, 31-40 -> sehr guter Bonus. |
| 206 | |
| 207 | Zu beachten ist hier, dass sehr gute Parierwaffen mit P_EFFECTIVE_AC > 30 |
| 208 | moeglichst deutlich unter der max. WC liegen sollten. |
| 209 | |
| 210 | Anmerkungen: |
| 211 | Eine gesetzte P_EFFECTIVE_AC in einem Schild kann den Bonus fuer die |
| 212 | Schildparade nach oben oder unten beeinflussen. Moechte man ein Schild |
| 213 | herstellen, welches speziell bei der Schildparade der Kaempfer besser |
| 214 | als 'normal' schuetzt, sollte man hier einen Wert eintragen, der deutlich |
| 215 | groesser als die P_AC des Schildes ist. |
| 216 | |
| 217 | Eine gesetzte P_EFFECTIVE_AC in einer anderen Ruestung hat nur den Nutzen, |
| 218 | auf deren erhoehten (und nicht sofort sichtbaren) Verteidigungswert |
| 219 | hinzuweisen, der durch eine DefendFunc() realisiert wird. |
| 220 | |
| 221 | |
| 222 | 2 Angriffsboni in Ruestungen - P_EFFECTIVE_WC (INT) - "effective_wc" |
| 223 | |
| 224 | Fuer die Kaempfer koennen folgende Ruestungstypen modifiziert werden: |
| 225 | AT_TROUSERS (Hosen), AT_HELMET (Kopfbedeckung), AT_BOOT (Fusskleidung), |
| 226 | AT_ARMOUR (Koerperruestung), AT_SHIELD (Schilde). |
| 227 | Ist in einer dieser Typen P_EFFECTIVE_WC gesetzt, so macht diese Ruestung |
| 228 | bei einem Angriff mit einer Spezialattacke (Kniestoss, Kopfstoss, Fusstritt, |
| 229 | Ellbogenschlag und Schildstoss) entsprechend mehr bzw. weniger Schaden als |
| 230 | ohne diese Property. Eine entsprechende Begruendung fuer eine Verstaerkung |
| 231 | oder Schwaechung sollte auch hier fuer den Spieler offensichtlich sein |
| 232 | (Dornen am Schild, verstaerkter Kniebereich, Zacken am Helm, etc.). |
| 233 | |
| 234 | Wenn man der Ruestung einen Bonus geben moechte, muss man darauf achten, |
| 235 | dass P_EFFECTIVE_WC hoeher ist als die P_AC der Ruestung! Sollte |
| 236 | P_EFFECTIVE_WC niedriger als P_AC sein, wird dennoch P_EFFECTIVE_WC als |
| 237 | Angriffswert genommen. Dies stellt natuerlich eine Schwaechung der |
| 238 | Spezialattacke dar. Moeglicherweise ist aber genau das gewollt, wenn eine |
| 239 | Ruestung, die sehr gut schuetzt, nur geringen Kaempferbonus aufweisen soll. |
| 240 | |
| 241 | Beispiel: ein Schild aus Hartgummi kann recht gut Schlaege aller Art |
| 242 | abfangen (-> P_AC 35). Will der Kaempfer jedoch einen Schildstoss damit |
| 243 | machen, fehlt ihm aufgrund der Beschaffenheit die Wucht, eher daempft es |
| 244 | den Schildstoss noch ein wenig (-> P_EFFECTIVE_WC 25). |
| 245 | |
| 246 | Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der jeweils |
| 247 | doppelte maximale P_AC-Wert (s. 'man ruestungen'). |
| 248 | |
| 249 | Die Angabe eines Schadenstyps (P_DAM_TYPE) in einer Ruestung kann dann |
| 250 | sinnvoll sein, wenn bei der Spezialattacke ein spezieller Schaden gemacht |
| 251 | werden soll. Beispielsweise sollten Flammenstiefel logischerweise DT_FIRE |
| 252 | und DT_BLUDGEON oder DT_PIERCE bei einem Kampftritt verursachen. Es MUSS |
| 253 | (logischerweise) mindestens ein physikalischer Schadenstyp enthalten sein. |
| 254 | Wird kein Schadenstyp angegeben, wird auf Standardtypen zurueckgegriffen. |
| 255 | |
| 256 | |
| 257 | SIEHE AUCH: |
| 258 | Waffen: P_WC, P_TOTAL_WC, P_EFFECTIVE_WC, HitFunc() |
| 259 | Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc() |
| 260 | Files: /std/weapon.c, /std/weapon/combat.c |
| 261 | Balance: waffen, ruestungen, properties |
| 262 | |
| 263 | ----------------------------------------------------------------------------- |
| 264 | 26.10.2012, Gabylon |