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

📄 suxingh.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// suxingh.c
// shilling 97.2

inherit NPC;
inherit F_MASTER;

int ask_job();
int ask_fail();
string ask_me();
string ask_book();

void create()
{
	set_name("苏星河",({"su xinghe","su"}));
	set("gender", "男性" );
	set("nickname", "聪辩老人");
	set("shen_type", 0);
	set("class", "scholar");
	set("age",60);
	set("str", 35);
	set("con", 30);
	set("int", 45);
	set("dex", 35);
	set("per", 30);

	set("no_clean_up",1);

	set("long",
"此人就是号称聪辩老人的苏星河,据说他能言善辩, \n"
"是一个武林中的智者,而他的武功也是无人能知。\n");

	set("combat_exp", 1500000);
	set("attitude", "peaceful");
	set("book_count", 1);
	set("chat_chance", 1);

	set("inquiry", ([
		"秘密地道" :(:ask_me:),
		"秘籍"     :(:ask_book:),
                "任务" : (: ask_job() :),
                "失败" : (: ask_fail() :),
	]) );

	set("max_qi", 5400);
	set("max_jing", 1400);
	set("neili", 9500);
	set("max_neili",9500);
	set("jiali", 60);
	set("env/wimpy", 60);

	set_skill("force", 150);
	set_skill("dodge", 150);
	set_skill("unarmed", 150);
	set_skill("parry", 150);
	set_skill("blade", 200);
	set_skill("lingboweibu", 280);
	set_skill("beiming-shengong", 280);
	set_skill("ruyi-dao", 300);
	set_skill("liuyang-zhang", 380);
	set_skill("zhemei-shou", 280);
	set_skill("literate", 100);

	map_skill("unarmed", "liuyang-zhang");
	map_skill("parry", "ruyi-dao");
	map_skill("blade", "ruyi-dao");
	map_skill("dodge", "lingboweibu");
	map_skill("force", "beiming-shengong");
	prepare_skill("hand","zhemei-shou");
	prepare_skill("strike","liuyang-zhang");	
	set("chat_chance_combat", 90);  
	set("chat_msg_combat", ({
                (: perform_action, "blade.shishiruyi" :),
                (: perform_action, "blade.shishiruyi" :),
                (: perform_action, "blade.ruyi" :),
                (: perform_action, "blade.ruyi" :),
                (: perform_action, "dodge.lingbo" :),
                (: perform_action, "dodge.lingbo" :),
                (: exert_function, "strike.zhong" :),                
                (: exert_function, "strike.zhong" :),                
	}) );

	create_family("逍遥派", 2, "弟子");
	set("title","逍遥派第二代大弟子");
	setup();
	carry_object("d/xiaoyao/npc/obj/cloth")->wear();
	carry_object("d/xiaoyao/npc/obj/blade")->wield();
}


void attempt_apprentice(object ob)
{

	if (ob->query_int() < 30) {
		command("shake"+ ob->query("id")); 
		command("say " + RANK_D->query_respect(ob) + 
			"是否还应该在学问上多下点功夫?");
 return;
 	}

	command("say 好吧,我就收下你了,今后要多加努力啊!");
	command("recruit " + ob->query("id"));
 }

string ask_book()
{
	object me,ob;
	mapping fam; 
	ob=this_player();
	if (!(fam = ob->query("family")) 
		|| fam["family_name"] != "逍遥派")
	{
		return"想要秘籍就得加入逍遥派。";
	}
	command("sigh");
	return"本派的武功秘籍藏在一个很秘密的地方,我也没去过。";
}
string ask_me()
{
	object me,ob;
	mapping fam; 
	ob=this_player();
	if (!(fam = ob->query("family")) 
		|| fam["family_name"] != "逍遥派")
	{
		return"想要知道密道就得加入逍遥派。";
	}
	command("sigh");
	return"本派的密道在华山之上,很是艰险。你有兴趣可以去看看。";
}

void recruit_apprentice(object ob)
{
	if( ::recruit_apprentice(ob) )
		ob->set("class", "scholar");
}

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("combat_exp") < 100000) {
                command("say " + RANK_D->query_respect(me) + "找本派的掌门信物是很难的,你还是练高经验再来吧");
                return 1;
}
        if (me->query("potential") < 200 || me->query("combat_exp") < 300) {
                command("say 你连本钱都没有,我怎么放心要你去找本派的掌门信物?");
                return 1;
        }

        if (me->query("kill_xiaoyao") == 1) {
                command("kick " + me->query("id"));
                command("say 我不是给了你任务了吗?");
                return 1;
                }
        else {
                command("nod" + me->query("id"));
                command("say " + RANK_D->query_respect(me) + "能为逍遥派出力,真是太好了。");
                command("say " + me->query("id") + " 七宝指环在在『" + quest["short"]             + "』出现,快去吧!\n" NOR);
                me->set("kill_xiaoyao", 1);
                me->set("quest/quest_type", "寻");
                me->set("quest/quest", "七宝指环");
                me->set("task_time", time() + 300);
                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("combat_exp", me->query("combat_exp"));
                ob->set("max_force", me->query("max_force"));
                ob->set("eff_kee", me->query("max_kee"));
                ob->set("max_kee", me->query("max_kee"));
                ob->set("kee", me->query("max_kee"));
                ob->set_skill("dodge", skill);
                ob->set_skill("force", skill);
                ob->set_skill("parry", skill);
                
                ob->set("force_factor", random(10));   
                return 1;
               }                              
}

int ask_fail()
{
        object me = this_player();
        
        if (me->query("kill_xiaoyao") == 1) {
                command("haha");
                command("say 你这身手也来找本派的七宝指环,扣你150点EXP.");
                me->add("combat_exp",-150);
                call_out("delete", 1);
                return 1;
                }
}

int delete()
{
        this_player()->delete("kill_xiaoyao");
        return 1;
}

⌨️ 快捷键说明

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