巴哈姆特

首頁 哈啦區 Minecraft 我的世界(當個創世神)

【嵐】【指令】Q鍵、F鍵偵測,製作技能觸發的神器

追蹤話題

【嵐】【指令】Q鍵、F鍵偵測,製作技能觸發的神器

技術部
雪色 (hoarhsu) 2016-07-22 20:40:37
#1
大家好,我是
這篇是繼上篇文章「左、右鍵偵測」(連結在文章下方)未完成的技能觸發事件的用途,
這次是教學如何用F鍵、Q鍵,甚至是蹲下、旋轉、移動而放出技能。

指令機關主打不耗效能、精準、快速!
-------------------------------------------------------------------------------------------------
一、Q鍵偵測
原理試探測玩家的drop記分板(丟出),再來偵測被丟出的物品是否為指定物品

教程:
先創立一個記分板以便計算玩家是否丟出物品:
/scoreboard objectives add Drop stat.drop

接著是從丟出物品的玩家身上判定附近是否有指定的物品,如果有就把指定物品加入標籤:
/execute @a[score_Drop_min=1] ~ ~ ~ /scoreboard players tag @e add Qtest {Item:{id:(物品ID),tag:{display:{Name:(自訂義名稱)}}}}


重複執行的指令方塊後面就可以接你想要在偵測Q鍵後執行的指令,
而在後面再放置指令方塊讓物品還原到玩家身上(讓可撿取時間歸0):
/entitydata @e[tag=Qtest] {PickupDelay:0}


最後讓玩家的丟出分數歸0:
/scoreboard players set @a[score_Drop_min=1] Drop 0


簡單的Q鍵偵測機關就完成了:


-------------------------------------------------------------------------------------------------

二、F鍵偵測
原理試探測玩家左手是否持著指定物品

教程:
將玩家左手手持指定物品的玩家加入標籤:
/scoreboard players tag @a add Ftest {Inventory:[{id:minecraft:(物品ID),Slot:-106b,tag:{display:{Name:(自訂義名稱)}}}]}


重複執行的指令方塊後面就可以接你想要在偵測F鍵後執行的指令,
而在後面將玩家的指定物品清除:
/clear @a[tag=Test] (物品ID) (物品附加值) (數量) {display:{Name:(自訂義名稱)}}


再來還給玩家指定的物品:
/give @a[tag=Test] (物品ID) (數量) (物品附加值) {display:{Name:(自訂義名稱)}}


最後清除玩家的標籤:
/scoreboard players tag @a[tag=Ftest] remove Ftest


簡單的F鍵偵測機關就完成了:


-------------------------------------------------------------------------------------------------

結尾:
這次的指令教學稍微比較簡單,左右鍵的偵測會稍微困難,
如果想查看左右偵測的文章請點下面傳送門的連結。

喜歡我的文章或想詢問任何的指令問題都可以訂閱和按讚,或在下方留言喔~
所有的指令問題我幾乎都可以回答~

-------------------------------------------------------------------------------------------------

看較舊的 47 則留言

雪色: B51 2018-06-29 22:26

在標籤的地方會改成:{SelectedItem:{id:"diamond_sword",tag:{display:{Name:"聖劍EXcaliburrrrrrrrrr!!!!!!"}}}}

雪色: B52 2018-06-29 22:26

(抱歉暑假前這一個月太忙了...根本沒空上線...有點晚才回.

lights4567: B53 2018-06-30 09:49

感恩,該道歉的是我一直煩你

雪色: B54 2018-06-30 16:22

沒關係 我也開放問問題(X 只是我很不常上.

斯卡路: B55 2019-09-17 17:18

1.14.4適用嗎

KACHUAN (kachuan) 2017-06-12 15:28:30
#2
我想問為什麼他說:無法執行 /scoreboard players tag @e add Qtest {Item:{id:minecraft:iron_sword},tag:{display:{Name:(超級神劍)}}}}

看較舊的 1 則留言

杰斯: B2 2017-06-12 16:34

minecraft:iron_sword的後面多一個 }

杰斯: B3 2017-06-12 16:35

超級神劍 要用雙引號 " " , 不是括號 ( ), minecraft:iron_sword 頭尾也要用雙引號

杰斯: B4 2017-06-12 16:37

既然是要幫地上的物品加tag , @e 改成 @e[type=Item] 比較好, 不然會偵測所有的實體

杰斯: B5 2017-06-12 16:40

/scoreboard players tag @e[type=Item] add Qtest {Item:{

杰斯: B6 2017-06-12 16:40

id:"minecraft:iron_sword",tag:{display:{Name:"超級神劍"}}}}

