※ 引述《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