jason来帮忙
// Room: /clone/misc/liangpeng.c// create: by zine Aug 21 2010
inherit "/biwu/biwuroom";
#include <ansi.h>
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<sizeof(allp);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<sizeof(allvictim);j++)
{
allvictim->move(__DIR__"grass");
allvictim->set_temp("hatepk",1);
}
return 1;
}
call_out的内容没有执行,按我zmud回应截图,call_out之前的指令都正常执行了
第一视角,动作执行者
第二视角,隔壁房间动作旁观者
第三视角,动作承受者,按说应该1心跳之后越狱成功,但没反应
刚才第二视角截图错误 message_vision("良久之后,被埋着的众人终于脱困而出。\n",here);
message_vision("大劫余生,众人都不禁心有余悸,对江湖中争名夺利不再感兴趣。\n",here);
这两句把信息都传递给了房间,而没有给房间里的人看。 用printf来输出调试信息,检查代码是否执行。这个是最可靠得。
message_vision和message("vision" ,谁来解释一下? 改了一下,把message_version放到for后面整个int breakout()就执行了。
当然move之后,就看不到message_version的内容了
用tell_object解决。
我问一下,message_version把信息返回给房间,会影响下面指令的执行吗? 这个对白有点像 西游 的 醉仙楼二楼 写这个房间是在看了唐山大地震之后获得灵感,
给埋过之后,如果能活着出来,估计啥想法都都不会了,只想好好和家人在一起。 原帖由 jason 于 2010-8-31 12:50 PM 发表 http://pkuxkx.com/forum/images/common/back.gif
用printf来输出调试信息,检查代码是否执行。这个是最可靠得。
message_vision和message("vision" ,谁来解释一下?
当this_player()为空的时候,printf信息也是没有的,记log文件最保险 原帖由 zine 于 2010-8-31 01:18 PM 发表 http://pkuxkx.com/forum/images/common/back.gif
改了一下,把message_version放到for后面整个int breakout()就执行了。
当然move之后,就看不到message_version的内容了
用tell_object解决。
我问一下,message_version把信息返回给房间,会影响下面指令的执行 ...
message_vision的参数通常是一个活动物体(人,动物==),不是房间,不然会出错
如果你要让整个房间的人都看见这条信息,使用tell_room这个函数 原帖由 reallove 于 2010-8-31 03:44 PM 发表 http://pkuxkx.com/forum/images/common/back.gif
当this_player()为空的时候,printf信息也是没有的,记log文件最保险
对,大多数情况下是没有问题的。log文件太麻烦了
页:
[1]
2