#include <lib.h>
inherit LIB_DAEMON;
mixed cmd(string args) {
object ob, room;
string last_loc;
if( !args || args == "" ) {
if(!last_loc = this_player()->GetProperty("LastLocation")){
write("You have nowhere to return to.");
return 1;
}
else if(!load_object(last_loc)){
write("There is a problem with that location.");
write("You remain where you are.");
return 1;
}
else this_player()->eventMoveLiving(load_object(last_loc));
return 1;
}
if( !(ob = find_player(convert_name(args))) && !(ob = find_living(args)) )
return "No such being exists anywhere presently.";
if( !room = load_object(ob->GetProperty("ReturnSite"))){
write("That person has nowhere to return.");
return 1;
}
if(room == environment(ob)){
write("That person is already there.");
return 1;
}
ob->SetProperty("ReturnSite","");
if( !((int)ob->eventMoveLiving(room) ))
return "Failed to move " + (string)ob->GetCapName() + ".";
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());
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());
}