For some reason, when I try to track a mob now that is affected by
notrack it is crashing my MUD.
I have done very little to the track skill, but there it is:
ACMD(do_track)
{
struct char_data *vict;
int dir, num, skill_num;
skill_num = 140;
if (!GET_SKILL(ch, SKILL_TRACK)) {
send_to_char("You have no idea how.\r\n", ch);
return;
}
if (IS_RANGER(ch) && ARMOR_OK(ch)) {
send_to_char("Rangers must use studded leather or lighter in order to
use their skills.\r\n", ch);
return;
}
one_argument(argument, arg);
if (!*arg) {
send_to_char("Whom are you trying to track?\r\n", ch);
return;
}
if (!(vict = get_char_vis(ch, arg))) {
send_to_char("No-one around by that name.\r\n", ch);
return;
}
if (IS_AFFECTED(vict, AFF_NOTRACK)) {
send_to_char("You sense no trail.\r\n", ch);
return;
}
dir = find_first_step(ch->in_room, vict->in_room);
switch (dir) {
case BFS_ERROR:
send_to_char("Hmm.. something seems to be wrong.\r\n", ch);
break;
case BFS_ALREADY_THERE:
send_to_char("You're already in the same room!!\r\n", ch);
break;
case BFS_NO_PATH:
sprintf(buf, "You can't sense a trail to %s from here.\r\n",
HMHR(vict));
send_to_char(buf, ch);
break;
default:
num = number(0, 101); /* 101% is a complete failure */
if (num < 8)
skill_gain(ch, skill_num);
if (GET_SKILL(ch, SKILL_TRACK) < num)
do {
dir = number(0, NUM_OF_DIRS - 1);
} while (!CAN_GO(ch, dir));
sprintf(buf, "You sense a trail %s from here!\r\n", dirs[dir]);
send_to_char(buf, ch);
break;
}
}
Anyone got any ideas?
--Ziz, NetShamen
This archive was generated by hypermail 2b30 : 12/07/00 PST