爽啦!我是商人~! (raventree) 2017-06-28 16:02:47
#3
痾..新手需要求救
我看了之後覺得應該可以實現我的夢想...回家道具
後來發現 甚麼反應都沒有QQ
請大家幫我看看出問題在哪 感恩
1.先打一個/scoreboard objectives add Drop stat.drop (對話框)

2.叫一個命令方塊(重複,永遠啟動)
/execute @a[score_Drop_min=1] ~ ~ ~ /scoreboard players tag @e add Qtest {Item:{id:"emerald",tag:{display:{Name:"回家石"}}}}

3.叫一個命令方塊排在後面(連鎖,永遠啟動)
/entitydata @e[tag=Qtest] {PickupDelay:0}

4..叫一個命令方塊排在後面(連鎖,永遠啟動)
/scoreboard players set @a[score_Drop_min=1] Drop 0

5.叫一個命令方塊排在後面(脈衝,永遠啟動)
/tp @p 0 15 0

就沒有後續了...OTZ
然後有其他一些疑惑的問題,不知道該添加什麼..
就是 我丟綠寶石 或丟其他物品 指令都會跑...
然後地上的東西也沒有收走 囧

麻煩大師教我如何修改 先感謝你們QQ

看較舊的 32 則留言

杰斯: B33 2017-06-28 18:29

你是1.12的話, 應該要改

爽啦!我是商人~!: B34 2017-06-28 18:32

有改 一樣QQ

爽啦!我是商人~!: B35 2017-06-28 18:33

重開一個世界 好像可以了QQ

爽啦!我是商人~!: B36 2017-06-28 18:33

不過有辦法設置感應嗎? 不然怕距離問題 傳到不該傳送的人OTZ

爽啦!我是商人~!: B37 2017-06-28 18:34

反覆測試一下 結果 又變成所有物品都可以傳送QQ

杰斯 (jshiuanliu) 2017-06-28 18:42:41
#4
我先把你的文章內容copy過來....
指令我用藍色的字, 然後我修改的地方用紅色的字,
你對照一下有沒有哪裡有打錯....

1.先打一個/scoreboard objectives add Drop stat.drop (對話框)

2.叫一個命令方塊(重複,永遠啟動)
/execute @a[score_Drop_min=1] ~ ~ ~ /scoreboard players tag @e add Qtest {Item:{id:"minecraft:emerald",tag:{display:{Name:"回家石"}}}}

3.叫一個命令方塊排在後面(連鎖,有條件,永遠啟動)
/entitydata @e[tag=Qtest] {PickupDelay:0}

4.叫一個命令方塊排在後面(連鎖,有條件,永遠啟動)
/scoreboard players set @a[score_Drop_min=1] Drop 0

5.叫一個命令方塊排在後面(連鎖,有條件,永遠啟動)
/tp @p 0 15 0

然後按Q丟出手上 名字叫"回家石"的綠寶石

以上, 我是可以正常執行的唷~~~

至於你說要改成可以偵測位置的方式, 我等等打下一篇回覆你

看較舊的 6 則留言

爽啦!我是商人~!: B7 2017-06-28 18:53

用創造測試 跟一般模式 原來會不同QQ

爽啦!我是商人~!: B8 2017-06-28 18:54

這樣第一階段沒問題了 就差感應位置這個

杰斯: B9 2017-06-28 18:54

有時候總是會有奇怪的情況發生,這時候我會先把所有的指令方塊改成紅石啟動(要按確定)再全部改成永遠啟動,就會正常了

杰斯: B10 2017-06-28 18:55

晚一點吃完飯,我把改好的指令(可偵測丟道具的人)再po給你

爽啦!我是商人~!: B11 2017-06-28 18:58

好的~非常感謝~QQ

杰斯 (jshiuanliu) 2017-06-28 19:33:16
#5
首先呢~~ 第1和第2不用改,

第3要刪除, 因為改成丟出的道具被刪除, TP後再拿回來,

所以撿取延遲=0就沒有用了, 然後第4也不用改,

因此指令就變成了以下這樣~~

1. /scoreboard objectives add Drop stat.drop (對話框)

2. /execute @a[score_Drop_min=1] ~ ~ ~ /scoreboard players tag @e add Qtest {Item:{id:"minecraft:emerald",tag:{display:{Name:"回家石"}}}} (重複,永遠啟動)

3. /scoreboard players set @a[score_Drop_min=1] Drop 0 (連鎖,有條件,永遠啟動)

(目前都沒有改動, 只是少了原本的第3)


