看板 mud_sanc 關於我們 聯絡資訊
※ 引述《hermis (夏目)》之銘言: : 我之前說要作的那個房間,為了避免短時間連call,所以才要用block_command : 可是block_command沒辦法阻擋玩家執行add_action設的動作,就變成設了block_command : 也沒有意義,玩家還是可以連續拉。 : 如果改成設call_out,那肯定會變成連續call : 用heart_beat,在4002也會造成負擔。 : 那我要怎麼阻止玩家執行add_action的動作,又不會造成系統負擔啊XD? 我覺得,重點是你這個房間是要幹嘛的? 不要做一做,最後卻發現原來有更簡單的東西早就支援了。 這個 add_action 如果不是你設的,那自然你的東西不能阻擋 他人的 add_action;反之,如果是你設的,你可以在函數中 判斷啊.. add_action("chat_xxx","chat"); int chat_xxx() { if(this_player()->query("block_command")>0) { write(this_player()->query("block_command_msg")); return 1; } return 0; } 現在幾乎全部品的 add_action 都拿掉了,都讓現有的指令可 以支援,除了少部份極稀少的物品除外。 另外,有個東西叫 user_commands().. mixed cmds = this_player()->user_commands(); 可以讀取它現在可下的所有以 add_action 定義的指令. add_action("cant_use_this_cmd",cmds); int cant_use_this_cmd() { write("你現在不能使用這個指令.\n"); return 1; } Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.34.90
hermis:對就是那個,原來是這樣判定XD||| 12/28 08:52