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

📄 yupopo.c

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

#include <ansi.h>

inherit NPC;
int ask_job();
int ask_fail();

void create()
{
	set_name("余婆婆", ({ "yu popo", "yu", "popo" }));
	set("long",
	    "她是「灵鹫宫」九天九部中昊天部的首领.\n"+
	    "她跟随童姥多年, 出生入死,饱经风霜.\n");
	set("title", "昊天部首领");
	set("gender", "女性");
	set("age", 60);
	set("shen_type",1);
	set("attitude", "peaceful");

	set("str", 40);
	set("int", 40);
	set("con", 40);
	set("dex", 40);
	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("score", 100);
	set_skill("force", 300);
	set_skill("unarmed", 300);
	set_skill("dodge", 300);
	set_skill("parry", 300);
	set_skill("hand",300);
	set_skill("strike", 300);
        set_skill("sword",300);

        set_skill("tianyu-qijian",300);
	set_skill("zhemei-shou",300);
	set_skill("liuyang-zhang",300);
	set_skill("yueying-wubu",300);
	set_skill("bahuang-gong", 300);

	map_skill("force", "bahuang-gong");
	map_skill("strike","liuyang-zhang");
	map_skill("dodge", "yueying-wubu");
	map_skill("unarmed", "liuyang-zhang");
	map_skill("hand", "zhemei-shou");
	map_skill("parry", "liuyang-zhang");
   	map_skill("sword", "tianyu-qijian");
	set("inquiry", ([
                "救援" : (: ask_job() :),
                "job" : (: ask_job() :),
                "失败" : (: ask_fail() :),
	]) );
	create_family("灵鹫宫",2,"弟子");
	setup();
        carry_object("/d/lingjiu/obj/qingyi")->wear();
        carry_object("/d/lingjiu/obj/doupeng")->wear();
	carry_object("/clone/weapon/changjian")->wield();
	add_money("silver",40);
}

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("lingjiujob") == 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("lingjiujob", 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("lingjiujob") == 1) {
                command("sigh");
                command("say 你保护不利,扣你150点POT.");
                me->add("potential",-50);
                me->apply_condition("menpai_busy",10);
                me->apply_condition("lingjiu_song",0);
                call_out("delete", 1);
                return 1;
                }
}

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

⌨️ 快捷键说明

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