track question

From: Mud Admin (empire@www.cedarnet.com)
Date: 07/14/96


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