// File : /cmds/std/_track.c
// Creator : Watcher@TMI (02/01/93)
//
// This command allows one user to trace another user or mobile
// based upon the tracker's "tracking" skill.
#include <mudlib.h>
inherit DAEMON ;
#define SYNTAX "Syntax: track [target | off]\n"
int cmd_track(string str) {
object target, trackee;
notify_fail( SYNTAX );
// Check to see if user is presently tracking anyone.
trackee = (object)this_player()->query_temp("track");
if(!str || str == "") {
if(!trackee) write("You are not presently tracking anyone.\n");
else write("You are presently tracking " +
(string)trackee->query("cap_name") + ".\n");
return 0; }
// If request stop tracking, clear tracking variable.
if(str == "off" || str == "stop") {
if(!trackee) write("You are not presently tracking anyone.\n");
else {
write("You stop tracking " +
(string)trackee->query("cap_name") + ".\n");
say((string)this_player()->query("cap_name") + " stops tracking.\n",
({ this_player() }));
}
this_player()->delete_temp("track");
return 1; }
// Check to see if the user can actually see.
if(!this_player()->query("vision")) {
write("Track what? You can't see a thing!\n");
return 1; }
// Try to locate requested object in user's environment.
if (environment(this_player()))
target = present( lower_case(str), environment(this_player()) );
if(!target) {
write("There is no such living object here.\n");
return 1; }
// You can't track yourself ... would be rather silly. :)
if(target == this_player()) {
write("You cannot track yourself.\n");
return 1; }
// Tracking a rock would be even sillier. <grin>
if(!living(target)) {
write("Non living objects are not likely to move.\n");
return 1; }
this_player()->set_temp("track", target);
write("You begin to track " + (string)target->query("cap_name") + ".\n");
say((string)this_player()->query("cap_name") + " begins to track " +
(string)target->query("cap_name") + ".\n",
({ this_player(), target }));
tell_object(target, (string)this_player()->query("cap_name") +
" begins to track you.\n");
return 1; }
int help() {
write( SYNTAX + "\n" +
"This command allows you to attempt to track and follow another\n" +
"living object. The success of the tracking attempt depends on\n" +
"your tracking skill, which increases with practice. You can stop\n" +
"tracking by using \"off\" as an argument.\n");
return 1; }