From 018e07b76e8c3b31c9df95e139757bcb8a7fee60 Mon Sep 17 00:00:00 2001 From: Rumble Date: Wed, 23 Dec 2009 06:45:53 +0000 Subject: [PATCH] [Dec 23 2009] - Rumble Added zone flags and min/max level to show zone # and stat zone #. Changed show zone # reset mode from a # to the actual string description. Changed Message Type on stat object from a number to the actual message type. i.e. pierce. --- changelog | 4 ++++ src/act.wizard.c | 18 +++++++++++++----- src/oasis_list.c | 11 +++++++++-- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/changelog b/changelog index 12b0cb3..e763d74 100644 --- a/changelog +++ b/changelog @@ -36,6 +36,10 @@ Xlist (mlist, olist, rlist, zlist, slist, tlist, qlist) (lots of major bugfixes too) @ tbaMUD 3.61 +[Dec 23 2009] - Rumble + Added zone flags and min/max level to show zone # and stat zone #. + Changed show zone # reset mode from a # to the actual string description. + Changed Message Type on stat object from a number to the actual message type. i.e. pierce. [Dec 22 2009] - Rumble Made copyover save loadroom so players stay in the same room during copyover. Added scan command. diff --git a/src/act.wizard.c b/src/act.wizard.c index f771402..e46b0a2 100644 --- a/src/act.wizard.c +++ b/src/act.wizard.c @@ -50,6 +50,7 @@ static void trg_checkload(struct char_data *ch, trig_vnum tvnum); static void mod_llog_entry(struct last_entry *llast,int type); const char *get_spec_func_name(SPECIAL(*func)); +bool zedit_get_levels(struct descriptor_data *d, char *buf); int purge_room(room_rnum room) { @@ -650,8 +651,8 @@ static void do_stat_object(struct char_data *ch, struct obj_data *j) GET_OBJ_VAL(j, 2), GET_OBJ_VAL(j, 1)); break; case ITEM_WEAPON: - send_to_char(ch, "Todam: %dd%d, Avg Damage: %.1f. Message type: %d\r\n", - GET_OBJ_VAL(j, 1), GET_OBJ_VAL(j, 2), ((GET_OBJ_VAL(j, 2) + 1) / 2.0) * GET_OBJ_VAL(j, 1), GET_OBJ_VAL(j, 3)); + send_to_char(ch, "Todam: %dd%d, Avg Damage: %.1f. Message type: %s\r\n", + GET_OBJ_VAL(j, 1), GET_OBJ_VAL(j, 2), ((GET_OBJ_VAL(j, 2) + 1) / 2.0) * GET_OBJ_VAL(j, 1), attack_hit_text[GET_OBJ_VAL(j, 3)].singular); break; case ITEM_ARMOR: send_to_char(ch, "AC-apply: [%d]\r\n", GET_OBJ_VAL(j, 0)); @@ -2366,12 +2367,15 @@ static size_t print_zone_to_buf(char *bufptr, size_t left, zone_rnum zone, int l if (listall) { int i, j, k, l, m, n, o; + char buf[MAX_STRING_LENGTH]; + + sprintbitarray(zone_table[zone].zone_flags, zone_bits, ZN_ARRAY_MAX, buf); tmp = snprintf(bufptr, left, - "%3d %-30.30s%s By: %-10.10s%s Age: %3d; Reset: %3d (%1d); Range: %5d-%5d\r\n", + "%3d %-30.30s%s By: %-10.10s%s Age: %3d; Reset: %3d (%s); Range: %5d-%5d\r\n", zone_table[zone].number, zone_table[zone].name, KNRM, zone_table[zone].builders, KNRM, zone_table[zone].age, zone_table[zone].lifespan, - zone_table[zone].reset_mode, + zone_table[zone].reset_mode ? ((zone_table[zone].reset_mode == 1) ? "Reset when no players are in zone" : "Normal reset") : "Never reset", zone_table[zone].bot, zone_table[zone].top); i = j = k = l = m = n = o = 0; @@ -2400,13 +2404,17 @@ static size_t print_zone_to_buf(char *bufptr, size_t left, zone_rnum zone, int l tmp += snprintf(bufptr + tmp, left - tmp, " Zone stats:\r\n" " ---------------\r\n" + " Flags: %s\r\n" + " Min Lev: %2d\r\n" + " Max Lev: %2d\r\n" " Rooms: %2d\r\n" " Objects: %2d\r\n" " Mobiles: %2d\r\n" " Shops: %2d\r\n" " Triggers: %2d\r\n" " Quests: %2d\r\n", - j, k, l, m, n, o); + buf, zone_table[zone].min_level, zone_table[zone].max_level, + j, k, l, m, n, o); return tmp; } diff --git a/src/oasis_list.c b/src/oasis_list.c index f222d88..ab60a70 100644 --- a/src/oasis_list.c +++ b/src/oasis_list.c @@ -441,9 +441,9 @@ static void list_zones(struct char_data *ch, zone_rnum rnum, zone_vnum vmin, zon void print_zone(struct char_data *ch, zone_vnum vnum) { zone_rnum rnum; - int size_rooms, size_objects, size_mobiles, size_quests, size_shops, size_trigs, i; + int size_rooms, size_objects, size_mobiles, size_quests, size_shops, size_trigs, i, largest_table; room_vnum top, bottom; - int largest_table; + char buf[MAX_STRING_LENGTH]; if ((rnum = real_zone(vnum)) == NOWHERE) { send_to_char(ch, "Zone #%d does not exist in the database.\r\n", vnum); @@ -490,6 +490,7 @@ void print_zone(struct char_data *ch, zone_vnum vnum) size_trigs++; size_quests = count_quests(bottom, top); + sprintbitarray(zone_table[rnum].zone_flags, zone_bits, ZN_ARRAY_MAX, buf); /* Display all of the zone information at once. */ send_to_char(ch, @@ -501,6 +502,9 @@ void print_zone(struct char_data *ch, zone_vnum vnum) "%sBottom of Zone = %s%d\r\n" "%sTop of Zone = %s%d\r\n" "%sReset Mode = %s%s\r\n" + "%sZone Flags = %s%s\r\n" + "%sMin Level = %s%d\r\n" + "%sMax Level = %s%d\r\n" "%sSize\r\n" "%s Rooms = %s%d\r\n" "%s Objects = %s%d\r\n" @@ -517,6 +521,9 @@ void print_zone(struct char_data *ch, zone_vnum vnum) QGRN, QCYN, zone_table[rnum].top, QGRN, QCYN, zone_table[rnum].reset_mode ? ((zone_table[rnum].reset_mode == 1) ? "Reset when no players are in zone." : "Normal reset.") : "Never reset", + QGRN, QCYN, buf, + QGRN, QCYN, zone_table[rnum].min_level, + QGRN, QCYN, zone_table[rnum].max_level, QGRN, QGRN, QCYN, size_rooms, QGRN, QCYN, size_objects,