再來就是, 因為按Q丟出了指定道具, 所以先用give道具拿回來

4. /execute @e[tag=Qtest] ~ ~ ~ /give @p minecraft:emerald 1 0 {display:{Name:"回家石"}} (連鎖,有條件,永遠啟動)

然後就是原本的第5, 只是多加上了偵測位置的設定

5. /execute @e[tag=Qtest] ~ ~ ~ /tp @p 0 15 0 (連鎖,有條件,永遠啟動)

最後, 記得把丟出去的道具刪除唷~~

6. /kill @e[tag=Qtest] (連鎖,有條件,永遠啟動)

以上指令即可完成你要的效果!!


再來是簡單說明一下,

注意看第4和第5的前半段是一樣的 /execute @e[tag=Qtest] ~ ~ ~

這就是利用了 execute 讓後半段的指令, 以前半段的實體為主,

沒指定實體的話, 就會以指令方塊本身為主,

那我所指定的實體 @e[tag=Qtest] 就是丟出去的道具,

所以後半段的指令使用 @p 當然就是離道具最近的, 丟出道具的人,

因此就不會有TP錯人, 和道具給錯人的情況發生囉~~~

看較舊的 12 則留言

杰斯: B13 2018-08-29 15:31

是,獨立一個用來計時就好

烤雞洋芋片: B14 2018-08-29 16:38

能舉個例子嗎? 對scoreboard還不太熟悉..

杰斯: B15 2018-08-29 17:27

舉例是指實際的指令嗎?因為1.12和1.13指令大改動…

烤雞洋芋片: B16 2018-08-29 17:58

阿 我用的是1.12.2

BSA (Black0517) 2017-07-25 21:35:48
#6
所以偵測蹲下的指令是?
杰斯: B1 2017-07-25 22:15

這個 --> stat.sneakTime , 可以偵測蹲下的時間

杰斯: B2 2017-07-26 08:41

補充一下, 前面留的是計分版的準則, 全部指令是 /scoreboard objectives add <Name> stat.sneakTime

杰斯: B3 2017-07-26 08:41

<Name>的地方就打上自己想要的名字, 然後只要蹲下, 就會自己累加蹲下的時間了

杰斯: B4 2017-07-26 08:43

當然後面你還要加上你希望蹲下後(多久時間)發動什麼技能or事件, 發動完記得要把蹲下時間歸0

萊姆球0д0-☆ (Snady0610) 2017-08-10 21:41:57
#7
大大妳好:

為甚麼這一條我用了但沒反應??
(可更改: 紅色 不可: 藍色 )

/execute @a[score_Drop_min=1] ~ ~ ~ /scoreboard players tag @e add Qtest {Item:{id:"Diamond_sword",tag:{display:{Name:"冰封印 導魔之劍"}}}}

貓狗喵: B1 2017-08-10 21:48

Diamond_sword改成minecraft:diamond_sword

燚元 (zcb135789) 2017-09-22 00:44:28
#8
請問如果我想讓他物品等待10秒後再歸還到背包要怎麼打?
這是我目前的指令
/execute @e[tag=Qtest] ~ ~ ~ /give @p minecraft:totem_of_undying 1 0 {display:{Name:"隱身"}}
求大大幫忙

看較舊的 20 則留言

想不到名字: B23 2017-10-01 16:44

6那個所有的score_clock_min的數字由2000改為400 算錯(20x20=2000...)

想不到名字: B24 2017-10-01 17:39

第4個改為execute @a[tag=cd,score_clock_min=400] ~ ~ ~ give @a[tag=cd] minecraft:totem_of_undying 1

想不到名字: B25 2017-10-01 17:39

第5個改為execute @a[tag=cd,score_cd_min=1] ~ ~ ~ scoreboard players reset @a[tag=cd] cd

想不到名字: B26 2017-10-01 17:42

最後新增一個連鎖指令方塊 放在第5個前 kill @e[type=item] {Item:{id:"minecraft:totem_of_undying"}} 原第6,7則變成第7,8

燚元: B27 2017-10-03 00:05

感謝~

#9此文章已由原作者(lights4567)刪除

