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

📄 hetaichong.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// hetaichong.c (kunlun)#include <ansi.h>inherit NPC;inherit F_MASTER;string ask_me();string ask_ding();string ask_su();int ask_job();int ask_fail();void create(){	set_name("何太冲", ({ "he taichong", "he" }));	set("title", "昆仑派掌门");	set("nickname", "铁琴先生");	set("long",		"他就是昆仑派掌门、名扬江湖的铁琴先生何太冲。\n"		"虽然年纪已大,但仍然看得出他年轻时英俊潇洒。\n");	set("gender", "男性");	set("age", 40);	set("attitude", "heroism");	set("shen_type", -1);	set("str", 55);	set("int", 55);	set("con", 55);	set("dex", 55);	set("max_qi", 22500);	set("max_jing", 22000);	set("neili", 43000);	set("max_neili", 43000);	set("jiali", 50);	set("combat_exp", 5200000);	set("score", 40000);	set_skill("taiji-shengong", 80);	set_skill("art", 100);	set_skill("literate", 200);	set_skill("force", 200);	set_skill("xuantian-wuji", 260);	set_skill("dodge", 240);	set_skill("taxue-wuhen", 260);	set_skill("strike", 180);	set_skill("kunlun-zhang", 280);	set_skill("parry", 165);	set_skill("sword", 175);	set_skill("liangyi-jian", 265);	set_skill("xunlei-jian", 265);	set_skill("mantian-huayu", 265);	set_skill("throwing", 160);	set_skill("cuff", 155);	set_skill("zhentian-quan", 260);set_skill("qixian-jian", 180);	map_skill("throwing", "mantian-huayu");	map_skill("force", "xuantian-wuji");	map_skill("dodge", "taxue-wuhen");	map_skill("cuff", "zhentian-quan");	map_skill("parry", "liangyi-jian");	map_skill("sword", "liangyi-jian");	prepare_skill("leg", "chuanyun-tui");	prepare_skill("strike", "kunlun-zhang");        set("chat_chance_combat", 90);        set("chat_msg_combat", ({                (: perform_action, "strike.diezhang" :),                (: command("unwield qin") :),                (: command("wield qin") :),                (: perform_action, "sword.jianqin" :),                (: perform_action, "sword.ren" :),                (: perform_action, "sword.feixue" :),                (: perform_action, "sword.juedi" :),                (: perform_action, "parry.tianwaifeiyin" :),        }) );	create_family("昆仑派", 4, "掌门人");	set("class", "taoist");	set("inquiry",		([			"心法" : (: ask_me :),			"苏习之" : (: ask_su :),			"追杀" : (: ask_ding :),		                "任务" : (: ask_job() :),                "失败" : (: ask_fail() :),                "job" : (: ask_job() :),                "fail" : (: ask_fail() :),		]));			set("book_count", 1);	set("ding_count", 18);	setup();	carry_object("/d/kunlun/obj/sword.c")->wield();	carry_object("/d/kunlun/obj/pao2.c")->wear();}void attempt_apprentice(object ob){/*	 if((int)ob->query("shen")<0){	 command("say 我昆仑乃是堂堂名门正派,"+RANK_D->query_respect(ob)+				"的品德实在令人怀疑。");	 command("say "+RANK_D->query_respect(ob)+				"还是先回去做点善事吧。");	 return;	 }*/	 if(ob->query("gender")=="女性"){	 command("fear");	 command("say "+RANK_D->query_respect(ob)+				"老夫可不敢收女弟子,你去找我夫人去吧。");	 return;	 }          if(ob->query("appren_hezudao", 1) == 1) {	 command("say 前辈怎敢开这等玩笑,真是折杀做晚辈的了。");	 return;	 }    	if(ob->query_skill("xuantian-wuji",1)<100){	 command("hmm");	 command("say "+RANK_D->query_respect(ob)+				"你的玄天无极功太差,我可不想收你。");	 return;	 }	 command("say 好吧,我便收下你,只是你投入我门下之后,须得安心学艺。");	 command("recruit " + ob->query("id"));}string ask_me(){		  mapping fam;		  object ob;		  if (!(fam = this_player()->query("family"))		 || fam["family_name"] != "昆仑派")					 return RANK_D->query_respect(this_player()) +					 "与本派素无来往,不知此话从何谈起?";		  if (query("book_count") < 1)					 return "你来晚了,本派心经已被你师兄拿走了。";//          if(ob->query("gender")!="女性"||ob->query("per")<23)//        	     	 return "本派心经不在我这里。";	 	  add("book_count", -1);		  ob = new("/d/kunlun/obj/force-book.c");		  ob->move(this_player());		  return "我这里有本「心法」,是有关吐呐吸气的,你拿回去好好钻研,有空多来找我哦";}string ask_ding(){		  mapping fam;		  object ob;		  if (!(fam = this_player()->query("family"))		 || fam["family_name"] != "昆仑派")					 return RANK_D->query_respect(this_player()) +					 "与本派素无来往,不知此话从何谈起?";				 if(this_player()->query_skill("mantian-huayu",1) < 60)           return "你如此自愿为师门效力,不枉我平时一番栽培,速速去吧";		   	if ( present("sangmen ding", this_player()) )		return RANK_D->query_respect(this_player()) + 		"你现在身上不是有吗,怎么又来要了?";		  if (query("ding_count") < 1)					 return "丧门钉已给了我派去追杀苏习之的人,你就不用去了。";		  add("ding_count", -1);		  this_player()->set_temp("kunlun/ding",1);		  ob = new("/d/kunlun/obj/sangmending.c");		  ob->move(this_player());		  return "你如此自愿为师门效力,不枉我平时一番栽培,这把丧门钉你就拿去吧。";}string ask_su(){		  mapping fam;		  object ob;		  if (!(fam = this_player()->query("family"))		 || fam["family_name"] != "昆仑派")					 return RANK_D->query_respect(this_player()) +					 "与本派素无来往,不知此话从何谈起?";				 if(this_player()->query_temp("kunlun/ding",1))           return "你还待在这里做什么,还不快去追苏习之";		  return "苏习之这家伙竟然敢偷看本派的两仪神剑,我派弟子必当将其追杀。";}int ask_job(){        object me = this_player();        object ob;        mapping quest;        mapping skl;         string *sname, place;                int i, skill = 0;        quest = (__DIR__"lagjob")->query_quest();        skl = me->query_skills();        if ( !skl ) {                tell_object(me, "你去学一些本事先吧!\n");                return 1;                }        sname  = sort_array( keys(skl), (: strcmp :) );        for(i=0; i<sizeof(skl); i++)                 if (skl[sname[i]] >= skill && sname[i] != "literate" && sname[i] != "taoism")                        skill = skl[sname[i]];                                if (skill < 80) skill = 80;        if( me->query("family/family_name") != "昆仑派")           {                      message_vision("$N对着$n大喝一声:本派弟子才能做任务。你是哪来的奸细?\n", this_object(), me);                      return 1;            }           if (me->query("combat_exp") < 100000) {                command("say " + RANK_D->query_respect(me) + "你还是练高经验再来吧");                return 1;}   if ((int)me->query_condition("guojob2_busy"))            {                      message_vision("何太冲对着$N摇了摇头说:你等会再来!\n", me);                      return 1;            }        if ((int)me->query_condition("menpai_busy"))              {                      message_vision("$N对着$n摇了摇头说:你等会再来!\n", this_object(), me);                      return 1;            }                    if (me->query("potential") < 200 || me->query("combat_exp") < 300) {                command("say 你连本钱都没有,我怎么放心要你去找治我爱妾病的药?");                return 1;        }      if( (int)me->query_skill("xuantian-wuji",1) < 50)            {                message_vision("$N对着$n大喝一声:你的本门内功不够!\n", this_object(), me);                return 1;            }        if (me->query("kill_kunlun") == 1) {                command("kick " + me->query("id"));                command("say 我不是给了你任务了吗?");                return 1;                }        else {                command("nod" + me->query("id"));                command("say " + RANK_D->query_respect(me) + "如果能找回治我爱妾病的药,我好好好谢谢你的。\n");                command("say " + me->query("id") + "本派叛徒带着药在『" + quest["short"]  + "』出现,快去吧!\n");                me->set("kill_kunlun", 1);                me->set("quest/quest_type", "寻");                me->set("quest/quest", "奇药");                me->set("task_time", time() + 310);me->apply_condition("menpai_busy",8);                ob = new(__DIR__"qiangdao",1);                if (me->query("combat_exp") > 2000000) {                ob = new(__DIR__"qiangdao2",1);                }                ob->move(quest["place"]);                ob->set_temp("owner/id",me->query("id"));        ob->set("qi", me->query("max_qi")* 4 / 5);        ob->set("eff_qi", me->query("max_qi")* 4 / 5);        ob->set("max_qi", me->query("max_qi")* 4 / 5);        ob->set("jing", me->query("max_jing")* 4 / 5);        ob->set("eff_jing", me->query("max_jing")* 4 / 5);        ob->set("max_jing", me->query("max_jing")* 4 / 5);        ob->set("neili", me->query("neili")* 4 / 5);        ob->set("max_neili", me->query("max_neili")* 4 / 5);                                ob->set("force_factor", random(10));   me->start_busy(3);                return 1;               }                              }int ask_fail(){        object me = this_player();                if (me->query("kill_kunlun") == 1) {                command("sigh");                command("say 唉,我爱妾的病....扣你80点POT.");                me->apply_condition("menpai_busy",6);me->delete("kill_kunlun");                return 1;                }}int accept_object(object me, object obj){   object ob=this_object();   if(!me || environment(me) != environment()) return 0;   if(!objectp(obj)) return 0;   if(!present(obj, me)) return notify_fail("你没有这件东西。");           if(userp(obj)){       command("consider "+(string)me->query("id"));       command("say 你拿个快死的人来骗我?");       return 0;       }   if(obj->query("money_id")) {       command("pat " + me->query("id"));       command("say 我要钱干什么?");       return 0;       }   if(obj->query("byname") !=me->query("name")) {       command("pat " + me->query("id"));       command("say 这包药不是你找的吧!");       return 1;       }   if(me->query("kill_kunlun") == 0 ){       command("hehe "+(string)me->query("id"));       command("say 不错啊,但这活我没叫你干啊。");       return 1;       }   if(obj->query("id") == "qi yao" && me->query("kill_kunlun") == 1)   {       command("nod "+(string)me->query("id"));       command("say 干得好!\n");       remove_call_out("destroying");       call_out("destroying", 0, obj, ob, me);                              return 1;       }   else return 0;       }void destroying(object obj, object ob, object me){      object n_money;   int kar, exp, pot;   kar = random(me->query("kar")) * 15;if (kar >300) kar=300;if (kar <150) kar=150;   exp = 480 + kar;   pot = 350 + random(kar);   if(obj) destruct(obj);   if(!ob) return;   if(!me || environment(me) != environment()){      command("say 咦,人呢?");      return;      }   command("pat "+me->query("id"));   message_vision(HIY"$N对$n说道:你这次做得极为出色!我就指点你两手功夫吧.\n"NOR,ob, me);                  message_vision(HIC "\n由于$N成功的找回掌门所要的奇药,被奖励:\n"                + chinese_number(exp) + "点实战经验,\n"                + chinese_number(pot) + "点潜能,\n"                + chinese_number(50) + "点评价作为答谢。\n" NOR, me);                me->add("combat_exp", exp);                me->add("potential", pot);                me->add("score",50);                me->delete("quest");                me->delete("kill_kunlun");                destruct(present("qi yao",ob));   return;      }

⌨️ 快捷键说明

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