/* /cmds/creator/home.c * from the Dead Souls LPC Library * command to take a creator home * created by Descartes of Borg long ago (modified 950331) */ #include <lib.h> #include <objects.h> #include <daemons.h> inherit LIB_DAEMON; mixed GoHome(string str) { object ob, prev; string who; prev = environment(this_player()); if( !str || str == "" || !creatorp(this_player())) who =(string)this_player()->GetKeyName(); else who = lower_case(str); if(!user_exists(who)) return "There's no such user."; str = user_path(who); if(!directory_exists(str)) return "That person has no home dir."; str = user_path(who)+"workroom.c"; if(!file_exists(str)) return capitalize(who)+" has no active workroom."; ob = load_object(str); if(!ob){ if(who != this_player()->GetKeyName()) return "\n"+capitalize(who)+"'s workroom is broken."; return "\nYour workroom is broken."; } if(ob == prev) return "You twitch."; if(who == this_player()->GetKeyName()) if( (int)this_player()->eventMoveLiving(ob,"$N goes home.","$N returns home.") ) { return 1; } if(who != this_player()->GetKeyName()) if( (int)this_player()->eventMoveLiving(ob,"$N leaves to visit "+capitalize(who)+".", "$N comes in for a visit.") ) { return 1; } return "You stay where you are."; } mixed cmd(string str){ return unguarded( (: GoHome($(str)) :) ); } void help() { message("help", "Syntax: <home>\n <home [creator]>\n\n" "Without arguments, this command will take you to your workroom. " "With arguments, it takes you to the workroom of the person " "you specify. Non-creator builders can only go to their own " "workroom.\n\n" "See also: goto, trans", this_player()); }