blob: 6af5cbc71fa8bd790e0f15d7064c77a90f4fcafd [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// 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