📄 help2.c
字号:
} else { line=replace_string(line,";",";\n"); text += line + "\n"; } write(HIG"│"NOR); input_to("input_lines", text, callback);}void done_post(mapping note,object ob,string text){ mapping *notes; if(strlen(text)<20) { write(HIC"本文被认为是灌水文章,不予发表。\n"NOR); display(ob); return; } text=replace_string(text,";","\n"); note["msg"] = text; notes = ob->query("notes"); if( !pointerp(notes) || !sizeof(notes) ) notes = ({ note }); else notes += ({ note }); ob->set("notes", notes); write("留言完毕。\n"); ob->save(); display(ob); return;} int do_post(string arg,object ob){ mapping note; if(!arg||arg=="") { write(HIY"\n请指定一个标题:"NOR"(“Q”键取消)"); input_to((:do_post:),ob); return 1; } if(arg=="q"||arg=="Q") { display(ob); return 1; } note = allocate_mapping(5); note["title"] = arg; note["author"] = this_player()->name(1); note["authorid"] =this_player()->query("id"); note["time"] = time(); edi((: done_post,note,ob:)); return 1;}void do_discard(object ob){ mapping note,*notes; int num; string memer=this_player()->query_temp("memer"); num=this_player()->query(memer)+1; notes = ob->query("notes"); if( !arrayp(notes) ||!sizeof(notes)||num < 1 || num > sizeof(notes)) { write("没有这张留言。\n"); return; } num--; if( notes[num]["authorid"] != (string) this_player(1)->query("id") && wiz_level(this_player(1)) < wiz_level(WIZLEVEL)) { write("这个留言不是你写的。\n"); return; } if(num == 0) notes = notes[num+1..sizeof(notes)-1]; else notes = notes[0..num-1] + notes[num+1..sizeof(notes)-1]; ob->set("notes", notes); ob->save(); write("删除第 " + (num+1) + " 号留言....Ok。\n"); return;}varargs void view2(int line,string *text,object ob,int i){ int w=line; if(i) w=w+17; write( "├—————————————————————————————————————┥\n"NOR); printf("│ 总行数:"HIR+"%5d "NOR+"所在行数:"HIR+"%5d "+HIC"(T"NOR"x"HIC")"NOR"翻到x行 "HIC"(U)"NOR"向上 " HIC"(D)"NOR"向下 "HIC"(R)"NOR"回文 "HIC"(B)"NOR"返回 │\n",sizeof(text),w); write( "└—————————————————————————————————————┘\n"NOR); write(YEL"您的选择:"NOR); input_to((:do_more:),text,line,ob); return;}void do_more(string cmd,string *text,int line,object ob){ int i,j,num; mapping *notes; string t=this_player()->query_temp("select"); string memer=this_player()->query_temp("memer"); if(!ob) ob=this_object(); if(cmd[0]=='t') { j=atoi(cmd[1..<0]); if(j) { line=j; cmd="u"; } } else if(j=atoi(cmd)) { line=j; cmd="u"; } switch(cmd) { case "d": if(line+17>=sizeof(text)) line=sizeof(text)-17; if(line<0) line=0; if(line<sizeof(text)) { write("┌—————————————————————————————————————┐\n"); for(i=line + 17; line<sizeof(text) && line<i; line++) write("│"+text[line] + "\n"); if( line>=sizeof(text) ) write("├—————————————— 全 文 完 —————————————————┥\n"); } view2(line,text,ob); return; break; case "u": if(line>=sizeof(text)) line=sizeof(text); line = line - 17; if(line<0) line=0; write("┌—————————————————————————————————————┐\n"); for(i=line + 17;line<sizeof(text)&&line < i;line++) write("│"+text[line]+"\n"); if( line>=sizeof(text) ) write("├—————————————— 全 文 完 —————————————————┥\n"); view2(line-17,text,ob,1); return; break; case "b": return display(ob); break; case "r": if(t=="post") { num=this_player()->query(memer); notes=ob->query("notes"); do_post("[回文]"+notes[num]["title"],ob); } return; } view2(line,text,ob); return;}int register(){ object me; me = this_player(); if(!me->query("register")) { write(CLR"\n"); write(HIW"【使用者设定】 "HIY"【"+MUD_NAME+"注册单】\n"NOR); write("\n"); write(YEL"目前选择:\n\n"NOR); write(HIW" 您的代号 : "NOR); input_to((:a:),this_player()); return 1; } write("你已经填写过注册单。\n"); input_to("confirm_u_choice",this_player()); return 1;}private void a(string arg, string register){ register = "代号 : "+arg+"\n"; this_player()->add_temp("register",register); write(HIW" 您的昵称 : "NOR); input_to((:b:),this_player(),register);}private void b(string arg, string register){ register = "昵称 : "+arg+"\n"; this_player()->add_temp("register",register); write(HIW" 真实姓名 : "NOR); input_to((:c:),this_player());}private void c(string arg, string register){ register = "姓名 : "+arg+"\n"; this_player()->add_temp("register",register); write(HIW" 联系地址 : "NOR); input_to((:d:),this_player());}private void d(string arg, string register){ register = "联系地址 : "+arg+"\n"; this_player()->add_temp("register",register); write(HIW" 工作单位/学校: "NOR); input_to((:e:),this_player());}private void e(string arg, string register){ register = "工作单位/学校: "+arg+"\n"; this_player()->add_temp("register",register); write(HIW" 电子信箱: "NOR); input_to((:f:),this_player());}private void f(string arg, string register){ register = "电子信箱: "+arg+"\n"; this_player()->add_temp("register",register); write(HIW" 联系电话: "NOR); input_to((:g:),this_player());}private void g(string arg, string register){ register = "联系电话: "+arg+"\n"; this_player()->add_temp("register",register); write(HIW"\n\n\n\n\n\n以上资料是否正确(Y/N)?(Q)取消注册 [N]:"NOR); input_to((:y:),this_player());}private void y(string arg, string register) { string table; if(arg=="") { this_player()->delete_temp("register"); register(); return ; } switch(arg[0]){ case 'n': this_player()->delete_temp("register"); register(); return ; break; case 'y': this_player()->set("register",1); table = this_player()->query_temp("register"); this_player()->delete_temp("register"); write_file(REGISTER+this_player()->query("id"),table,1); write("◇设置一切正确。\n"); input_to("confirm_u_choice",this_player()); return; break; case 'q': this_player()->delete_temp("register"); u_display(); write(YEL"\r请输入您的选择:"NOR); input_to((:confirm_u_choice:),this_player()); return ; break; default: this_player()->delete_temp("register"); register(); return ; break; } return ;}int pager(){ object me; me = this_player(); if(me->query_temp("call_on")) { write("打开 Pager 频道\n"); me->delete_temp("call_on"); } else { write("关闭 Pager 频道\n"); me->set_temp("call_on",1); } return 1;}int cloak(){ object me; me = this_player(); if(!wizardp(me)) { u_display(); write(YEL"\r请输入您的选择:"NOR); input_to((:confirm_u_choice:),this_player()); return 1; } if(me->query("env/invisibility")) { write("我要重现江湖...\n"); me->delete("env/invisibility"); } else { write("哈哈!我隐形起来了。\n"); me->set("env/invisibility",5); } return 1;}int lock(){ object me,ob; me = this_player(); ob = me->query_temp("link_ob"); write(HIW"▲ 请输入密码,以解除萤幕锁定:"NOR); input_to("get_old_pass", 1, ob); return 1;}private void confirm_u_choice(string arg){ this_player()->set_temp("help_u",1); if(arg=="") { u_display(); write(YEL "\r请重新输入您的选择:"NOR); input_to((:confirm_u_choice:),this_player()); return ; } switch(arg[0]){ case 'r': register(); return ; break; case 'p': pager(); write(YEL "\r请重新输入您的选择:"NOR); input_to((:confirm_u_choice:),this_player()); return ; break; case 'c': cloak(); write(YEL "\r请重新输入您的选择:"NOR); input_to((:confirm_u_choice:),this_player()); return ; break; case 'l': lock(); return ; break; case 'f': case 'h': case 'g': m_display(); write(YEL "\r请输入您的选择:"NOR); this_player()->delete_temp("help_u"); input_to((:confirm_main_choice:),this_player()); return ; break; default: u_display(); write(YEL"\r请输入您的选择:"NOR); input_to((:confirm_u_choice:),this_player()); return ; } return;}void u_display(){ view_main(); if (wizardp(this_player())) write(" "HIC"(C)"NOR"loak 隐身术\n"); write(" "HIC"(L)"NOR"ockScreen 锁定萤幕\n"); write(" "HIC"(R)"NOR"egister 填写《注册申请单》\n"); write(" "HIC"(P)"NOR"ager 切换呼叫器\n"); write(" "HIC"(G)"NOR"return 返回主菜单\n"); view_main_1();}void get_old_pass(string pass, object ob){ string old_pass; old_pass = ob->query("password"); if( crypt(pass, old_pass)!=old_pass ) { lock(); return ; } u_display(); write(YEL"\r请输入您的选择:"NOR); input_to((:confirm_u_choice:),this_player()); return ;} string find_file(){ string str=this_player()->query_temp("select"); str=DIR+str+".h"; return str;}void getname1(string arg){ int k; if(!arg||arg=="") { write(HIC"请输入链接名称:"NOR); input_to("getname1"); return; } if(arg=="q"||arg=="Q") { display(); return; } k=strlen(arg); if(k<2||k>16) { write(HIG"链接名称字数必须在2到16个字元之间!\n"NOR); write(HIC"请输入链接名称:"NOR); input_to("getname1"); return; } write(HIG"请输入链接档案:"NOR); input_to("getname2",arg); return;}void getname2(string str,string arg){ string file=read_file(find_file()),msg,t; string *text,*w; if(str=="q"||str=="Q") { display(); return; } if(file_size(str)<0) { write(HIY"没有这个档案!\n"NOR); write(HIG"请输入链接档案:"NOR); input_to("getname2",arg); return; } if(!file) file=""; file+=arg+"==@=="+str+"\n"; text=explode(file,"\n"); file=""; while(sizeof(text)) { msg=text[0]; text-=({msg}); w=explode(msg,"==@=="); t=replace_string(find_file(),".h",""); t=t+"/"+w[1]+".h"; if(file_size(w[1])<0&&file_size(t)<0) continue; file+=msg+"\n"; } write_file(find_file(),file,1); write("OK!\n"); display(); return;}void view7(string arg){ int k; string file=read_file(find_file()),*text; if(!arg) { write(HIC"请选择要修改的选项:(Q键取消)"NOR); input_to("view7"); return; } if(arg=="q"||arg=="Q") { display(); return; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -