找回密码
 注册
搜索
查看: 2416|回复: 4

天山的代码

[复制链接]
门派:不明
发表于 2010-4-15 23:49:52 | 显示全部楼层 |阅读模式
#include <ansi.h>

inherit ROOM;

string look_deng1();

string look_deng2();

string look_deng3();

string look_deng4();



void create()

{

    set("short", "成天部");

    set("long", @LONG

眼前是一个可容纳数百人的大厅,是成天部的所在地,大厅墙壁上画满了

浮雕,天顶上画的是一个青衫男子,头上有角,左手持长剑,右手握剑诀,骑

着一只青龙,冲天而起。地面以青色岩石磨就,分毫无缝,浑然天成。大厅四

角点着数盏明灯,弥漫在大厅里的香气好象就是从灯里发出。

LONG);



    set("exits", ([

                "eastdown" : __DIR__"dadao9",

        ]));      



        set("objects", ([

                __DIR__"npc/f-dizi" : 1,

        ]));   



    set("item_desc", ([

        "east deng" : (: look_deng1 ,

        "south deng" : (: look_deng2 ,

        "west deng" : (: look_deng3 ,

        "north deng" : (: look_deng4 ,

    ]));

    set("zhbfang", 1);

    setup();   

}



void init()

{

    add_action("do_smell", ({"smell", "wen"}));

    add_action("do_move", ({"move", "yi"}));

}



void reset()

{

    set("zhbfang", 1);

}



string look_deng1()

{

    object me = this_player();

    if (!me->query_temp("ts/smell")) return "什么?\n";

    if(random(me->query("kar")+me->query("per")+me->query("pur")) <= 40){

        me->delete_temp("ts/smell");

        return "你仔细看着点燃在大厅东角的铜灯,发现没有什么两样。\n";

    }

    else {

        me->set_temp("ts/smell2",1);

        return "你仔细看着点燃在大厅东角的铜灯,终于发现其中一盏的灯座,似乎可以移动。\n";

    }

}



string look_deng2()

{

    object me = this_player();

    if (!me->query_temp("ts/smell")) return "什么?\n";

    if(random(me->query("kar")+me->query("per")+me->query("pur")) <= 40){

        me->delete_temp("ts/smell");

        return "你仔细看着点燃在大厅南角的铜灯,发现没有什么两样。\n";

    }

    else {

        me->set_temp("ts/smell2",1);

        return "你仔细看着点燃在大厅南角的铜灯,终于发现其中一盏的灯座,似乎可以移动。\n";

    }

}



string look_deng3()

{

    object me = this_player();

    if (!me->query_temp("ts/smell")) return "什么?\n";

    if(random(me->query("kar")+me->query("per")+me->query("pur")) <= 40){

        me->delete_temp("ts/smell");

        return "你仔细看着点燃在大厅西角的铜灯,发现没有什么两样。\n";

    }

    else {

        me->set_temp("ts/smell2",1);

        return "你仔细看着点燃在大厅西角的铜灯,终于发现其中一盏的灯座,似乎可以移动。\n";

    }

}



string look_deng4()

{

    object me = this_player();

    if (!me->query_temp("ts/smell")) return "什么?\n";

    if(random(me->query("kar")+me->query("per")+me->query("pur")) <= 40){

        me->delete_temp("ts/smell");

        return "你仔细看着点燃在大厅北角的铜灯,发现没有什么两样。\n";

    }

    else {

        me->set_temp("ts/smell2",1);        

        return "你仔细看着点燃在大厅北角的铜灯,终于发现其中一盏的灯座,似乎可以移动。\n";

    }

}



int do_smell(string arg)

{

    object me=this_player();

    if (me->is_busy() || me->is_fighting())

        return notify_fail("你正忙着呢!\n");

    tell_object(me,"你仔细闻着空气里的香气,似乎和**几个大厅的气味不同,不由的暗自起疑!\n");

    me->set_temp("ts/smell",1);

    me->add_busy(2);

    return 1;

}



int do_move(string arg)

{

    object ob, *ob2;

    object here = this_object();

    object me = this_player();

    int i;



    if (me->is_busy() || me->is_fighting())    return notify_fail("你正忙着呢!\n");

    if (!me->query_temp("ts/smell2"))

        return notify_fail("什么?\n");

    if( (!arg) || !((arg == "deng") || (arg == "灯") || (arg == "tong deng") || (arg == "铜灯")))

        return notify_fail("你要移动什么?\n");

    if (query("zhbfang") < 1)

        return notify_fail ("你把铜灯往旁边移了移,但没发现任何东西。\n");



    ob=new(__DIR__"npc/zhbfan");

    ob->move(environment(me));

    message_vision(HIW"$N把铜灯往旁边移了移。\n"NOR, me);

    message_vision(HIW"突然一条人影向$N扑了过来。\n"NOR, me);

    message_vision(HIR"卓不凡对$N大喝一声:既然我上的山来,就是要和你们这些所谓仙子,拼个你死我活,\n"+

            "既然被你个" + RANK_D->query_rude(me) + "发现了,不是你死就是我活。\n"NOR, me);

    here->add("zhbfang",-1);

    ob2 = all_inventory(here);

    for(i=0; i<sizeof(ob2); i++) {

        if(! ob2->is_character()) continue;

        if( ob2->is_corpse()) continue;

        ob->kill_ob(ob2);

        ob2->kill_ob(ob);

    }

    me->delete_temp("ts/smell1");

    me->delete_temp("ts/smell2");

    return 1;

}



int valid_leave(object me)

{

    me->delete_temp("ts/smell");

    me->delete_temp("ts/smell2");

    return ::valid_leave(me);

}
门派:不明
 楼主| 发表于 2010-4-15 23:51:15 | 显示全部楼层
#include <ansi.h>

inherit ROOM;



void create()

{

    set("short", YEL"山道"NOR);

    set("long", @LONG

这是山道之中,越走道旁的乱草越长,放眼道路崎岖,乱石嶙峋。你向着

灯火快步走去。灯火相隔甚遥,走了好一会,仍是闪闪烁烁,瞧不清楚屋宇。

LONG);

    set("exits", ([

        "east" : __FILE__,

        "south" : __FILE__,

        "west" : __FILE__,

        "north" : __FILE__,

    ]));      



    set("outdoors", "天山");

    setup();

}



int valid_leave(object me, string dir)

{

    if (dir == "west") me->add_temp("mark/steps",-1);

    if (dir == "south") me->add_temp("mark/step",1);

    if (dir == "east") me->add_temp("mark/steps",1);

        if (dir == "north") me->add_temp("mark/step",-1);



    if (me->query_temp("mark/steps") > 8 || me->query_temp("mark/step") < -8) {

        me->move(__DIR__"shanjin2");

        me->delete_temp("tonglao");

        me->delete_temp("mark");

        log_file("quest/tonglao", sprintf("%8s%-10s未通过童姥解迷第二步,福:%d,淳:%d,容:%d,次数:%d。\n",

            me->name(),"("+me->query("id")+")", me->query("kar"), me->query("pur"),

            me->query_per(), me->query("quest/tonglao/quest")), me);

        return notify_fail(CYN"\n你喃喃骂道:「这灯可有点儿邪门。」\n"NOR"不知不觉你走回到原来的山路上。\n"NOR);

    }

    if (me->query_temp("mark/steps") == me->query_temp("tonglao/steps")

     && me->query_temp("mark/step") == me->query_temp("tonglao/step")) {

        if (random(me->query("kar")) >= 20

         && random(me->query("pur")) >= 25

         && me->query("per") < 15

         && random (41 - me->query_per()) >= 25) {

            me->delete_temp("tonglao");

            me->set_temp("tonglao/pass2",1);

            me->delete_temp("mark");

            me->set("quest/tonglao/second", 1);

            log_file("quest/tonglao", sprintf("%8s%-10s通过童姥解迷第二步,福:%d,淳:%d,容:%d/%d,次数:%d。\n",

                me->name(),"("+me->query("id")+")", me->query("kar"), me->query("pur"), me->query("per"),

                me->query_per(), me->query("quest/tonglao/quest")), me);

            tell_object(me, YEL"\n你凝目向山谷望去,只见那灯火发出绿油油的光芒,迥不同寻常灯火的色作\n"

                         "暗红或昏黄。你加快脚步,向绿灯又驱前里许,便看得更加清楚了。\n\n"NOR);

            me->move(__DIR__"shangu");

            return notify_fail(YEL"你发现有邪魔外道在此聚会,赶紧躲到旁边的岩石中躲了起来。\n"NOR);

            }

        else {

            me->move(__DIR__"shanjin2");

            me->delete_temp("tonglao");

            me->delete_temp("mark");

            log_file("quest/tonglao", sprintf("%8s%-10s未通过童姥解迷第二步,福:%d,淳:%d,容:%d,次数:%d。\n",

                me->name(),"("+me->query("id")+")", me->query("kar"), me->query("pur"),

                me->query_per(), me->query("quest/tonglao/quest")), me);

            return notify_fail(CYN"你喃喃骂道:「这灯可有点儿邪门。」\n不知不觉你走回到原来的山路上。\n"NOR);

        }

    }

        return ::valid_leave(me, dir);

}
门派:不明
发表于 2010-5-3 12:20:09 | 显示全部楼层
好像比较复杂
个人建议说说代码的意思哦。
门派:不明
发表于 2010-5-15 14:18:05 | 显示全部楼层
面向对象的代码设计,和php 代码相似  ,可惜还是不懂意思
门派:不明
发表于 2011-3-8 14:37:52 | 显示全部楼层
第一楼那个 杀了 那家伙 能得个 周公剑

第二楼 那个 好像这里没有开 是解 天山折梅手 与 天山六阳掌的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-5-26 06:28 , Processed in 0.030062 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表