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

📄 zhaixing.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// zhaixing.c 摘星子#include <ansi.h>inherit NPC;inherit F_MASTER;int ask_job();int ask_fail();string ask_me();string ask_book();void create(){	set_name("摘星子", ({ "zhaixing zi", "zhaixing" }));	set("nickname", "星宿派大师兄");	set("long", 		"他就是丁春秋的大弟子、星宿派大师兄摘星子。\n"		"他三十多岁,脸庞瘦削,眼光中透出一丝乖戾之气。\n");	set("gender", "男性");	set("age", 35);	set("attitude", "peaceful");	set("shen_type", -1);	set("class", "fighter");	set("str", 26);	set("int", 28);	set("con", 26);	set("dex", 26);		set("max_qi", 700);	set("max_jing", 700);	set("neili", 1500);	set("max_neili", 1500);	set("jiali", 30);	set("combat_exp", 300000);	set("score", 40000);	set_skill("force", 70);	set_skill("huagong-dafa", 50);	set_skill("throwing", 70);	set_skill("feixing-shu", 80);	set_skill("dodge", 70);	set_skill("zhaixinggong", 100);	set_skill("strike", 80);	set_skill("chousui-zhang", 80);	set_skill("claw", 80);	set_skill("sanyin-wugongzhao", 80);	set_skill("parry", 70);	set_skill("poison", 70);	set_skill("staff", 70);//	set_skill("tianshan-zhang", 60);//	set_skill("literate", 50);	map_skill("force", "huagong-dafa");	map_skill("dodge", "zhaixinggong");	map_skill("strike", "chousui-zhang");	map_skill("claw", "sanyin-wugongzhao");	map_skill("parry", "chousui-zhang");	map_skill("throwing", "feixing-shu");//	map_skill("staff", "tianshan-zhang");	prepare_skill("strike", "chousui-zhang");	prepare_skill("claw", "sanyin-wugongzhao");	set("inquiry", ([		"炼心弹"    : (: ask_me :),		"秘籍"      : (: ask_book :),		"天山器法"  : (: ask_book :),                "job" : (: ask_job() :),                "失败" : (: ask_fail() :)	]));	set("dan_count", 1);	set("book_count", 1);	create_family("星宿派", 2, "弟子");	setup();	carry_object("/clone/weapon/lianzi")->wield();}void attempt_apprentice(object ob){	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("dan_count") < 1)		return "你来晚了,没有练心弹了。";	add("dan_count", -1);	ob = new("/d/xingxiu/obj/lianxindan");	ob->move(this_player());	return "这些练心弹够你用的了吧。";}string ask_book(){	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 "你来晚了,现在没什么剩的了。";	add("book_count", -1);	ob = new("/clone/book/throw_book");	ob->move(this_player());	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("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 (me->query("kill_xingxiu") == 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_xingxiu", 1);                me->set("quest/quest_type", "抢");                me->set("quest/quest", "富商");                me->set("task_time", time() + 300);                ob = new(__DIR__"meinv",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_xingxiu") == 1) {                command("pk1");                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("kill_xingxiu");        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("id") == "fushang" && me->query("kill_xingxiu") == 1)   {       command("nod "+(string)me->query("id"));       command("say 嘿嘿.干得好!\n");       remove_call_out("destroying");       call_out("destroying", 5, obj, ob, me);                              return 1;       }   if(obj->query("money_id")) {       command("pat " + me->query("id"));       command("say 我要钱干什么?");       return 0;       }   else return 0;       }void destroying(object obj, object ob, object me){      object n_money;   int kar, exp, pot;   kar = random(me->query("kar")) * 15;   exp = 400 + kar;   pot = 150 + random(exp);   if(obj) destruct(obj);//   if(ob) destruct(ob);   if(!ob) return;   if(!me || environment(me) != environment()){      command("say 咦,人呢?");      return;      }   command("pat "+me->query("id"));   message_vision(HIR"$N对$n说道:你这次做得极为出色!我就指点你两手本门的奇功吧.\n"NOR,ob, me);                  message_vision(HIC "\n由于$N成功的抢到了商人,被奖励:\n"                + chinese_number(exp / 2) + "点实战经验,\n"                + chinese_number(pot / 2) + "点潜能,\n"                + chinese_number(50) + "点评价作为答谢。\n" NOR, me);                me->add("combat_exp", exp / 2);                me->add("potential", pot / 2);                me->add("score",50);                me->add("shen",-200);                me->delete("quest");                destruct(present("fushang",ob));                me->delete("kill_xingxiu");   message_vision(HIM"$N说完就把商人身上的钱财,搜了出来,然后把商人关进了后面的山洞......\n"NOR,ob);   return;      }

⌨️ 快捷键说明

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