MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | // MorgenGrauen MUDlib |
| 2 | // |
| 3 | // new_skills.h -- Alle noetigen Defintionen fuer Skills (Faehigkeiten), |
| 4 | // Spells (Zaubersprueche) und Gilden. |
| 5 | // |
| 6 | // $Id: new_skills.h 8610 2014-01-06 20:59:13Z Zesstra $ |
| 7 | |
| 8 | #ifndef _NEW_SKILLS_H_ |
| 9 | #define _NEW_SKILLS_H_ |
| 10 | |
| 11 | #include <combat.h> |
| 12 | #include <living/skill_attributes.h> |
| 13 | |
| 14 | // ===== Aktuelle Version der Skills ==== |
| 15 | #define CURRENT_SKILL_VERSION 2 |
| 16 | |
| 17 | // ===== Allgemeine Defines: ===== |
| 18 | |
| 19 | #define DEFAULT_GUILD "abenteurer" |
| 20 | #define GUILD_DIR "/gilden/" |
| 21 | #define GUILD_SAVEFILE "/etc/gildenmaster" |
| 22 | #define GUILDMASTER "/secure/gildenmaster" |
| 23 | #define SPELLBOOK_DIR "/spellbooks/" |
| 24 | |
| 25 | #define MAX_ABILITY 10000 |
| 26 | #define MAX_SKILLEARN 200 |
| 27 | |
| 28 | // ===== Moegliche Resultate eine Spells: ===== |
| 29 | |
| 30 | #define ERFOLG 1 |
| 31 | #define MISSERFOLG -1 |
| 32 | #define ABGEWEHRT 2 |
| 33 | |
| 34 | // ===== Properties des Gilden-Masters: ===== |
| 35 | |
| 36 | #define P_VALID_GUILDS "valid_guilds" |
| 37 | |
| 38 | // ===== Properties der Gilde: ====== |
| 39 | |
| 40 | #define P_GUILD_SKILLS "guild_skills" |
| 41 | #define P_GUILD_RESTRICTIONS "guild_rest" |
| 42 | //bitte dieses Define auch in /scure/master/userinfo.c aendern... |
| 43 | #define P_GUILD_DEFAULT_SPELLBOOK "guild_sb" |
| 44 | #define P_GUILD_MALE_TITLES "guild_male_titles" |
| 45 | #define P_GUILD_FEMALE_TITLES "guild_female_titles" |
| 46 | #define P_GUILD_LEVELS "guild_levels" |
| 47 | #define P_GUILD_PREPAREBLOCK "guild_prepareblock" |
| 48 | #define P_GUILD_DEACTIVATE_SKILLS "guild_deactivate_skills" |
| 49 | |
| 50 | // ===== Properties des Spellbooks: ===== |
| 51 | |
| 52 | #define P_SB_SPELLS "sb_spells" |
| 53 | |
| 54 | // ===== Properties der Gilde UND des Spellbooks: ===== |
| 55 | #define P_GLOBAL_SKILLPROPS "sm_global" |
| 56 | |
| 57 | // ===== Properties des Spielers: ===== |
| 58 | |
| 59 | // #define P_GUILD "guild" |
| 60 | #define P_DEFAULT_GUILD "default_guild" |
| 61 | #define P_DEFENDERS "defenders" |
| 62 | #define P_GUILD_LEVEL "guild_level" |
| 63 | #define P_GUILD_RATING "guild_rating" |
| 64 | #define P_GUILD_TITLE "guild_title" |
| 65 | #define P_SUBGUILD_TITLE "subguild_title" |
| 66 | #define P_VISIBLE_SUBGUILD_TITLE "visible_subguild_title" |
| 67 | #define P_MAGIC_RESISTANCE_OFFSET "mag_res_offset" |
| 68 | #define P_NEWSKILLS "newskills" |
| 69 | #define P_NEXT_SPELL_TIME "next_spell" |
| 70 | #define P_PREPARED_SPELL "prepared_spell" |
| 71 | #define P_TMP_ATTACK_HOOK "attack_hook" |
| 72 | #define P_TMP_ATTACK_MOD "attack_mod" |
| 73 | #define P_TMP_DEFEND_HOOK "defend_hook" |
| 74 | #define P_TMP_DIE_HOOK "die_hook" |
| 75 | #define P_TMP_MOVE_HOOK "move_hook" |
| 76 | #define P_WEAPON_TEACHER "weapon_teacher" |
| 77 | #define P_SKILLSVERSION "p_lib_skillsversion" |
| 78 | |
| 79 | // ===== Standard-Skills: ===== |
| 80 | |
| 81 | #define FIGHT(x) ("Fight_"+x) |
| 82 | #define SHOOT(x) ("Shoot_"+x) |
| 83 | #define SK_BOOZE "Booze" |
| 84 | #define SK_CARRY "CarrySkill" |
| 85 | #define SK_CASTING "Cast" |
| 86 | #define SK_DEFEND_OTHER "DefendOther" |
| 87 | #define SK_FIGHT "Fight" |
| 88 | #define SK_INFORM_DEFEND "InformDefend" |
| 89 | #define SK_MAGIC_ATTACK "MagicAttack" |
| 90 | #define SK_MAGIC_DEFENSE "MagicDefense" |
| 91 | #define SK_NIGHTVISION "Nightvision" |
| 92 | #define SK_SHOOT "Shoot" |
| 93 | #define SK_SPELL_DEFEND "SpellDefend" |
| 94 | #define SK_SWORDFIGHTING FIGHT(WT_SWORD) |
| 95 | #define SK_TWOHANDED "Bihand" |
| 96 | #define SK_WEAPONLESS FIGHT(WT_HANDS) |
| 97 | |
| 98 | // ===== Skill Infos: ===== |
| 99 | |
| 100 | #define FACTOR(x) ("fac_"+x) |
| 101 | #define OFFSET(x) ("off_"+x) |
| 102 | |
| 103 | #define SI_SKILLFUNC "si_func" |
| 104 | // Funktion, die aufgerufen wird |
| 105 | |
| 106 | #define SI_CLOSURE "si_closure" |
| 107 | // Nur fuer den internen Gebrauch |
| 108 | // (Geschwindigkeitsoptimierung) |
| 109 | |
| 110 | #define SI_SPELLBOOK "si_spellbook" |
| 111 | // Spellbook, in dem der Spell |
| 112 | // steht |
| 113 | |
| 114 | #define SI_SPELLCOST "si_cost" |
| 115 | // Kosten des Spells |
| 116 | |
| 117 | #define SI_TIME_MSG "time_msg" |
| 118 | // Die Meldung wird anstelle von |
| 119 | // "Du bist noch zu erschoepft |
| 120 | // von Deinem letzten Spruch." |
| 121 | // ausgegeben. |
| 122 | |
| 123 | #define SI_SP_LOW_MSG "sp_low_msg" |
| 124 | // Die Meldung wird anstelle von |
| 125 | // "Du hast zu wenig Zauberpunkte |
| 126 | // fuer diesen Spruch." |
| 127 | // ausgegeben. |
| 128 | |
| 129 | #define SI_PREPARE_MSG "si_prepare_msg" |
| 130 | #define SI_PREPARE_ABORT_MSG "si_prepare_abort_msg" |
| 131 | #define SI_PREPARE_BUSY_MSG "si_prepare_busy_msg" |
| 132 | // Meldungen fuer Spruch- |
| 133 | // vorbereitung, Abbruch und |
| 134 | // schon beschaeftigt |
| 135 | |
| 136 | #define SI_NOMAGIC "si_nomagic" |
| 137 | // Prozentwert, mit dem P_NOMAGIC |
| 138 | // umgangen werden kann |
| 139 | |
| 140 | #define SI_NOMAGIC_MSG "si_nomagic_msg" |
| 141 | // Meldung, die Anstelle von |
| 142 | // "Dein Zauberspruch verpufft |
| 143 | // im Nichts" ausgegeben werden |
| 144 | // soll. |
| 145 | |
| 146 | #define SI_SPELLFATIGUE "si_fatigue" |
| 147 | // Erschoepfung - Zeit, in der |
| 148 | // keine weiteren Spells |
| 149 | // aufgerufen werden koennen |
| 150 | #define SI_X_SPELLFATIGUE "std:si:xfatigue" |
| 151 | |
| 152 | #define SI_SKILLLEARN "si_learn" |
| 153 | // Lerngeschwindigkeit in 0.01% |
| 154 | // pro A_INT/2 |
| 155 | |
| 156 | #define SI_LEARN_ATTRIBUTE "si_learn_attribute" |
| 157 | // Wenn man nicht will, dass man in Abhaengigkeit von |
| 158 | // INT lernt |
| 159 | |
| 160 | #define SI_NO_LEARN "si_no_learn" |
| 161 | // Wenn man (temporaer!) nicht will, dass dieser Skill gelernt wird. |
| 162 | // Muss von den Spellbooks beachtet werden. |
| 163 | // Sollte niemals im Spieler abgespeichert werden. Oder permanent in |
| 164 | // Gilde/Spellbook gesetzt sein. Sondern im Laufe einesr Nutzung in der jew. |
| 165 | // Kopie von sinfo gesetzt werden, die gerade genutzt wird. |
| 166 | |
| 167 | #define SI_SKILLABILITY "si_abil" |
| 168 | // Faehigkeit, diesen Spruch zu |
| 169 | // benutzen |
| 170 | |
| 171 | #define SI_SKILLARG "si_arg" |
| 172 | // Argumente, die uebergeben |
| 173 | // wurden |
| 174 | |
| 175 | #define SI_SKILLRESTR_USE "si_restr_u" |
| 176 | // Beschraenkungen beim Gebrauch |
| 177 | |
| 178 | #define SI_SKILLRESTR_LEARN "si_restr_l" |
| 179 | // Beschraenkungen beim Lernen |
| 180 | |
| 181 | #define SI_SKILLINFO "si_info" |
| 182 | // Kurzer Informationstext |
| 183 | |
| 184 | #define SI_SKILLINFO_LONG "si_info_l" |
| 185 | // Langer Informationstext |
| 186 | |
| 187 | #define SI_SKILLDAMAGE "si_damage" |
| 188 | // Schaden |
| 189 | |
| 190 | #define SI_SKILLDAMAGE_BY_ROW "si_damage_by_row" |
| 191 | // Schaden durch Teamreihen |
| 192 | |
| 193 | #define SI_SKILLDAMAGE_TYPE "si_damtyp" |
| 194 | // Art des Schadens |
| 195 | |
| 196 | #define SI_SKILLDAMAGE_MSG "si_dammsg" |
| 197 | // Meldung die anstelle einer |
| 198 | // Waffe kommen soll |
| 199 | |
| 200 | #define SI_SKILLDAMAGE_MSG2 "si_dammsg2" |
| 201 | // dito fuer den Text fuer |
| 202 | // andere im Raum |
| 203 | |
| 204 | #define SI_SPELL "si_spell" |
| 205 | // Spell, mit dem angegriffen |
| 206 | // wurde |
| 207 | |
| 208 | #define SI_COLLATERAL_DAMAGE "si_collateral_damage" |
| 209 | // Schadensanteil bei Flaechen- |
| 210 | // spells, den Freunde abbekommen, |
| 211 | // in Prozent |
| 212 | |
| 213 | #define SI_NUMBER_ENEMIES "si_num_enemies" |
| 214 | // Anzahl Feinde bei |
| 215 | // Flaechenspruch |
| 216 | |
| 217 | #define SI_NUMBER_FRIENDS "si_num_friends" |
| 218 | // Anzahl Freunde bei |
| 219 | // Flaechenspruch |
| 220 | |
| 221 | #define SI_DISTANCE "si_distance" |
| 222 | // Entfernung |
| 223 | |
| 224 | #define SI_WIDTH "si_width" |
| 225 | // Breite des Flaechenangriffs |
| 226 | |
| 227 | #define SI_DEPTH "si_depth" |
| 228 | // Tiefe des Flaechenangriffs |
| 229 | |
| 230 | #define SI_INHERIT "si_inherit" |
| 231 | // Skill, von dem etwas |
| 232 | // uebernommen werden soll |
| 233 | |
| 234 | #define SI_DIFFICULTY "si_difficulty" |
| 235 | // Wert, der die Obergrenze der |
| 236 | // Faehigkeit abgrenzt |
| 237 | |
| 238 | #define SI_LASTLIGHT "si_lastlight" |
| 239 | // Fuer Nachtsicht: Wann hat |
| 240 | // der Spieler zum letzten mal |
| 241 | // Licht gesehen. |
| 242 | |
| 243 | #define SI_SKILLHEAL "si_heal" |
| 244 | // Heilung |
| 245 | |
| 246 | #define SI_USR "si_usr" |
| 247 | // selbst definierte Infos |
| 248 | |
| 249 | #define SI_TESTFLAG "si_testflag" |
| 250 | // Testflag |
| 251 | |
| 252 | #define SI_GUILD "si_guild" |
| 253 | // Gilde, falls Auswahl aus |
| 254 | // mehreren moeglich |
| 255 | |
| 256 | #define SI_ENEMY "si_enemy" |
| 257 | // Feind bei Kampfspruechen |
| 258 | |
| 259 | #define SI_FRIEND "si_friend" |
| 260 | // Der zu verteidigende Freund |
| 261 | // bei DefendOther und |
| 262 | // InformDefend |
| 263 | |
| 264 | #define SI_MAGIC_TYPE "si_magic_type" |
| 265 | // Von was fuer einer Art ist |
| 266 | // die Magie (s.u.) |
| 267 | |
| 268 | #define SI_PREPARE_TIME "si_prepare_time" |
| 269 | // Zeit die zur Vorbereitung |
| 270 | // benoetigt wird. |
| 271 | |
| 272 | #define SI_ATTACK_BUSY_MSG "si_attack_busy_msg" |
| 273 | // Meldung, wenn der Spieler zu |
| 274 | // beschaeftigt ist |
| 275 | |
| 276 | #define SI_NO_ATTACK_BUSY "si_no_attack_busy" |
| 277 | // Wenn der Spell nicht als |
| 278 | // Taetigkeit zaehlen/gezaehlt |
| 279 | // werden soll, kann man hier |
| 280 | // NO_ATTACK_BUSY[_SET|_QUERY] |
| 281 | // (s.u.) setzen |
| 282 | |
| 283 | #define SI_ATTACK_BUSY_AMOUNT "si_attack_busy_amount" |
| 284 | // Der Spell hat ein gewisses |
| 285 | // AttackBusy, aber das weicht |
| 286 | // vom Standardwert 1 ab. Der |
| 287 | // Wert kann hier gesetzt |
| 288 | // werden. |
| 289 | |
| 290 | #define SI_LAST_USE "si_last_use" |
| 291 | // Letzte benutzung eines |
| 292 | // Skills (fuer Rassenskills) |
| 293 | |
| 294 | #define SI_LEARN_PROB "si_learn_prob" |
| 295 | // Lernwahrscheinlichkeit |
| 296 | // (fuer Rassenskills) |
| 297 | |
| 298 | #define SI_SKILLDURATION "si_duration" |
| 299 | // Wie soll wird der Skill anhalten? |
| 300 | // (fuer Spells mit einer Dauer) |
| 301 | |
| 302 | // ===== Parameter fuer Spell-Mapping: ===== |
| 303 | |
| 304 | #define SP_NAME "sp_name" |
| 305 | // Name des Spells |
| 306 | |
| 307 | #define SP_SHOW_DAMAGE "sp_showdamage" |
| 308 | // Treffermeldung soll gezeigt |
| 309 | // werden. |
| 310 | |
| 311 | #define SP_REDUCE_ARMOUR "sp_reduce_ac" |
| 312 | // AC soll Typabhaengig |
| 313 | // reduziert werden. |
| 314 | |
| 315 | #define SP_PHYSICAL_ATTACK "sp_physical" |
| 316 | // Koerperlicher Angriff |
| 317 | |
| 318 | #define SP_RECURSIVE "sp_recursive" |
| 319 | // Rekursionen |
| 320 | |
| 321 | #define SP_NO_ENEMY "no_enemy" |
| 322 | // Ist kein richtiger Angriff |
| 323 | |
| 324 | #define SP_NO_ACTIVE_DEFENSE "sp_no_active_defense" |
| 325 | // Es ist keine aktive Abwehr erwuenscht |
| 326 | |
| 327 | #define SP_GLOBAL_ATTACK "sp_global_attack" |
| 328 | // Ist Flaechenangriff |
| 329 | |
| 330 | // ===== Skill Restrictions: ===== |
| 331 | |
| 332 | #define SR_FUN "restr_fun" |
| 333 | // Funktion, die weitere |
| 334 | // Einschraenkungen prueft |
| 335 | |
| 336 | #define SR_EXCLUDE_RACE "restr_race_ex" |
| 337 | // Ausgeschlossene Rassen |
| 338 | |
| 339 | #define SR_INCLUDE_RACE "restr_race_in" |
| 340 | // Eingeschlossene Rassen |
| 341 | |
| 342 | #define SR_EXCLUDE_GUILD "restr_guild_ex" |
| 343 | // Ausgeschlossene Gilden |
| 344 | |
| 345 | #define SR_INCLUDE_GUILD "restr_guild_in" |
| 346 | // Eingeschlossene Gilden |
| 347 | |
| 348 | #define SR_GOOD "restr_good" |
| 349 | // Align < |
| 350 | |
| 351 | #define SR_BAD "restr_bad" |
| 352 | // Align > |
| 353 | |
| 354 | #define SR_FREE_HANDS "restr_hands" |
| 355 | // Benoetigte freie Haende |
| 356 | |
| 357 | #define SR_SEER "restr_seer" |
| 358 | // Muss Seher sein |
| 359 | |
| 360 | #define SR_MIN_SIZE "min_size" |
| 361 | // Mindestgroesse |
| 362 | |
| 363 | #define SR_MAX_SIZE "max_size" |
| 364 | // Maximalgroesse |
| 365 | |
| 366 | #define SR_PROP "restr_properties" |
| 367 | // Werte beliebiger Properties |
| 368 | |
| 369 | #define SR_QUEST "restr_quests" |
| 370 | // Quest bestanden |
| 371 | |
| 372 | #define SR_MINIQUEST "restr_miniquests" |
| 373 | // Miniquest geloest |
| 374 | |
| 375 | // ===== Skill Modifier: ===== |
| 376 | |
| 377 | #define SM_RACE "modify_race" |
| 378 | // Rassenspezifische |
| 379 | // Besonderheiten |
| 380 | |
| 381 | // ===== Fuer das Attack-Busy-Handling: ===== |
| 382 | |
| 383 | #define NO_ATTACK_BUSY_SET 0x001 |
| 384 | #define NO_ATTACK_BUSY_QUERY 0x002 |
| 385 | #define NO_ATTACK_BUSY 0x003 |
| 386 | |
| 387 | // ===== Magie-Arten: ===== |
| 388 | |
| 389 | #define MT_ANGRIFF "mt_angriff" |
| 390 | #define MT_BEHERRSCHUNG "mt_beherrschung" |
| 391 | #define MT_BESCHWOERUNG "mt_beschwoerung" |
| 392 | #define MT_BEWEGUNG "mt_bewegung" |
| 393 | #define MT_CREATION "mt_creation" |
| 394 | #define MT_HEILUNG "mt_heilung" |
| 395 | #define MT_HELLSICHT "mt_hellsicht" |
| 396 | #define MT_ILLUSION "mt_illusion" |
| 397 | #define MT_PSYCHO "mt_psycho" |
| 398 | #define MT_SAKRAL "mt_sakral" |
| 399 | #define MT_SCHUTZ "mt_schutz" |
| 400 | #define MT_VERWANDLUNG "mt_verwandlung" |
| 401 | |
| 402 | #define MT_MISC "mt_misc" |
| 403 | |
| 404 | // ===== Defines fuer FindGroup() ===== |
| 405 | |
| 406 | #define FG_ENEMIES -1 |
| 407 | #define FG_FRIENDS 1 |
| 408 | #define FG_ALL 0 |
| 409 | |
| 410 | // ======== OBSOLETE Properties / Defines ============= |
| 411 | // Prop wird nicht mehr genutzt, ist aber noch fuer /std/player/base.c noetig, |
| 412 | // um den SAVE-Status in den Spieler-Props zu loeschen. |
| 413 | #define P_GUILD_PREVENTS_RACESKILL "guild_prevents_raceskill" |
| 414 | |
| 415 | #endif |