⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 help2.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
📖 第 1 页 / 共 3 页
字号:
	} 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 + -