blob: 1cf61aa26b3db12ac3e07d0af53ec50ba3b5ece6 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// questmaster.h -- header file for questmaster object
4//
5// $Id: questmaster.h 8261 2012-12-04 22:56:29Z Zesstra $
6
7#ifndef __QUESTMASTER_H__
8#define __QUESTMASTER_H__
9
10//XP threshold
11
12#define XP_NEEDED_FOR_WIZ 1000000
13
14// the questmaster
15#define QM "/secure/questmaster"
16
17// the quests file
18#define QUESTS "/secure/ARCH/questmaster"
19
20// Dumpfile for MiniQuests
21#define MQ_DUMP_FILE "/secure/ARCH/MINIQUESTS.dump"
22
23// percentage of max_QP which is needed to become wizard
24#define QP_PERCENT 80
25
26
27// minimum of QP to become Seer or Wizzard
28#define QP_MIN 1196
29
30
31// log to file
32
33#define QMLOG(x) write_file("/log/QUESTMASTER",dtime(time())+": "+\
34 geteuid(this_interactive())+" -> "+ x +"\n")
35
36#define MQMLOG(x) write_file("/log/ARCH/MQUESTMASTER", \
37 dtime(time())+": "+(this_interactive()?geteuid(this_interactive()):"UNKNOWN")+\
38 " -> "+ x +"\n")
39
40#define MQSOLVEDLOG(x) write_file("/log/ARCH/MQ_SOLVED", \
41 dtime(time())+" "+x+"\n")
42
43// quest groups
44
45#define QGROUP_1 8
46#define QGROUP_2 18
47#define QGROUP_3 29
48#define QGROUP_S -1
49
50#define QGROUPS ({0,QGROUP_1,QGROUP_2, QGROUP_3})
51
52
53// Welcher Eintrag im Array steht fuer was?
54#define Q_QP 0
55#define Q_XP 1
56#define Q_ALLOWED 2
57#define Q_HINT 3
58#define Q_DIFF 4
59#define Q_CLASS 5
60#define Q_ACTIVE 6
61#define Q_WIZ 7
62#define Q_SCNDWIZ 8
63#define Q_ATTR 9
64#define Q_AVERAGE 10
65
66// Sternchen fuer die Klasse
67
68#define QCLASS_STARS(n) funcall(lambda( ({ 'x, 's }), \
69 ({#'while, ({#'>, 'x, 0}), \
70 's, ({#', ,({#'=, 'x, ({#'-, 'x, 1}) }), \
71 ({#'=, 's, ({#'+, 's, "*" }) }) \
72 }) }) ), n, "") /* ' */
73
74
75// Attribute der Quests
76#define QATTR_FLEISSIG 1
77#define QATTR_HEROISCH 2
78#define QATTR_EPISCH 3
79#define QATTR_LEGENDAER 4
80
81#define QATTR_STRINGS ([0: "", \
82 QATTR_FLEISSIG: "fleissig", \
83 QATTR_HEROISCH: "heroisch", \
84 QATTR_EPISCH: "episch", \
85 QATTR_LEGENDAER: "legendaer"])
86
87
88
89// Rueckgabewerte Quests
90
91#define OK 1
92
93#define GQ_ALREADY_SET -1
94#define GQ_KEY_INVALID -2
95#define GQ_ILLEGAL_OBJ -3
96#define GQ_IS_INACTIVE -4
97
98#define DQ_NOT_SET -1
99#define DQ_KEY_INVALID -2
100#define DQ_ILLEGAL_OBJ -3
101
102#define QQ_GUEST 2
103#define QQ_KEY_INVALID 0
104
105#define ERRNO_2_STRING(x,y) (["GQ1" : "Ok.",\
106 "GQ-1": "Die Quest ist bereits geloest worden.",\
107 "GQ-2": "Ungueltiger Questname.",\
108 "GQ-3": "Unbefugter Zugriff.",\
109 "GQ-4": "Die Quest ist derzeit inaktiv.",\
110 "DQ1" : "Ok.",\
111 "DQ-1": "Die Quest war nicht gesetzt.",\
112 "DQ-2": "Ungueltiger Questname.",\
113 "DQ-3": "Unbefugter Zugriff.",\
114 "QQ1" : "Ok.",\
115 "QQ2" : "Gaeste koennen keine Quest loesen.",\
116 "QQ0" : "Ungueltiger Questname.",\
117 ])[x+y]
118
119
120// Miniquests
121
122#define MQ_ALREADY_SET -1
123#define MQ_KEY_INVALID -2
124#define MQ_ILLEGAL_OBJ -3
125#define MQ_IS_INACTIVE -4
126#define MQ_GUEST -5
127
128
129#endif /* __QUESTMASTER_H__ */
130
131
132