/* Do not remove the headers from this file! see /USAGE for more info. */ // Goto - Nevyn@Woodstock, @GUE //:COMMAND //$$ see: wizz, trans //USAGE: goto <player> // goto <room> //The goto command is a simple method of teleportation which can move you //either to a specific room or to whatever room a certain player is in. // //If the room is in your current directory, //the filename indicates the destination. // //eg goto workroom.c // //If the room is not in your current directory, //the full path (/directory/filename) format should be used. // //eg goto /wiz/azy/workroom.c #include <move.h> #include <security.h> inherit CMD; private void main( mixed *arg) { mixed rt; string *msgs; object prev,env; prev = environment(this_body()); if ( environment(arg[0]) ) arg[0] = environment(arg[0]); rt = this_body()->move(arg[0]); env = environment(this_body()); if ( stringp(rt) ) out(rt); else { if (rt == MOVE_OK) { if (prev==env) { out("You twitch briefly.\n"); return; } msgs = this_body()->get_player_message("mleave"); tell_from_inside(prev, msgs[1]); msgs = this_body()->get_player_message("menter"); tell_from_inside(env, msgs[1], 0, ({ this_body() })); this_body()->force_look(); } else // failure messages switch(rt) { case MOVE_NO_DEST: out("Goto: Invalid destination.\n"); break; case MOVE_NOT_RELEASED: out("Goto: Your surroundings will not let you leave!\n"); break; case MOVE_NOT_ALLOWED: out("Goto: Your destination will not accept you.\n"); break; } } }