北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 11024|回复: 10

jason来帮忙

[复制链接]
发表于 2010-8-31 11:51:11 | 显示全部楼层 |阅读模式
// Room: /clone/misc/liangpeng.c
// create: by zine Aug 21 2010


inherit "/biwu/biwuroom";
#include


void create()
{
        set("short", HIW"凉棚"NOR);
        set("long", @LONG
这是一个很大的凉棚,几个大柱子(pillar)支撑着顶棚。
LONG
        );
        set("exits", ([ /* sizeof() == 3 */
                "northwest" : __DIR__"grass",
        ]));
    set("item_desc", (["pillar" : "柱子已经烂掉了一半,如果你猛劈(pi)的话,也许整个顶棚会塌下来。\n",
        ]));
        set("no_clean_up", 0);
        set("pillar_hp", 3);
        setup();
}


void init()
{
        add_action("do_pi", ({ "pi" }));
        ::init();
}


int pi2(object me)
{       
        int i;
        object* allp;
        object here=environment();
        object room= load_object(__DIR__"grass");
        if(me->is_busy())
                {
                        return notify_fail("你正忙着呢。\n");
                }
        else
                {
                        if(query("pillar_hp") - 1 <= 0)
                                {   
                                        allp = all_inventory();
                                        for(i=0;i
                                                {       
                                                        allp->add_busy(15);
                                                }
                                        message_vision("$N大喝一声,把所有柱子砍断,凉棚塌了下来,把所有人埋在里面。\n", me);
                                        room->delete("exits/southeast");
                                        message("vision", "东南面一声巨响,凉棚已经完全塌陷,底下的人恐怕难以幸免。\n", room );
                                        message_vision(HIW"$N心里早有准备,在凉棚倒塌前一刻,已经逃出生天。\n"NOR,me);
                                        delete("exits/northwest");
                                        set("long","凉棚的顶棚已经完全塌了下来。\n");
                                        message("vision", "一个人影从废墟中急掠出来。\n", room );
                                        me->move(__DIR__"grass");
                                        me->add_busy(1);
                                        call_out("breakout", 1, here);
                                }
                        else
                                {       
                                        add("pillar_hp",-1);
                                        me->add_busy(random(2));
                                        message_vision("$N用力砍断了一根柱子。\n", me);
                                }       
                }
        return 1;
}


int do_pi()
{
        object me = this_player();
        if (me->is_busy() || me->is_fighting())
                {
                        return notify_fail("你正忙着哪!\n");
        }
        if(!present("gang fu", me))
                {
                        {
                                message_vision("$N大喝一声,一头向柱子撞了过去。\n", me);
                                me->add_busy(random(3));
                        }
                        if((int)me->query("qi")<200)
                                {
                                        me->unconcious();
                                }
                        else
                                {
                                        me->add("qi",-200);
                                }
                        return 1;
                }
        else
                {
                        message_vision("$N大喝一声,抓起钢斧,向柱子劈去。\n", me);
                        pi2(me);   
                        return 1;
                }
}


int breakout(object here)
{   
        int j;
        object* allvictim = all_inventory();
        message_vision("良久之后,被埋着的众人终于脱困而出。\n",here);
        message_vision("大劫余生,众人都不禁心有余悸,对江湖中争名夺利不再感兴趣。\n",here);
        for(j=0;j
                {
                        allvictim[j]->move(__DIR__"grass");
                        allvictim[j]->set_temp("hatepk",1);
                }
        return 1;
}




call_out的内容没有执行,按我zmud回应截图,call_out之前的指令都正常执行了


第一视角,动作执行者


第二视角,隔壁房间动作旁观者


第三视角,动作承受者,按说应该1心跳之后越狱成功,但没反应

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-8-31 11:53:40 | 显示全部楼层

刚才第二视角截图错误

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-8-31 12:36:31 | 显示全部楼层
message_vision("良久之后,被埋着的众人终于脱困而出。\n",here);
message_vision("大劫余生,众人都不禁心有余悸,对江湖中争名夺利不再感兴趣。\n",here);


这两句把信息都传递给了房间,而没有给房间里的人看。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-8-31 12:50:37 | 显示全部楼层
用printf来输出调试信息,检查代码是否执行。这个是最可靠得。
message_vision和message("vision" ,谁来解释一下?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-8-31 13:18:47 | 显示全部楼层
改了一下,把message_version放到for后面整个int breakout()就执行了。
当然move之后,就看不到message_version的内容了
用tell_object解决。

我问一下,message_version把信息返回给房间,会影响下面指令的执行吗?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-8-31 13:39:07 | 显示全部楼层
这个对白有点像 西游 的 醉仙楼二楼
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-8-31 13:49:18 | 显示全部楼层
写这个房间是在看了唐山大地震之后获得灵感,
给埋过之后,如果能活着出来,估计啥想法都都不会了,只想好好和家人在一起。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-8-31 15:44:10 | 显示全部楼层
原帖由 jason 于 2010-8-31 12:50 PM 发表
用printf来输出调试信息,检查代码是否执行。这个是最可靠得。
message_vision和message("vision" ,谁来解释一下?


当this_player()为空的时候,printf信息也是没有的,记log文件最保险
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-8-31 15:48:52 | 显示全部楼层
原帖由 zine 于 2010-8-31 01:18 PM 发表
改了一下,把message_version放到for后面整个int breakout()就执行了。
当然move之后,就看不到message_version的内容了
用tell_object解决。

我问一下,message_version把信息返回给房间,会影响下面指令的执行 ...


message_vision的参数通常是一个活动物体(人,动物==),不是房间,不然会出错
如果你要让整个房间的人都看见这条信息,使用tell_room这个函数
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-8-31 15:56:33 | 显示全部楼层
原帖由 reallove 于 2010-8-31 03:44 PM 发表


当this_player()为空的时候,printf信息也是没有的,记log文件最保险


对,大多数情况下是没有问题的。log文件太麻烦了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-23 10:45 PM , Processed in 0.012557 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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