March (a38974401) 2017-12-02 14:50:56
#10
我打/scoreboard players tag @a add Ftest {Inventory:[{id:minecraft_apple,Slot:-106b,tag:{display:{Name_123}}}]}但他寫[14:50:42] Players tag command failed, reason: Expected ':' but got '}' at: ...,Slot:-106b,tag:{display:{Name_123}<--[HERE]
peter: B1 2017-12-02 15:40

版本...

大同寶寶: B2 2017-12-02 17:43

除了版本,Name那裡也出問題了

大同寶寶: B3 2017-12-02 17:44

要是你版本低於1.9,副手會失效

大同寶寶: B4 2017-12-02 17:45

不過看這錯誤報告……你的Name那裡少了:

大同寶寶: B5 2017-12-02 17:45

(按到發送)更正,少了:""

曉義 (choyee) 2018-03-24 20:09:16
#11
此資料標籤不符合 Cho_Yee

Cho_Yee是我的ID

/scoreboard players tag @a add Ftest {Inventory:[{id:"minecraft:diamond_sword",Slot:-106b,tag:{display:{Name:"鑽石劍"}}}]}

向你請教一下 哪裡錯了

烤雞洋芋片 (koaruXcoaoca) 2018-09-01 13:44:23
#12
版主安~ 我是前幾天詢問冷卻的玩家 注 版本是1.11.2

我後來決定使用F鍵去觸發指令 但它東西並沒有歸還給我 但第一列指令是正常的..

也就是說 按F時東西是會正常發揮(指令)的 只是它不會歸還給我orz...

以下是我的指令 希望有bug能幫我抓...

第一行 /scoreboard players tag @a add heal {Inventory:[{id:minecraft:book,Slot:-106b,tag:{display:{Name:"包紮",Lore:["按F可回復生命值"]}}}]} --- 指令方塊 重複 無條件 永遠啟動

第二行 /replaceitem entity @a[tag=heal] slot.weapon.offhand minecraft:air --- 連鎖 有條件 永遠啟動

<中間放了一些指令> /execute @e[tag=heal] ~ ~ ~ /effect @p 10 12 0 true 之類的

第三行 /scoreboard players tag @a[tag=heal] remove heal 連鎖 有條件 永遠啟動
-----
上面都沒問題 但是到這裡的時候... (冷卻時間部分)

第一行 /scoreboard objectives add healCD dummy 指令方塊 脈衝 無條件 需要紅石 (觸發過囉)

第二行 /scoreboard players set @a[tag=heal] healCD 100 --- 重複 無條件 永遠啟動

第三行 /scoreboard players remove @a[score_healCD_min=1] healCD 1 --- 重複 無條件 永遠啟動

第四行 /give @a[score_healCD_min=1,score_healCD=1] minecraft:book 1 0 {display:{Name:"包紮",Lore:["按F可回復生命值"]}} --- 重複 無條件 永遠啟動

有開過 healCD 的記分板 </scoreboard objectives setdisplay sidebar healCD> 不過他沒顯示出來...

看較舊的 5 則留言

雪色: B6 2018-09-01 14:56

stat.playOneMinute是一個可以讓每個玩家每tick都讓分數+1的記分板類型,就只是用來省去你每刻都要去加減分數的功用而已

雪色: B7 2018-09-01 14:56

你目前的機關是每刻-1,而stat.playOneMinute是每刻+1,所以如果要換記分板的話可能要有一點點的範圍調整

雪色: B8 2018-09-01 14:57

stat.playOneMinute類型的記分板是可以用set來重新歸0的

烤雞洋芋片: B9 2018-09-01 15:26

可以用在計時的感覺?

烤雞洋芋片: B10 2018-09-01 15:33

[hoarhsu:雪色]剛剛試了一下 成功了!!!

GAMEADO (gameado) 2018-11-14 22:45:43
#13
請問一下,為甚麼他這樣說
無法執行/scoreboard players tag @a add Ftest {Inventory:[{id:minecraft:skull,Slot:-106b,tag:{display:{Name:(扔頭臚就會死)}}}]} 於 (我的id)

延伸閱讀

問題列車偵測

2019-06-01 20:09:59

問題偵測指令

2020-01-05 11:05:55

心得自動報時系統 [偵測器、指令方塊、1.5]

2013-03-31 11:37:18

情報月舞1.13生物娘材質包(12/11更新) 1.14版本製作完成

2019-06-07 02:42:51

情報【1.19.4跑酷地圖介紹】Insanity Halls —

2024-04-18 17:20:59

心得合成器紅石線路布置法

2023-10-29 00:18:16

心得Minecraft各平臺的購買方式(6/28,6樓新

2022-06-13 02:51:36

【地圖】國外傳奇CTM地圖 Ragecraft3:The Prophecy (

2019-03-17 16:25:27

療癒你身心靈

看更多

大叔與貓~彼此都是對方的福丸,撫平心傷的療癒系漫畫│曲的漫畫心得

主題

來些癒療系圖

主題

療癒系爆發!!扭蛋~柯基的日常

主題

電梯
開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】