/* Do not remove the headers from this file! see /USAGE for more info. */ /* ** locate.c -- intermud user locating ** ** 95-May-15. Deathblade. Created. */ void send_to_all(string type, mixed * message); void send_to_user(string type, string mudname, string username, mixed * message); void return_error(string mudname, string username, string errcode, string errmsg); nomask void do_locate(string username) { send_to_all("locate-req", ({ lower_case(username) })); } protected nomask void rcv_locate_req(string orig_mud, string orig_user, string targ_user, mixed * message) { object p; p = find_body(message[0]); if ( p ) { int idle = 0; if ( p->query_link() ) idle = query_idle(p->query_link()); send_to_user("locate-reply", orig_mud, orig_user, ({ mud_name(), p->query_name(), idle, 0 })); } } protected nomask void rcv_locate_reply(string orig_mud, string orig_user, string targ_user, mixed * message) { object p; p = find_body(targ_user); if ( !p ) { return_error(orig_mud, orig_user, "unk-user", sprintf("Returned locate-reply to unknown user '%s'", targ_user)); } else { string msg; msg = sprintf("[locate] %s has been found on %s", message[1], message[0]); if ( message[3] ) msg += sprintf(" (idle: %s, status is: %s)", convert_time(message[2], 2), message[3]); else msg += sprintf(" (idle: %s)", convert_time(message[2], 2)); tell(p, msg + ".\n", MSG_INDENT); } }