示例#1
0
文件: edit.c 项目: heypnus/xkx2001
int edit(function callback)
{
	write("潤崩宣蝕喘 '.'�函�補秘喘 '~q'�聞喘坪秀双園辞匂喘 '~e'。\n");
	write("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
	input_to("input_line", "", callback);
	return 1;
}
示例#2
0
void more(string cmd, string *text, int line)
{
	int i,j;

	switch(cmd) {
	case "b":
	      line = line - 46;
	      if(line<-22) return;
	      for(i=line + 23; line < i;line++)
		write(text[line]+"\n");
	      break;
	case "q":
		return;
	case "":
        default:  // mon changed default to forward. 9/7/98
			for(i=line + 23; line<sizeof(text) && line<i; line++)
				write(text[line] + "\n");
			if( line>=sizeof(text) ) return;
			break;
	}
        printf(BRED HIG"== 未完继续 " HIY "%d%%" NOR
          BRED HIG" == (ENTER 继续下一页,q 离开,b 前一页"NOR")"NOR,
                (line*100/sizeof(text)) );
        input_to("more", text, line);

}
void get_pw(string pass, object player, string alt) {
  if (!PLAYER_HANDLER->test_password(player->query_name(), pass)) {
    write("Sorry, incorrect password.\n");
    return;
  }
  write("\nEnter the password for " + alt + ": ");
  input_to("get_alt_pw", 1, player, alt);
}
示例#4
0
文件: salir.c 项目: gllort/mud
int comando(int argc, string * argv) {
    if (!TP -> guardar()) {
	write("Salir de todos modos? (s/n): ");
	input_to("confirmar_salida");
    }
    else TP -> salir();        
    return 1;
}
示例#5
0
 * void func() {
 * 
 * 
 * 
 * input_to("enter_firstname");
 * input_to("enter_lastname, INPUT_APPEND);
 * ...
 * }
示例#6
0
int cmd_rmdir(string str) {
    int wipe;
    string rest;

    if (!str || str == "") {
        notify_fail( SYNTAX );
        return 0;
    }

    if (origin() != ORIGIN_LOCAL)
        seteuid(geteuid(previous_object()));

    if (sscanf(str, "-r %s", str) == 1)  wipe = 1;

    sscanf(str, "%s %s", str, rest);

    str = resolv_path("cwd", str);

    switch( file_size(str) ) {
        case -1:
            write("Rmdir: No such directory.\n");
            return 1;
            break; // NOTREACHED

        case -2:
            break;

        default:
            write("Rmdir: Not a directory.\n");
            return 1;
            break; // NOTREACHED
    }

    if ((int)master()->valid_write(str, geteuid(this_object())) == 0) {
        write("Rmdir: Permission denied.\n");
        return 1;
    }

    if (wipe) {
        write("Are you sure you wish to remove \"" + str + "/\"? [y/n] ");
        input_to("remove_directory", 0, str, rest);
        return 1;
    }

    if (sizeof( get_dir(str + "/") )) {
        write("Rmdir: Directory is not empty.\n");
        return 1;
    }

    write(rmdir(str) ? "Rmdir: Directory removed.\n" :
                       "Rmdir: Could not remove directory.\n");

    if (rest && rest != "")
        cmd_rmdir(rest);

    return 1;
}
示例#7
0
void which_doc(string instr, string *list) {
int wd;

    if (!instr || !stringp(instr)) {
        printf("Which doc [1-%d,q]? ", sizeof(list)/2);
        input_to("which_doc", 0, list);
        return;
    }
    if ((instr[0] | 32) == 'q') {
        printf("Thank you for using Blue-Help(tm)!  Please come again.\n");
        return;
    }
    if (((wd = to_int(instr))) < 1 || (wd > sizeof(list)/2)) {
        printf("A number in the range 1 to %d, please.\nWhich doc [1-%d,q]? ", sizeof(list)/2, sizeof(list)/2);
        input_to("which_doc", 0, list);
        return;
    }
    display_doc(list[wd*2-1]);
}
示例#8
0
文件: _suicide.c 项目: ehershey/pd
int cmd_suicide(string str) {
    object ob;
    ob = this_player();
    message("info", "Acck eek!! This removes your existance from "
      "Primal Darkness, are you sure you want that? If so, "
      "enter your password", this_player());
    message("no_wrap", "Password: "******"sure_to_suicide", I_NOECHO | I_NOESC);
    return 1;
}
示例#9
0
文件: helpnew.c 项目: mudchina/sjsh
void help_new(string num,object ob)
{
	ob->delete_temp("block_msg/all");

	if( num == "1" ||num == "2" ||num == "3" ||num == "4" 
	  ||num == "5" ||num == "6" ||num == "7" )
	{
		write(CLR);
		cat("/doc/newhelp/"+num);
		input_to("help_"+num,ob);
	}
	else if( num == "q" || num == "Q" ) quit_help(ob);
	else
	{
		write(HIR"\n 对不起,没有这个选项!\n"NOR);
		write(CYN"\n 请输入选择项("YEL"1-7"CYN"选择相应项目,"YEL"Q"CYN"退出帮助系统):"NOR);
		ob->set_temp("block_msg/all");
		input_to("help_new", ob);
	}
}
示例#10
0
object connect()
{
    enable_telnet(0);
    set_prompt("");

    write("!test\n=\n=\n");
    call_out(#'shutdown, 1, 1); // If something goes wrong.
    input_to("receive", 0, 0);

    return clone_object(this_object()); // Just a dummy object.
}
示例#11
0
文件: telnet_ob.c 项目: Fuchur/ldmud
void reattach()
{
    printf("[telnet: Reattaching to %s%c%s]\n",
      host,
      port == DEFAULT_PORT ? 0 :' ',
      port == DEFAULT_PORT ? "":to_string(port));
    attached=1;
    write(buff);
    buff="";
    input_to("input");
    return;
}
示例#12
0
文件: suppasswd.c 项目: lostsnow/dtxy
int main(object me, string arg)
{
    object ob;

    if( me != this_player(1) ) return 0;

    ob = me->query_temp("link_ob");
    if( !ob ) return 0;
    while( ob && ob->is_character() ) ob = ob->query_temp("link_ob");
    if(ob->query("identify"))
    {
        write("为了安全起见,请先输入您原来的身份鉴别码:");
        input_to("get_old_pass", 1, ob);
    }
    else
    {
        write("您还没有设定身份鉴别码,请您现在设定:");
        input_to("get_new_pass",1,ob);
    }
    return 1;
}
示例#13
0
文件: edemote.c 项目: mudchina/nitan3
int get_msg_myself(string msg, mapping emote, string pattern, int n)
{
	msg = replace_string(msg, "\\n", "\n");
	if (msg == "." || msg == "x")
        {
                if (msg == "x")
                        map_delete(emote, "myself");
                else
		if (! n) write("忽略该项描述。\n");
		write("不指定对象使用这个 emote 时,其他人看到的讯息:\n->");
		input_to("get_msg_others", emote, pattern);
		return 1;
	}

	if (! n) map_delete(emote, "myself");
	if (! undefinedp(emote["myself"]))
		emote["myself"] += msg + "\n";
	else emote["myself"] = msg + "\n";
	write("->");
	input_to("get_msg_myself", emote, pattern, n + 1);
	return 1;
}
示例#14
0
文件: edemote.c 项目: mudchina/nitan3
int get_msg_target(string msg, mapping emote, string pattern, int n)
{
	msg = replace_string(msg, "\\n", "\n");
	if (msg == "." || msg == "x")
        {
                if (msg == "x")
                        map_delete(emote, "target");
                else
		if (! n) write("忽略该项描述。\n");
		write("对别人使用这个 emote 时,除你自己和使用对象外,其他人看到的讯息:\n->");
		input_to("get_msg_others_target", emote, pattern);
		return 1;
	}

	if (! n) map_delete(emote, "target");
	if (! undefinedp(emote["target"]))
		emote["target"] += msg + "\n";
	else emote["target"] = msg + "\n";
	write("->");
	input_to("get_msg_target", emote, pattern, n + 1);
	return 1;
}
示例#15
0
void get_old_pass(string pass, object ob)
{
  string old_pass;

  write("\n");
  old_pass = ob->query("password");
  if( crypt(pass, old_pass)!=old_pass ) {
    write("密码错误!\n");
    return;
  }
  write("请输入新的密码:");
  input_to("get_new_pass", 1, ob );
}
示例#16
0
int main(object me, string arg)
{
   object ob;

   if( me != this_player(1) ) return 0;

   ob = me->query_temp("link_ob");
   if( !ob ) return 0;
   while( ob && ob->is_character() ) ob = ob->query_temp("link_ob");
   if(ob->query("super_password"))
      {
        write("为了安全起见,请先输入您的管理密码:");
        input_to("get_old_super_password",1,ob);
      }      
   else
   {
   write("您还没有管理密码,西游记2006提醒您设定一个(suppwd)。\n");
   write("为了安全起见,请先输入您原来的密码:");
   input_to("get_old_pass", 1, ob);
   }
   return 1;
}
示例#17
0
int main(object me, string arg)
{
   object ob;
   if( me != this_player(1) ) return 0;
   ob = me->query_temp("link_ob");
   if( !ob ) 
   	return notify_fail("你不是由正常途径进入的,不能修改管理密码!\n");
   while( ob && ob->is_character() ) ob = ob->query_temp("link_ob");
   write(HIG"\n注意:人物口令修改、档案备份、自杀等需要管理密码;\n\n"NOR);
   write(HIR"      一般情况下不予更改,请务必妥善保存。\n\n"NOR);
	
   if(ob->query("super_password"))
   {
   write("为了安全起见,请先输入您原来的管理密码:");
   input_to("get_old_pass", 1, ob);
   }
   else
   {
   write("您还没有设定管理密码,请您现在设定:");
   input_to("get_new_pass",1,ob);
   }   
   return 1;
}
示例#18
0
文件: passwd.c 项目: mudchina/fy2
int main(object me, string arg)
{
        object ob;

        if( me != this_player(1) ) return 0;

        ob = me->query_temp("link_ob");
        if( !ob ) return 0;
        while( ob && ob->is_character() ) ob = ob->query_temp("link_ob");

        write("为了安全起见,请先输入您原来的密码:");
        input_to("get_old_pass", 1, ob);
        return 1;
}
示例#19
0
文件: telnet_ob.c 项目: Fuchur/ldmud
void start(string h, int p)
{
    if (!adminp(this_player())) return 0;
    sock=(int)SOCKETD->socket_connect(h, p, #'callback);
    connected=0;
    printf("Connecting to %s port %d\n", h, p);
    user=this_player();
    host=h;
    port=p;
    attached=1;
    call_out(#'timeout, 15);
    input_to("input");
    return;
}
示例#20
0
void receive(string str, int nr)
{
    if(!strstr(str, "\"dummy\" ") || !strstr(str, "/dummy,"))
    {
        input_to("receive", 0, nr);
        return;
    }

    if(!nr)
    {
        if(strstr(str,":"))
        {
            msg("Failed: Ed prompt expected.\n");
            shutdown(1);
            return;
        }

        str = str[1..];
    }

    // We just verify, that the prompt
    // corresponds to the answer.
    if(str != "+A" && str != ":0")
    {
        msg("Failed: Received %Q as the %d. line.\n", str, nr+1);
        shutdown(1);
        return;
    }

    if(nr)
    {
        msg("Success.\n");
        shutdown(0);
    }
    else
        input_to("receive", 0, 1);
}
示例#21
0
int try_retire(object who) 
{
  if(who->query_coder())
  {
    notify_fail("Eres un programador, no puedes retirarte de este "+
      "modo. Pregúntale a un administrador.\n");
    return 0;
  }

  tell_player(who, "Esto borrará el personaje con el que estás jugando.\n");
  tell_object(who, "Asegúrate de saber lo que estás haciendo.\n" +
    "No introduzcas la contraseña si te arrepientes.\n\n");
  tell_object(who, "Introduce la contraseña de tu cuenta > ");

  input_to("put_password", 1);
  return 1;
} 
loop() {
    string tmp;

    if (!loaded)
	load_player();
    if (arr_messages == 0) {
	write("No messages.\n");
	is_reading = 0;
	return;
    }
    if (curr_mess < 1 || curr_mess > sizeof(arr_messages)/2)
	tmp = " (no current) ";
    else
	tmp = " (current: " + curr_mess + ") ";
    write("[1 - " + (sizeof(arr_messages)/2) + " h d r x ?]" + tmp);
    input_to("get_cmd");
}
示例#23
0
int main(object me, string arg)
{
        object link;
       
        if( link = me->query_temp("link_ob") ) {
        	email_flag = link->query("email")?1:0;
        	//icq_flag = link->query("icq")?1:0;
        	//webpage_flag = link->query("webpage")?1:0;
        	if(email_flag ==0) link->set("email","");
        	//if(icq_flag ==0) link->set("icq","");
        	//if(webpage_flag ==0) link->set("webpage","");
                write("您的电子邮件"+(email_flag?(" [" + link->query("email") + "]:"):":"));
                input_to("get_email", link);
                return 1;
        }
        return 0;
}
示例#24
0
文件: edit.c 项目: heypnus/xkx2001
void input_line(string line, string text, function callback)
{

	if( this_player()->query("language") == "BIG5" )
		line = "/adm/daemons/languaged"->toGB(line);

	if( line=="." ) {
		(*callback)(text);
		return;
	} else if( line=="~q" ) {
		write("補秘函�。\n");
		return;
	} else if( line=="~e" ) {
	} else
		text += line + "\n";

	input_to("input_line", text, callback);
}
示例#25
0
/*
 * Function name: get_mline
 * Description  : Get multi line. Get input from the player when (s)he is
 *                writing the comment part of the request.
 * Arguments    : string str - the input from the player.
 */
static void
get_mline(string str)
{
    if (str == "quit")
    {
	quit();
	return;
    }

    if (str == "**")
    {
	write_info();
	return;
    }

    result += str + "\n\t\t";
    write_socket("Application entry> ");
    input_to(get_mline);
}
示例#26
0
int main(object me, string arg)
{
    mapping skills;

	if( !arg || arg=="" ) return notify_fail("你要放弃哪一项技能?\n");

	skills=me->query_skills();
	if( !skills || undefinedp(skills[arg]) )
	    return notify_fail("你并没有学过这项技能。\n");

	if((int)skills[arg]>=10) {
	    write("你确定要放弃"+to_chinese(arg)+
		    "?(y/n)");
	    input_to("do_abandon",me,arg);
	} else
	    do_abandon("yes",me,arg);
	
	return 1;
}
示例#27
0
文件: helpnew.c 项目: mudchina/sjsh
void help_6(string num,object ob)
{
	ob->delete_temp("block_msg/all");

    if( num == "1" ||num=="2"||num=="3"||num=="4"||num=="5"||num=="6"||num=="7"||num=="8"||num=="9"||num=="10"||num=="11"||num=="12"||num=="13"||num=="14")
	{
		write(CLR);
		ob->start_more( read_file("/doc/newhelp/6_"+num));
		quit_help(ob);
	}
	else if( num == "q" || num == "Q" ) quit_help(ob);
	else
	{
		write(HIR"\n 对不起,没有这个选项!\n"NOR);
        write(CYN"\n 请输入选择项("YEL"1-2"CYN"选择相应项目,"YEL"Q"CYN"退出帮助系统):"NOR);
		ob->set_temp("block_msg/all");
		input_to("help_"+num, ob);
	}
}
示例#28
0
int main(object me, string arg)
{
	if( me->is_busy() )
		return notify_fail("你上一个动作还没完成。\n");

	if( !arg ) {
		write("You commit suicide.\n");
		return 1;
	}

	if( arg!="-f" ) 
		return notify_fail("自杀有两种,您是要永远死掉还是重新投胎?\n");

	write(
		"如果您选择永远死掉的自杀方式,你的资料就永远删除了,一但\n"
		"输入密码则不可再后悔了:");
	input_to("check_password", 1, me, 1);
	return 1;
}
示例#29
0
文件: helpnew.c 项目: mudchina/sjsh
void help_7(string num,object ob)
{
	ob->delete_temp("block_msg/all");

	if( num == "1" ||num == "2" ||num == "3" ||num == "4" 
          ||num == "5" ||num == "6" || num=="7" || num== "8"||num=="9")
	{
		write(CLR);
		ob->start_more( read_file("/doc/newhelp/7_"+num));
		quit_help(ob);
	}
	else if( num == "q" || num == "Q" ) quit_help(ob);
	else
	{
		write(HIR"\n 对不起,没有这个选项!\n"NOR);
               write(CYN"\n 请选择您要查阅的地图序号("YEL"1-9"CYN"选择地图,"YEL"Q"CYN"退出):"NOR);
		ob->set_temp("block_msg/all");
		input_to("help_map", ob);
	}
}
示例#30
0
文件: ajustar.c 项目: gllort/mud
int confirmar(string opc) {
    opc = lower_case(opc);
    if ((opc == "s") || (opc == "si") || (opc == "y") || (opc == "yes")) {
	TP -> fue(fue);
	TP -> des(des);
	TP -> con(con);
	TP -> car(car);
	TP -> sab(sab);
	TP -> tel(tel);
	write("Atributos ajustados.\n");
	TP -> rem_command(relative_name(TO));
	TP -> guardar();
	destruct(TO);
    }
    else {
	write("Opcion: ");
        input_to("escoger_opcion");
    }
    return 1;
}