※ 引述《sakuraku (weiwei)》之銘言:
: 如題
: 朋友架設的伺服器一直有玩家喝隱形藥水傷害其他優良市民
: 爬過文章後也沒有看到如何取消隱形藥水的功能或指令插件
: 想知道某些伺服器是如何關閉隱形藥水的權限的QQ
想說難得有題目可以當作指令練習,沒想到意外的簡單4行指令就解決了
下面可以用上色來對照指令跟說明之間的關係
由於目前並沒有直接尋找身上有特定效果玩家的指令
所以必須藉助功能強大但是不太好用的計分板scoreboard來達成
首先先建立一個計分板物件 i_see_you (名字可以隨便取)
在遊戲中輸入指令1:
/scoreboard objectives add i_see_you dummy I see you
其中i_see_you 是這個計分板的名字
dummy 表示這個計分板的分數只能透過指令改變
I see you 是記分板顯示的名稱,不過這裡不會用到
接著輸入指令2:
/scoreboard players set @a i_see_you 0
這行指令會把所有的玩家加入這個記分板並設定分數為0
再來輸入指令3:
/scoreboard players set @a i_see_you 1 {ActiveEffects:[{Id:14b}]}
稍微講解一下
這行看起來有點複雜,其實也只比上一行多一串怪東西而已
{ActiveEffects:[{Id:14b}]}的功能是從所有玩家(@a)中
過濾出身上帶有14號效果的玩家,而14號就是我們的隱形效果
也就是說,這一行指令的功能是將有隱形效果的玩家分數設為1
最後輸入指令4:
/effect @a[score_i_see_you_min=1] 14 0
細講會講太多,直接整行指令翻譯的結果是:
給予所有在i_see_you記分板上分數不小於1的玩家0秒的隱形效果
由於使用指令新增效果會覆蓋原有的效果且包含持續時間
所以不論原本的隱形效果還剩多少秒數都會強制結束
重複指令3.4就能達到禁用隱形藥水的效果
如果伺服器有開啟指令方塊的話
可以將指令3.4放在指令方塊內就能簡化操作
搭配定時電路就可以達到隨時偵測的效果,不過很多伺服器是禁止紅石連閃的
OP帶頭破壞規矩可是很嚴重的事情要盡量避免>.0
可行的方案有採用指令方塊礦車+觸發鐵軌像這樣
http://i.imgur.com/2By5Rt8.png
一個放指令3,另一個放指令4就能搞定了
不過在放之前指令1.2要先照順序下才能放3.4
如果發現哪裡怪怪的話就對調礦車裡的指令看看
這篇只分享解決問題的方法,很多東西都只是帶過而已沒有深究
如果有興趣的話改天再來發篇專門的文章
另外我絕對不會說我好像有篇文章富姦超過一年了...(還敢講