#include <lib.h>
inherit LIB_DAEMON;
mixed cmd(string args) {
object ob, room, where;
string last_loc, name;
int result;
if( !args || args == "" ){
ob = this_player();
name = "You";
}
else {
if( !(ob = find_player(convert_name(args))) && !(ob = find_living(args)) )
return "No such being exists anywhere presently.";
name = "They";
}
if(!last_loc = ob->GetProperty("LastLocation")){
write(name+" have nowhere to return to.");
return 1;
}
if(grepp(last_loc,"#")) where = find_object(last_loc);
else where = load_object(last_loc);
if(!where){
write("There is a problem with that location.");
write(name+" remain where "+lower_case(name)+" are.");
return 1;
}
if(environment(ob) == where){
write(name+" are already there.");
return 1;
}
else result = ob->eventMoveLiving(where);
if(ob != this_player()){
if(result){
message("system", "You have been returned to your previous location by " +
(string)this_player()->GetName() + ".", ob);
message("system", "You return " + (string)ob->GetCapName() +
" to their previous location.", this_player());
}
else {
return "Failed to move " + (string)ob->GetCapName() + ".";
}
}
return 1;
}
void help() {
message("help", "Syntax: <return [living]>\n\n"
"Sends someone back, after a trans.\n"
"With no arguments, sends you to your last location.\n\n"
"See also: goto", this_player());
}