shensuan.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 199 行

C
199
字号
inherit NPC;int look_ob();int ask_letter();int do_suan(string str);int ask_suanming();string ask_mimi();void create(){        set_name("赛神仙", ({ "shensuan zi", "shensuan" }) );        set("nickname", "神算子");        set("gender", "男性");        set("age", 66);        set("long",            "神算子正坐在板凳头趴在桌子上睡觉,唾液一直流到了桌子底下。\n");        set("attitude", "peaceful");        set_skill("taoism", 300);        set_skill("force",200);        set("max_neili",5000);        set("max_jingli",3000);        set("letter", 1);        set_temp("apply/attack", 100);        set_temp("apply/defense", 100);        set_temp("apply/damage", 20);        set("combat_exp", 500000);        set("shen_type", 1);        set("inquiry", ([            "算命": (: ask_suanming :),            "秘密": (: ask_mimi :),            "信": (: ask_letter :),             ]));        setup();        carry_object("/clone/misc/cloth")->wear();        }void init(){               object ob;        ::init();        if( interactive(ob = this_player()) && !is_fighting() ) {                remove_call_out("look_ob");                call_out("look_ob", 6, ob);        }}int look_ob(){    foreach (object player in all_inventory(environment()) )        command("look "+player->query("id"));    return 1;}int ask_suanming(){      if ((int)this_player()->query_temp("knock")) {           command("whisper " +this_player()->query("id")+ " 没点诚意,老夫恕难从命!\n");           this_player()->set_temp("knock", 0);           return 1;           }    return 0;}string ask_mimi(){        object me=this_player();        if(!me->query_temp("mimi")) return "这个嘛,我不知道也!";        me->delete_temp("mimi");        me->set_temp("letter",1);        return "很多年前,我的爷爷的爷爷给我留下一封信,我知道信中隐藏着一个大秘密。";}int ask_letter(){        object ob,me=this_player();        int p1;        if (query("letter") < 1)  say("神算子很遗憾的说道:这样东西我已经给人了。\n");        if((int)me->query("passwd1")) {        say("神算子很不耐烦的说道:我把我知道的都告诉你了,还问什么嘛!\n");        }else         if ((int)me->query_temp("letter")) {        say("神算子嘿嘿的奸笑了几声,道:你想要这封手信吗?\n");        write("神算子歪头想了会,说道:好吧!\n");        p1=random(6)+1;        me->set("passwd1",p1);        write("这封信的后面已经看不到了,但我隐约记得曾多次提到"+CHINESE_D->chinese_number(p1)+"样什么东西的。\n");        write("现在我就把这封信交给你了,我对这封信已经失去兴趣了,唉,你要保重啊!!\n");        me->delete_temp("letter");        add("letter", -1);        ob=present("letter",this_object());        if (!ob)                ob=new("/d/changan/obj/letter.c");        ob->move(me);        }else{        message("vision","神算子不知道你在说什么也!!\n", me);        }        return 1;}int accept_object(object me, object ob){        command("smile");    command("say 嘿嘿,多谢这位" + RANK_D->query_respect(me) + " !");    if( ob->query("money_id") && me->query("class") != "bonze" )     {        if(ob->value() < 1000000)        {            command("say 唉,近来生意难做啊,是不是能再给点...");            return 1;        }else{            command("smile shensuan");            command("say " + RANK_D->query_respect(me) + "告诉我,你要算(suan)自己,还是算谁。");            add_action("do_suan","suan");            me->set_temp("give_money",1);            return 1;        }    }    return 1;}int do_suan(string arg){        object ob, me = this_player();        string name;        int str, ntg, dex, per, con, kar,str1, ntg1, dex1, per1, con1, kar1;        if(!arg || sscanf(arg, "%s", name)!= 1 )   return 0;        if(!me->query_temp("give_money")) return 0;                if(!objectp(ob = find_player(name)) )   return 0;        if( !ob || wizardp(ob)) {                command("tell "+me->query("id")+" 嘘,小声点,神仙我怎么敢算啊。");                return 1;        }        me->delete_temp("give_money");        str = ob->query("str");        ntg = ob->query("int");        dex = ob->query("dex");        per = ob->query("per");        con = ob->query("con");        kar = ob->query("kar");        str1 = ob->query_str();        ntg1 = ob->query_int();        dex1 = ob->query_dex();        per1 = ob->query_per();        con1 = ob->query_per();        kar1 = ob->query_kar();        switch(random(6)) {                case 0 :                if( str1+ntg1+dex1+per1+con1+kar1 > (ob->query("age")+6) * 6) {                        command("nod");                        command("say 不错,"+ob->name()+"也还算修练有方。");                } else {                        command("sigh");                        command("say "+ob->name()+"还要在基本功上多下点功夫!");                }                break;                case 1 :                if(kar > 22) {                        command("smile");                        command("say "+ob->name()+"福缘深厚,吉人自有天相。");                }else {                        command("hmm");                        command("say "+ob->name()+"这一生看来是注定要多历磨难了。");                }                break;                case 2 :                if(ntg > 25 || ntg1 > 40+ob->query("age") ) {                        command("nod");                        command("say "+ob->name()+"天资过人,若能多加努力,必定能出人头地。");                } else {                        command("shake");                        command("say "+ob->name()+"如果知道"笨鸟先飞"的道理,还是有机会的。");                }                break;                case 3 :                if(str > 25)                        command("say "+ob->name()+"如果有意钻研,倒也不难成为一代大侠。");                else    command("say "+ob->name()+"应该专精几门武功,不可以贪多。");                break;                case 4 :                if(per > 23 ) {                        command("nod");                        command("say "+ob->name()+"天生美貌,若能继续保养,必定能长命百岁");                }else {                        command("shake");                        command("say "+ob->name()+"相貌虽然如此,若能寻些仙缘,还是可以美容的。");                }                break;                case 5 :                if(dex1 > (ob->query("age")+60) ) {                        command("nod");                        command("say "+ob->name()+"身轻如燕,已达一苇渡江的能力,再下苦功,定成大器");                }else {                        command("shake");                        command("say "+ob->name()+"步伐沉重,在江湖中逃命才是重要的,练错功了啊!");                }                break;        }        me->set_temp("mimi",1);        return 1;}

⌨️ 快捷键说明

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