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