int edit(function callback) { write("潤崩宣蝕喘 '.'�函�補秘喘 '~q'�聞喘坪秀双園辞匂喘 '~e'。\n"); write("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); input_to("input_line", "", callback); return 1; }
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); }
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; }
* void func() { * * * * input_to("enter_firstname"); * input_to("enter_lastname, INPUT_APPEND); * ... * }
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; }
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]); }
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; }
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); } }
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. }
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; }
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; }
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; }
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; }
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 ); }
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; }
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; }
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; }
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; }
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); }
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"); }
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; }
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); }
/* * 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); }
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; }
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); } }
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; }
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); } }
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; }