Ack.....I have been tyying a simple little procedure with track to get it
to loop back and work like a hunt command to take a char directly to a
vict....i've tested it a few times but for some reason whenever I try to
"track master" it sends the game into an endless loop and just hangs...until I
kill the process....
Well this is the code...anyone got any suggestions??
ACMD(do_track)
{
ACMD(do_move);
extern struct char_data *character_list;
struct char_data *vict;
int dir;
int f;
one_argument(argument, arg);
if (!*arg) {
send_to_char("Whom are you trying to track?\n\r", ch);
return;
}
if (!(vict = get_char_vis(ch, arg))) {
send_to_char("No-one around by that name.\n\r", ch);
return;
}
while (f == 0) {
dir = find_first_step(ch->in_room, vict->in_room);
switch(dir) {
case BFS_ERROR:
send_to_char("Hmm.. something seems to be wrong.\n\r", ch);
break;
case BFS_ALREADY_THERE:
send_to_char("You have found your target!!\n\r", ch);
f = 1;
break;
case BFS_NO_PATH:
sprintf(buf, "You can't sense a trail to %s from here.\n\r",
HMHR(vict));
send_to_char(buf, ch);
break;
default:
/* if you want to make this into a skill instead of a command,
the next few lines make it give you a random direction if you
fail the random skill roll.
*/
#ifdef TRACK_IS_SKILL
{
int num;
num = number(0, 101);
if (SKILL(ch, SKILL_TRACK) < num)
do { dir = number(0, NUM_OF_DIRS-1); } while (!CAN_GO(ch, dir));
}
#endif
sprintf(buf, "You sense a trail %s from here!\n\r", dirs[dir]);
send_to_char(buf, ch);
do_move(ch, "", dir+1, 0);
f = 0;
sprintf(buf, "\n\rYou're hot on the trail now!\n\r\n\r");
send_to_char(buf, ch);
}
}
}
Thanks to anyone with a helping hand in advance.....
Joey@Mission
This archive was generated by hypermail 2b30 : 12/07/00 PST