On Thu, 30 Apr 1998, Tony Robbins wrote:
->He has a point. We've seen object minlevels, it might be kinda nifty to
->add a world spec type thing to do something like:
Here, it's simple Mailer Code(tm) and not exactly what you specified,
but it's quick and easy:
To room_data add "int level;"
In db.c:parse_room() find:
if (!get_line(fl, line) || sscanf(line, " %d %s %d ", t, flags,
t + 2) != 3) {
and change it to,
if (!get_line(fl, line) || (i = sscanf(line, " %d %s %d %d ", t,
flags, t + 2, t + 3)) < 3 || i > 4) {
Just below that you'll see,
world[room_nr].room_flags = asciiflag_conv(flags);
world[room_nr].sectory_type = t[2];
add,
world[room_nr].level = (i == 4 ? t[3] : 0);
In act.movement.c:do_simple_move(), after,
if (need_specials_check && special(ch, dir + 1, ""))
return 0;
add,
if (!IS_NPC(ch) && world[EXIT(ch, dir)->to_room].level >
GET_LEVEL(ch)) {
send_to_char("You don't belong in there.\r\n", ch);
return 0;
}
In act.wizard.c:find_target_room() find,
if (GET_LEVEL(ch) < LVL_GRGOD) {
and before it add,
if (GET_LEVEL(ch) < world[location].level) {
send_to_char("You aren't godly enough to go there.\r\n", ch);
return 0;
}
Finally in do_show() find the reference to GODROOM,
if (ROOM_FLAGGED(i, ROOM_GODROOM))
and change it to,
if (ROOM_FLAGGED(i, ROOM_GODROOM) || world[i].level >= LVL_GRGOD)
I think that's all...ROOM_GODROOM will still work as it always did,
but you might consider changing it given this new feature.
-dak : Remember, it's Mailer Code(tm)
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST