I've decided that I want to incorporate MobProgs into my Circle 2.2 mud, and I was wondering if anyone had done any work in this area or had any suggestions. MobProgs seems a great tool to allow area creators to accomplish things that Implementors always have to hard code. Has anyone attempted this yet? ObCircleBug: Immortals can wizlock the game above thier level, thus allowing them to lock out Greater Gods and such. Ooops. A simple fix: ACMD(do_wizlock) { int value; char *when; one_argument(argument, arg); if (*arg) { value = atoi(arg); if (value < 0 || value > LEVEL_IMPL) { send_to_char("Invalid wizlock value.\n\r", ch); return; } /* do not allow people to wizlock above thier level. * this bug came with circle 2.2 source -vamp */ if (value > GET_LEVEL(ch)) { send_to_char("You may only wizlock below your level.\n\r", ch); return; } restrict = value; when = "now"; } else when = "currently"; [blah, blah ... ] Oh, and I guess here's one more for the road ... the mortal version of when done on a mob will show the room they are in. Problem is that I dont want players seeing mobs that are located in "Mob Distribution Room". So I flagged it "private" and added two extra checks into perform_mortal_where(). void perform_mortal_where(struct char_data *ch, char *arg) { register struct char_data *i; register struct descriptor_data *d; if (!*arg) { send_to_char("Players in your Zone\n\r--------------------\n\r", ch); for (d = descriptor_list; d; d = d->next) if (!d->connected) { i = (d->original ? d->original : d->character); if (i && CAN_SEE(ch, i) && (i->in_room != NOWHERE) && (world[ch->in_room].zone == world[i->in_room].zone)) { sprintf(buf, "%-20s - %s\n\r", GET_NAME(i), world[i->in_room].name); send_to_char(buf, ch); } } } else { /* print only FIRST char, not all. */ for (i = character_list; i; i = i->next) if (world[i->in_room].zone == world[ch->in_room].zone && CAN_SEE(ch, i) && (i->in_room != NOWHERE) && isname(arg, i->player.name) && /* added conditions to prevent mortal where from seeing mobs in * private or godrooms. no seeing mob distribution rooms -vamp */ (!IS_SET(world[i->in_room].room_flags, PRIVATE)) && (!IS_SET(world[i->in_room].room_flags, GODROOM)) ) { sprintf(buf, "%-25s - %s\n\r", GET_NAME(i), world[i->in_room].name); send_to_char(buf, ch); return; } send_to_char("No-one around by that name.\n\r", ch); } } _O_ Ryan L. Watkins vamp@csulb.edu | Academic Computing Services Cal State Long Beach - Network Support | pgp key available via 'finger vamp@beach.csulb.edu' or key server
This archive was generated by hypermail 2b30 : 12/07/00 PST