精華區beta mud_sanc 關於我們 聯絡資訊
※ 引述《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