MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | // 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 | |