blob: 1cf61aa26b3db12ac3e07d0af53ec50ba3b5ece6 [file] [log] [blame]
// MorgenGrauen MUDlib
//
// questmaster.h -- header file for questmaster object
//
// $Id: questmaster.h 8261 2012-12-04 22:56:29Z Zesstra $
#ifndef __QUESTMASTER_H__
#define __QUESTMASTER_H__
//XP threshold
#define XP_NEEDED_FOR_WIZ 1000000
// the questmaster
#define QM "/secure/questmaster"
// the quests file
#define QUESTS "/secure/ARCH/questmaster"
// Dumpfile for MiniQuests
#define MQ_DUMP_FILE "/secure/ARCH/MINIQUESTS.dump"
// percentage of max_QP which is needed to become wizard
#define QP_PERCENT 80
// minimum of QP to become Seer or Wizzard
#define QP_MIN 1196
// log to file
#define QMLOG(x) write_file("/log/QUESTMASTER",dtime(time())+": "+\
geteuid(this_interactive())+" -> "+ x +"\n")
#define MQMLOG(x) write_file("/log/ARCH/MQUESTMASTER", \
dtime(time())+": "+(this_interactive()?geteuid(this_interactive()):"UNKNOWN")+\
" -> "+ x +"\n")
#define MQSOLVEDLOG(x) write_file("/log/ARCH/MQ_SOLVED", \
dtime(time())+" "+x+"\n")
// quest groups
#define QGROUP_1 8
#define QGROUP_2 18
#define QGROUP_3 29
#define QGROUP_S -1
#define QGROUPS ({0,QGROUP_1,QGROUP_2, QGROUP_3})
// Welcher Eintrag im Array steht fuer was?
#define Q_QP 0
#define Q_XP 1
#define Q_ALLOWED 2
#define Q_HINT 3
#define Q_DIFF 4
#define Q_CLASS 5
#define Q_ACTIVE 6
#define Q_WIZ 7
#define Q_SCNDWIZ 8
#define Q_ATTR 9
#define Q_AVERAGE 10
// Sternchen fuer die Klasse
#define QCLASS_STARS(n) funcall(lambda( ({ 'x, 's }), \
({#'while, ({#'>, 'x, 0}), \
's, ({#', ,({#'=, 'x, ({#'-, 'x, 1}) }), \
({#'=, 's, ({#'+, 's, "*" }) }) \
}) }) ), n, "") /* ' */
// Attribute der Quests
#define QATTR_FLEISSIG 1
#define QATTR_HEROISCH 2
#define QATTR_EPISCH 3
#define QATTR_LEGENDAER 4
#define QATTR_STRINGS ([0: "", \
QATTR_FLEISSIG: "fleissig", \
QATTR_HEROISCH: "heroisch", \
QATTR_EPISCH: "episch", \
QATTR_LEGENDAER: "legendaer"])
// Rueckgabewerte Quests
#define OK 1
#define GQ_ALREADY_SET -1
#define GQ_KEY_INVALID -2
#define GQ_ILLEGAL_OBJ -3
#define GQ_IS_INACTIVE -4
#define DQ_NOT_SET -1
#define DQ_KEY_INVALID -2
#define DQ_ILLEGAL_OBJ -3
#define QQ_GUEST 2
#define QQ_KEY_INVALID 0
#define ERRNO_2_STRING(x,y) (["GQ1" : "Ok.",\
"GQ-1": "Die Quest ist bereits geloest worden.",\
"GQ-2": "Ungueltiger Questname.",\
"GQ-3": "Unbefugter Zugriff.",\
"GQ-4": "Die Quest ist derzeit inaktiv.",\
"DQ1" : "Ok.",\
"DQ-1": "Die Quest war nicht gesetzt.",\
"DQ-2": "Ungueltiger Questname.",\
"DQ-3": "Unbefugter Zugriff.",\
"QQ1" : "Ok.",\
"QQ2" : "Gaeste koennen keine Quest loesen.",\
"QQ0" : "Ungueltiger Questname.",\
])[x+y]
// Miniquests
#define MQ_ALREADY_SET -1
#define MQ_KEY_INVALID -2
#define MQ_ILLEGAL_OBJ -3
#define MQ_IS_INACTIVE -4
#define MQ_GUEST -5
#endif /* __QUESTMASTER_H__ */