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

📄 zzzjob.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
#include <ansi.h>mixed names = ({        ({        "朱雀外门","青龙外门","白虎外门","玄武外门","天安门",        "扬州武馆","福威镖局","玄妙观","灵隐寺","泉州南门",        "灵州南门","诸葛亮殿","烟雨楼","南阳城","佛山南门",                        "蛇骨塔","长安乐坊","衡阳西街","喜州城","葛鲁城",         "北疆小镇","山海关","老龙头","长白天池","天山脚下",        "丽春院","涌泉寺","听雨轩","五老峰","紫金城",        "松风观","终南山脚","抱子岩","白马潭","升仙坊",                        "嘉应门","悬空寺","峻极禅院","侠义厅","萧家桥",         }),        ({         "宋兵","流氓","偏将","裨将","佐将","小贩","男孩","郭芙","老先生",		 "小孩","书店老板","武三通","穷汉","铁匠","朱子柳","店小二","宋兵",		 "静玄师太","静照师太","宋远桥","莫声谷","陆乘风","韩宝驹","黄药师","余沧海",		 "殷野王","邓百川","尹志平","小龙女","刘承风","欧阳锋","白衣少女","九翼道人",		 "阿紫","玉磬子","玉音子","岳夫人","岳不群","令狐冲","玄苦大师","清善比丘",		 "独臂神尼","庄夫人","双儿","吴六奇","木婉清","萧远山","李沅芷","向问天",		 "曲洋","黑白子","程瑶迦","程瑶迦","沐剑屏","天柏道人","本尘","本观",		 "天山童姥","韦一笑","谢逊","澄坚","陆乘风","张翠山","宋青书","玄贞道长",		 "石破天","苏星河","慕容复","朱丹臣","简长老","封不平",		 "林震南","史青山","霍先生","钟四嫂","郑镖头","范一飞",		 "陆冠英","李沅芷","刘菁","曲洋","袁紫衣","丹青生",		 "刘国轩","乔三槐","天柏道人","程英","甘宝宝","刘承风",		 "水岱","卓玛","刀白凤","成不忧","曲灵风","崔员外",		 "康亲王","海公公","神照上人","乌夷老祭司","李可秀","张召重",		 "彭连虎","钱青健","南海鳄神","余沧海","张淡月","左冷禅",		 "星宿派号手","星宿派鼓手","采花子","丁当","进喜儿","吴青烈",		 "马青雄","无量剑弟子","神农帮弟子","贵公子","舞蛇人","波斯商人",		 "阿拉木罕","苏州少女","养蚕女","金花","贡唐仓国师","阿紫",        }),        });// names need modifystring ask_job(){   object  ob, me,gift,*team;  int exp,position;  string target,myfam,obfam,job_type;  ob=this_player();  me=this_object();  exp=ob->query("combat_exp"); /* myfam = me->query("family/family_name"); //同一门派的才给他job,把这四行去  obfam = ob->query("family/family_name"); //掉后就没有门派限制  if(!myfam ||!obfam||myfam != obfam)   return "你不是本门弟子,我不能给你工作!";  */  if (interactive(ob) && ob->query_temp("zzz_job_target")      && (int)ob->query_condition("zzz_mission"))         return "你上一次的任务还没完成!";  if (interactive(ob) && !ob->query_temp("zzz_job_target")      && (int)ob->query_condition("zzz_mission"))         return "你办事不力,先等会吧。";       if (interactive(ob) &&       (int)ob->query_condition("zzz_busy"))         return "现在我可没有给你的任务,等会再来吧。\n";     		if(exp<=100000)         return "你的武功太差了,等练强了再来吧。\n";    job_type="保护";   	ob->set_temp("zzz_job_type",job_type);        	if(job_type=="保护")	{target = names[1][random(sizeof(names[1]))];    ob->apply_condition("zzz_mission",30);    	ob->set_temp("zzz_job_target", target);    message_vision(CYN"$N点了点头,对$n说道:蒙古人收买了一批武林败类,好象要暗杀"+target+",你去保护他一下。\n"NOR , me,ob);    call_out("begin_kill",30,ob,target);	return "多加小心。";	}}int accept_object(object who, object ob,object me){        if ( ob->query("id") != "corpse") {                command("say 你给我这个干吗?");                return 0;        }        if ( !who->query_temp("zzz_job_target") ) {                command("say 好啊!不过你得先申请任务。");                return 0;        }/*      if( who->query_temp("zzz_job_type")=="杀")		if ( ob->query("victim_name")!= who->query_temp("zzz_job_target")			||ob->query("victim_user")||who->query_temp("zzz_given") )		{       command("shake");                command("say 你杀错人了。");                return 0;        }*/        if( who->query_temp("zzz_job_type")=="保护")		if (ob->query_temp("must_killby")!= who->query("id")			||ob->query("victim_user")||who->query_temp("zzz_given") )		{       command("shake");                command("say 你杀错人了。");                return 0;        }   /*      if ( ob->query("kill_by") != who) {                command("say 这个任务似乎不是你自己完成的吧?");                return 0;        }*/        who->set_temp("zzz_given",1);        call_out("destroying", 1, ob);        call_out("ok", 1, who);        return 1;}void ok(object who){        int exp,pot,i;        if (!who) return;        command("pat" + who->query("id"));        command("say 干的好,你办事干净利落,将来必成大器!");        if(!who->query("zzz_job_count"))		who->set("zzz_job_count",1);        else		who->add("zzz_job_count",1);        		i=who->query("zzz_job_count");		i/=30;		exp=200+random(20)+i;        if(who->query_temp("zzz_job_super"))        {exp+=100;		 who->delete_temp("zzz_job_super");		}		pot=exp/3+random(10);		//i=3+random(3)+exp/200;				who->add("potential",pot);        who->add("combat_exp",exp);        who->delete_temp("zzz_job_target");        who->delete_temp("zzz_given");		who->delete_temp("zzz_job_type");		who->clear_condition("zzz_mission");        who->apply_condition("zzz_busy",3+random(6)+exp/50);      				tell_object(who,HIW"你被奖励了:\n" +                        chinese_number(exp) + "点实战经验\n" +                       chinese_number(pot) + "点潜能\n"+                       NOR);                return;}void destroying(object obj){        destruct(obj);        return;}string ask_fangqi(){         object me;         me = this_player();         if(me->query_condition("zzz_mission")<=1)         return "你没有领任务,跑这里瞎嚷嚷什麽?";         me->clear_condition("zzz_mission");         me->add("combat_exp",-100);if (me->query("potential") >100){                me->add("potential",-80);}//         me->apply_condition("zzz_busy",4+random(10));         me->delete_temp("zzz_job_target");		 me->delete_temp("zzz_job_type");         return "没关系,下次继续努力 。";}void begin_kill(object me,string target){  object obj,*ob;   int i,flag=0;   if(!me)   return;   if(!me->query_condition("zzz_mission"))   return;   if (me->query_temp("zzz_job_type")!="保护"||me->query_temp("zzz_job_target")!=target)   return;   ob = all_inventory(environment(me));   for(i=0; i<sizeof(ob); i++)   {   if( !living(ob[i])||userp(ob[i])||ob[i]==me ) continue;   if(ob[i]->query("name")==target)   {flag=1;	break;   }   }   if (flag==0)   { call_out("begin_kill",30,me,target);     return;	      } 	obj=new(__DIR__"killer");	obj->move(environment(me));    if(random(10)>7||me->query("id")=="zzz")	{obj->do_copy(me,1);	 obj->set("title",HIR"武林败类"NOR);	 me->set_temp("zzz_job_super",1);	}	else	obj->do_copy(me,0);	obj->set_temp("must_killby",me->query("id"));	message_vision(GRN"\n$N对着"+target+"发出一阵阴笑声,令"+target+"全身上下的寒毛根根竖起,不寒而栗。\n"NOR,obj); 	message_vision(HIY"$N对$n喝道:大胆狂徒,竟敢在这撒野!!\n"NOR,me,obj);        message_vision(HIY"$N阴阴一笑:要你多管闲事,去死吧!!\n"NOR,obj);    obj->kill_ob(me);}string ask_gonglao(object who){  object me;  int i;             me = this_player();  if(!me->query("zzz_job_count"))  i=0;  else   i =(int)me->query("zzz_job_count");   message_vision(CYN"$N对$n说道:你已经完成了" + chinese_number(i) + "次任务。\n"NOR,who,me);  return "继续努力吧!";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -