作者laechan (打死不投马冏,李系咩安抓)
看板mud_sanc
标题Re: [wizs]问题请教(十五)
时间Thu Jul 19 14:38:02 2007
※ 引述《hlead (希多)》之铭言:
return 0 的话,它会执行原先的效果(就是 semote 的 push 效果),
return 1 的话就可以自订讯息, 不给讯息时它就会出现"什麽??"
: 都有写就是了。
: 程式段大概是:
: void init()
: {
: add_action("push_wall","push");
: }
: int push_wall(string str)
: {
: int strs;
: if(query("push"))
: return 0;
所以这里如果 return 1, 当房间有 "push" 参数时, 玩家下 push
就会看到"什麽?"
: if(!str || str=="") return notify_fail("你到底要推什麽啦!?\n");
return notify_fail 相当於 return 0, 所以它不会出现
"你到底要推什麽啦!?", 改成底下它就会出现...
if(!str || str=="")
{
write("你到底要推什麽啦!?\n");
return 1;
}
但是我们(我跟 nobu)不建议这样做, 我们比较建议的是,
动作指令不要用 push, 例如你可以用 pushing.
: if(str!="wall") return notify_fail("你想要推啥?..难道是那块墙壁?\n");
: strs=this_player()->query("stat/str");
: if(strs<MAX_STR)
: {
: write(CYN"你使出全身力量去推,但石墙却还是闻风不动。\n");
: return 1;
: }
: set("push",1);
: write(CYN"\"喝阿~\"你两手放在石墙上,用力一推~\n"NOR);
: tell_room(this_object(),CYN"石墙蹦隆的一声,渐渐地倒了下来。\n"NOR);
: set("exits/east",VR2"pr60");
: delete("item_desc");
: set("long",@TORR
: 路面上充满了一堆碎石头,似乎是有人蓄意破坏这里,仔细勘查
: 了一会儿,发现原来这道路本是不相连的,是被人故意给打通的
: ,真是蛮横的手段呀!
: TORR
: );
: return 1;
: }
正常来说,非 push wall 时「自然应该执行原先的 push」,因此
大部份的房间才会使用 return notify_fail 写法, 不过你要额外
提示也是可以的。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.185.164