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

📄 dao-zheng.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// Npc: /kungfu/class/shaolin/dao-zheng.c
// Date: YZC 96/01/19
#include <ansi.h>
inherit NPC;
int ask_job();
int ask_fail();


void create()
{
	set_name("道正禅师", ({
		"daozheng chanshi",
		"daozheng",
		"chanshi",
	}));
	set("long",
		"他是一位身材高大的中年僧人,两臂粗壮,膀阔腰圆。他手持兵\n"
		"刃,身穿一袭灰布镶边袈裟,似乎有一身武艺。\n"
	);


	set("gender", "男性");
	set("attitude", "friendly");
	set("class", "bonze");

	set("age", 40);
	set("shen_type", 1);
	set("str", 20);
	set("int", 20);
	set("con", 20);
	set("dex", 20);
	set("max_qi", 40000);
	set("max_jing", 30000);
	set("neili", 14500);
	set("max_neili", 14500);
	set("jiali", 400);
	set("combat_exp", 8000000);
	set("score", 100);

	set_skill("force", 350);
	set_skill("hunyuan-yiqi", 350);
	set_skill("dodge", 350);
	set_skill("shaolin-shenfa", 350);
	set_skill("strike", 350);
	set_skill("sanhua-zhang", 350);
	set_skill("parry", 350);
	set_skill("damo-jian", 350);
	set_skill("buddhism", 350);
	set_skill("literate", 350);

	map_skill("force", "hunyuan-yiqi");
	map_skill("dodge", "shaolin-shenfa");
	map_skill("strike", "sanhua-zhang");
	map_skill("parry", "sanhua-zhang");
	set("inquiry", ([
                "救援" : (: ask_job() :),
                "job" : (: ask_job() :),
                "失败" : (: ask_fail() :),
	]) );
	create_family("少林派", 39, "弟子");

	setup();

        carry_object("/d/shaolin/obj/dao-cloth")->wear();
}

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 ((int)me->query_condition("menpai_busy"))  
            {
                      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 (me->query("potential") < 200 || me->query("combat_exp") < 300) {
                command("say 你的潜能太少了!!");
                return 1;
        }

        if (me->query("shaolinjob") == 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);
                command("say " + me->query("id") + "你把玄难大师大师护送回少林!\n" NOR);
                me->set("shaolinjob", 1);
                me->set("quest/quest_type", "护送");
                me->set("quest/quest", "玄难大师");
                me->set("task_time", time() + 300);
                ob = new(__DIR__"dashi",1);
                ob->move(quest["place"]);
                ob->set("combat_exp", me->query("combat_exp"));
                return 1;
               }                              
}

int ask_fail()
{
        object me = this_player();
        
        if (me->query("shaolinjob") == 1) {
                command("sigh");
                command("say 你保护不利,扣你150点POT.");
                me->add("potential",-50);
                              me->apply_condition("menpai_busy",10);
                call_out("delete", 1);
                return 1;
                }
}

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

⌨️ 快捷键说明

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