《我的世界》網易版1.12使用指令大全詳細介紹

《我的世界》1.8.3版中的指令又有了進一步的更新,很多玩家都對.8.3版指令大全不是很了解,下面小編就為大家帶來我的世界1.8.3版指令大全,包括所有47條我的世界指令代碼大全,希望對各位玩家有所幫助。

實體相關

1.summon指令

(即將列表格)比較常用的指令,用來召喚出生物。summon指令跟刷怪蛋不同,它可以給刷出的實體附加不同的效果。注意啦,生物與實體是不同的,生物時類似於殭屍、骷髏這樣的生物,而實體是除了固定的方塊以外所有的東西(類似於經驗球,掉落物品等等)。具體格式為:

summon生物英語名稱坐標 {數據標籤}

舉個例子,比如生成一個村民殭屍:

summon Zombie ~ ~1 ~ {IsVillager:1}

IsVillager:1是數據標籤,下面會解釋到。~ ~1 ~是推薦使用的坐標,意為在命令方塊上面一格處生成某個實體(y走向),如果填上~ ~-1 ~便會在命令方塊下方1格生成實體。波浪號的數字不同方向也不同,比如~1 ~ ~是東邊一格(x走向),~ ~ ~1是北邊一格(z走向),summon這個指令,不像刷怪蛋,刷怪蛋是隨機生成,比如殭屍刷怪蛋,會生成大殭屍,小殭屍,穿裝備的殭屍,甚至雞騎士等。而summon只會生成特定的殭屍,如果不加任何數據標籤默認為普通的殭屍。

CustomName與CustomNameVisible:

常用的數據標籤比如CustomName,運用這個數據標籤可以給怪物起名字,亦可用在區分不同的怪物來執行不同的命令。效果跟命名牌類似,但沒有防止怪物和玩家距離遠時消失的效果(PersistenceRequired標籤負責此作用)。(有人說1.7的CustomName用完後即使不看著那個生物依然會顯示生物的名稱,而1.8則不會,實際上1.8需要在後面加上CustomNameVisible:1才可以起到這個效果)比如

summon Creeper ~ ~2 ~ {CustomName:bomb,CustomNameVisible:1}

就會在命令方塊上兩格生成一隻名為「bomb"、不用看生物便會顯示名稱標籤的苦力怕。

Attributes:

比較常用的數據標籤還有Attributes標籤,這個標籤是用來給怪物修改屬性,它可以給怪物添加各種各樣的屬性,一般連用的有Name(注意:這裡和CustomName不同,Name只是幾個特定的數據名稱)比如

/summon Creeper ~ ~1 ~ {Attributes:[{Name:generic.maxHealth,Base:0}]}

Name處填寫的是屬性名稱,Base處填寫的是數據,當數量越大改變的能力也越大。以下是任何怪物都可以用的普遍修改屬性的數據標籤(PS:盡量填寫小數適用於生存,當然創造在特定需求下當然非常推薦填寫適合的數)。

generic.maxHealth血量,任何血量都可以,只是太大的數容易造成卡機現象。

generic.movementSpeed速度屬性。盡量填小數,否則就像瞬移一樣。比如殭屍,0.3就是偏快的速度。

generic.attackDamage攻擊力,也盡量填小的數,否則容易被秒殺。不建議在生存里填寫太大的數字。

generic.followRange探測範圍,給怪物最好填小數,否則怪物容易一直追殺自己的目標。填的越高偵測範圍越遠。

generic.knockbackResistance防擊退效果,填寫數越高擊退效果越不明顯。可以和"擊退"附魔效果互相抵消。

generic意為普遍的,所有生物都可以使用,而不加generic的數據標籤僅僅只有一些特定的生物可以用、

HealF:

上面那條指令意為召喚出1隻0血的苦力怕,也就是召喚後便會死亡。在Base處更改數字即為血量。(謝謝chyx指出錯誤)HealF和maxHealth不同,Healf是當前血量,而maxHealth是血量上限,也就是說,當HealF比maxHealth小時,生物的血量並不是滿的)0血還有另一種形式,比如

/summon Creeper ~ ~1 ~ {HealF:0}

即可。這個方法可以用在特殊的地方,比如不小心把末地的出口打沒了(創造),召喚滿血末影龍嫌麻煩,那就直接召喚0血末影龍即可。(每隻末影龍死了之後都會出現出口)上面的Creeper可以改成其他的生物。

ActiveEffects:生物生成可以自帶藥水屬性,而並不用自己來投擲藥水來給予怪物。基本格式為

summon實體名稱坐標 {ActiveEffects:[{Id:藥水代碼,Duration:藥水時間}]}

和effect性質相同,具體可以看effect。它們都可以隱藏粒子效果,比如

summon EntityHorse ~ ~1 ~ {CustomName:number1,Tame:1,Saddle:1,Type:0,ActiveEffects:[{Id:1,Duration:123456789,ShowParticles:0b}]}

就會刷出一隻帶有迅捷屬性卻看不見藥水粒子效果的馬(其他NBT請看下方生物數據標籤)

Equipment:

之前說過,如果不加NBT使用summon刷出的生物不會附帶任何屬性,比如刷出殭屍村民等等或者帶裝備的殭屍。用Equipment可生物加上裝備。基本格式為

summon實體名稱坐標 {Equipment:[{id:武器名稱/物品名稱,Count:數量},{id:靴子名稱,Count:數量},{id:腿甲名稱,Count:數量},{id:胸甲名稱,Count:數量},{id:頭盔名稱,Count:數量}]}

這五個空都是和裝備種類都是對應,需要注意。Count處填寫數量,當掉落對應物品時,也會掉落相應數量的物品。

小bug:當使用像

summon Zombie ~ ~1 ~ {Equipment:[{},{id:golden_helmet,Count:5},{},{},{}]}

類似的指令時,雖然寫的是金頭盔,但是玩家看到的殭屍卻是殭屍穿著金靴子,當殺死殭屍時掉落的卻是五個金頭盔。所以名義上雖然是金靴子,但是實際上還是金頭盔。

NoAI:

NoAI是一種給生物添加一種屬性的標籤。如果生物後加上NoAI標籤,這個生物就會變成「傀儡」,生物會懸空,並且如果沒有特殊狀態(比如末影人受到傷害瞬移)的話將不會再動彈。一般可以配合隱身的生物來做一種外觀上雖然是某種生物,但是實質卻是另一種生物的效果。具體使用方法為在數據標籤處加上NoAI:1。

Riding:

Riding是用來生成疊加生物的。使用這個指令可以使生物騎著生物(就像雞騎士等等)。基本格式為

summon生物名稱坐標 {Riding:{id:生物名稱}}

注意,一定要兩個括弧。少一個便不會觸髮指令。前者是騎生物者,而後者id是被騎者。比如

summon Zombie ~ ~1 ~ {Riding:{id:Slime}}

便會刷出一隻騎著史萊姆的殭屍。當然,Riding可以無線疊加,比如

summon Villager ~ ~1 ~ {Riding:{id:Villager,Riding:{id:Villager,Riding:{id:Villager,Riding:{id:Villager,Riding:{id:Villager}}}}}}

每多加一個生物,就要多一個Riding和括弧。一定要注意,多加的Riding要填進另一個Riding括弧裡頭。

效果圖片:

如果不是特定組合(雞騎士等),騎在上面的生物沒有控制被騎生物的權利。

2.kill指令

mc中最常用的指令之一。在1.8之前,這個指令本是用來自殺。如果只輸入

/kill

則會起到自殺的效果。在1.8之前也適用,一般先關掉Inventory(死亡掉落)在使用這個指令。現在1.8之後,這個指令用處就變得大多了。它不僅可以用來殺死玩家,還可以用來殺死實體。基本格式為

kill選擇器/玩家數據標籤

如果要殺死特定的玩家,比如要殺死一個名為「End-Enderman」的玩家,那就用

kill End-Enderman

即可做到殺死一個特定玩家的效果。

1.8後選擇器多了@e這個選項,可以起到給所有實體執行一些命令的效果。比如

kill @e

可以清除所有除了方塊以外的東西(提醒:這個指令一定要慎用,它會殺死一切的實體,尤其是不能高頻這個指令,不然會對存檔/伺服器造成毀滅性的打擊,所以一定要注意)

kill這個東西可以做到殺死一切實體的效果,所以在做一些實用的東西時(比如原版做出凋零骷髏刷怪蛋,之前需要先弄一個替死的)會派上很大的用場。kill和testfor等指令加上的標籤一樣,可以加上type和name系列的標籤。基本格式為

kill @e[type=實體種類,name=實體姓名]

比如我們要殺死一隻名為ZombieKing的殭屍,那麼在實體種類處填寫Zombie(注意大小寫,不小心殺錯了可就壞事了,因為kill @e系列的指令千萬不能疏忽,尤其是在高頻的時候,一旦出錯後果不堪設想),name處填寫名稱(可以用命名牌、CustomName、鐵砧或者用刷怪蛋出來自帶的姓名等等,這個如果不甚填錯不用擔心,頂多也就殺錯怪,如果沒有的話不會殺死任何實體)。一切實體都可以起名字(比如射出去的箭,如果不用summon也可以用entitydata),所以這一點是很方便的。

只要實體種類處填對,就能清除許許多多的你認為礙事的東西。小到經驗球(XPOrb)、掉落物(Item),大到玩家,生物,做冒險機關跑酷解密什麼的都是很適合的一個指令。只是再一次提醒,一般檔被毀不少都是因為這個而引起的。高頻kill @e可是比高頻tp更進了一個檔次...

所以請謹慎行事。珍惜生命,學好指令。

3.effect指令

此指令用於給玩家附加藥水效果。激活後是直接加在玩家身上的。基本格式為

effect玩家名稱藥水效果藥水持續時間藥水等級粒子效果

藥水效果填寫藥水的名稱。而持續時間和等級分別填寫數字,比如

effect @a poison 10 0

這會給玩家10秒的1級中毒效果。而粒子效果處要填寫true或者false,如果填寫true便會隱藏藥水的粒子效果。比如

effect @a regeneration 20 5 true

當然,玩家可以隨時改變時間和藥水等級,比如說這條指令

effect @a speed 9999 255 true

這會給玩家一個255等級,藥水效果時間將近3個小時並且不會顯示粒子的速度效果。不過這種指令一定要慎用,一般某些東西不是等級越高就越好,

比如速度,甚至會移動到未載入區域。所以要慎用。

還有一種模式,用於清除玩家所有藥水效果(就像牛奶),基本格式為

effect玩家名稱 clear

另外effect也可以給實體添加效果,比如

effect @e 12 123

這會給全體添加防火效果123秒(不填寫等級默認1級)

在某些情況下effect不推薦泛濫使用,否則容易對玩家造成一些影響。

4.tp指令

比較常用的指令,常用於傳送玩家。用這個方法可以將玩家或者實體瞬間傳送到指定的地方(瞬移)。

基本格式為

tp坐標處玩家

比如坐標處填寫1,2,3,那麼玩家就會被傳送到這個地點。也可以用選擇器,比如用@a就是將所有玩家傳送到一個地點。

如果不指定坐標那麼就會傳送到指定玩家處,基本格式為

tp玩家/選擇器

單人遊戲自然這個指令沒有太大的用處,使用之後玩家屏幕視角只會略微動一下。

指定某個玩家時,玩家就會傳送到某個玩家處。

我們假設一個玩家為a,另一個玩家為b。假如使用

/tp a

假如b玩家使用了這個指令,那麼b玩家就會傳送到a玩家的坐標處。如果b玩家用的是tp b則會變成只會動一下視角的效果。

注意:tp @a似乎只能在聊天框使用,命令方塊會無效。

如果想tp實體,那麼只能用選擇器。因為實體名直接在命令方塊填寫會無效。比如把玩家所在世界的所有苦力怕向上100格,那就用

tp @e[type=Creeper] ~ ~100 ~

如不填寫坐標,那就是把玩家傳送到隨機一個苦力怕的位置。也可以把一個實體傳送到另一個實體的坐標上,比如

tp @e[name=a] @e[name=b]

意為將一個名字為a的生物傳送到b的坐標處。

建議最好不要高頻tp,因為高頻tp毀檔的事情已經不少見了....

5.spreadplayers指令

(建議先學會有關於區域的指令再來學習此指令,如clone,testforblock等,初期不好理解)用於將玩家隨機擴散在指定的區域內(也就是隨機傳送到指定區域的某個地方)。基本格式為

spreadplayers擴散中心點坐標擴散最小半徑擴散最大半徑整個隊伍/單個玩家玩家名/選擇器

擴散中心點坐標填寫x和z。y是默認的,所以不用添加。之後後面擴散都會按照這個點來進行區域擴散,所以一定要慎重填寫,不要誤把z填寫成y,否則如果記不住坐標可能就再也找不到原來的地方了。。而擴散最大半徑和擴散最小半徑就有些不一樣了。兩個地方都填寫數字。spreadplayers是按照正方形進行擴散(有人說是圓形,但是並不是這樣),比如填寫0,1,意為在中心點處隨機擴散到中心點半徑1格的地方,也就是一圈。如圖,假設紅石火把是中心點,那麼如果擴散半徑分別是0,1,那麼就會隨機擴散到包括中心點在內的9個坐標處。

以此類推,不管怎麼用最後都會按照指定的中心點來進行擴散。如果要一個隊伍的玩家全部在根據中心點擴散,那麼在整個隊伍/單個玩家處填寫true,這樣這個隊伍的所有玩家都會隨機擴散到指定區域。反之,單個玩家就填寫false。(隊伍可以看計分板teams欄)

雖然spreadplayers看似是作用於玩家,但是實體依然可以在spreadplayers使用。比如將所有的殭屍全部以某個中心點擴散到附近區域來。

即使是實體,聊天欄依然會顯示是玩家擴散而不是實體擴散。

6.entitydata指令

此指令用於替換現存實體的數據標籤。和blockdata需要區分的是,此指令是替換實體的數據標籤,而後者是替換方塊的數據標籤。基本格式為

entitydata實體名稱實體NBT標籤

實體NBT可以看summon(目前只編寫了生物的,實體的敬請期待)。實體名稱需要用選擇器來掌握。(目前不能用entitydata對玩家執行操作)任何實體NBT標籤包括一些只有entitydata才能使用的標籤(比如HurtBy,LifeTime等等)。比如我們把現存的所有苦力怕都瞬間爆炸,用

entitydata @e[type=Creeper] {ignited:1}

即可做到這種效果。和summon不同的是,兩個括弧之間用不著加東西。如果想再添加一項NBT,比如使用

entitydata @e[type=Creeper] {ignited:1,Fuse:0}

使用之後還會附加讓苦力怕瞬爆,以此類推。(可以用name=xxx指定特定的生物)

另外,entitydata在使用某些指令時或者直接加在實體名稱處時需要用的UUID(HurtBy等等,summon有講解)。因為entitydata目前不能指定玩家,除了用選擇器的方式還可以把UUID填寫至實體名稱處(看UUID方式可以看execute)。比如

entitydata a5b84cfe-9407-45f1-9414-3d1c776d8d20 {ignited:1,Fuse:0}

(每個生物UUID都不相同,所以這個指令你使用是無效的,請把上面一串數字字母代碼替換成要執行生物的UUID)

7.blockdata指令

這個指令用於改變現存方塊存有的NBT。需要和entitydata區分開來,前者是替換方塊的數據標籤,後者是替換實體的數據標籤。基本格式為

blockdata需要改變的方塊坐標方塊數據標籤

坐標一定要掌握好,不然就會提示「目標方塊沒有持有數據」。

每個方塊都有自己特殊的數據標籤(當give處的物品數據標籤更新好了之後請見give處)。比如改變一個坐標處的命令方塊里的命令,那就用

blockdata x y z {Command:"xxx"}

一般用於更改漏斗、發射器等NBT,比如將命令方塊上的箱子的第一格變為命令方塊,用

blockdata ~ ~1 ~ {Items:[{id:"minecraft:command_block",Damage:0s,Slot:0,Count:1b}]}

即可。

有時可以用高頻來不斷地執行命令,比如不停的變換物品就可以起到做一個機關的效果。

因為setblock放置方塊時會有放置方塊的聲音,所以用這個指令可以做到很隱蔽的效果(先把commandBlockOutput關掉)。

物品相關

1.give指令

give是比較常用的一個指令。最初用到命令方塊都必須要用過這個指令。最基本的形式是

/give玩家名數據標籤

1.7(或者更低版本)的形式為

/give玩家名方塊代碼

比如/give @p 137就是給予玩家一個命令方塊。

/give @a minecraft:command_block

是目前比較通用的一種。可以在遊戲中按F3+h來查看英文名稱。還有一種形式,具體為

/give @a minecraft:command_block 1 0

前面的數字1是給予玩家物品的數量,意為「給予玩家一個命令方塊」,後面的0是損傷值。(1.8通用)這個方法是用於區分某些物品,比如刷怪蛋(spawn_egg)有許多的種類,就要用到不同的損傷值。按下F3+h也可以查看損傷值。

其次,跟give配合、給物品加上一系列數據比較貼切的就是display指令。它可以為給予的物品增加許多的特效。比如Name標籤,舉個例子:

/give @p experience_bottle 1 0 {display:{Name:"xxx"}}

使用這個指令就會得到一個不同名字的附魔之瓶。不同名字的物品會有不同的name標籤(名稱),以後可以用到各種指令的name標籤處。xxx處填寫你想要的名稱。比如"燃燒瓶",出來的效果為

和Lore標籤不同的是,當持有這個帶有特殊標籤(或者直接用鐵砧)的東西時,不需要在物品欄里便能看到。

還有比較常用的ench附魔標籤,比如

give @p minecraft:spawn_egg 1 50 {display:{Name:"xxx"},ench:[{id:附魔編號,lvl:等級}]}

就能給予玩家一個帶附魔特效的苦力怕蛋。第一個id是附魔編號,而第二個lvl是等級,效果隨著等級的變化而變化。以及可以添加文字效果的Lore指令:

give @p minecraft:diamond_sword 1 0 {display:{Name:"名字",Lore:["說明"]}}

使用這個指令就可以給予玩家附加一個文字說明的鑽石劍。「說明」處填寫你想加的文字,比如在說明處加上「專打殭屍劍」,說明就會變成說明處的文字。如圖:

只不過跟名字不同,拿著被附加文字的物品是無法直接看到文字的,在物品欄里才能看到。

順便說下按下F3+h後的形式(再按一遍可取消):

註:現在1.8版本已經將give的方塊代碼形式刪除了,但是其他(例如附魔id,或者其他指令)的指令並沒有影響。像類似直接添加數字代碼的(give @p 137)1.8版本以上的已經沒有用了,還請注意。上面的是give的基本指令,而不同的方塊擁有不同的數據標籤。方塊nbt請看這裡

2.clear指令

此指令用於清除玩家身上的物品。基本格式為

clear玩家名物品名損傷值數量物品數據標籤

除了開頭的clear以外,其餘的都可以省略掉。玩家名填寫選擇器或者玩家名稱,物品名填寫物品名稱,損傷值和數量詳請看give指令。物品數據標籤可以填寫自己本身的標籤,比如箱子的Item,附魔武器的ench等等。(注意,和give相反,前面是損傷,後面是數量,看好了再清除)

如果在聊天框單單輸入/clear的話,執行命令的玩家將會被清除所有物品。有keepInventory也會被強制執行。

舉個例子,比如清除所有玩家的鑽石,用

clear @a diamond

即可。鑰匙清除所有玩家的花崗岩,那就需要用

clear @a stone 1

建議填上損傷值,不然假如不填寫上面的1就會清除所有有關於石頭類型的物品。

數據標籤一般填寫方塊本身的數據標籤,比如

clear @a command_block 0 1 {BlockEntityTag:{Command:"1"}}

就會清除一個命令方塊里的命令為「1」的命令方塊。如果玩家持有兩個或者兩個以上並不會全部消除。

(注意:填寫數量-1也會清除所有該物品)

clear指令雖然用處很大,但是一定要慎用,避免造成一些麻煩。

3.enchant指令

用於給玩家的武器附魔。具體格式為

enchant玩家名稱附魔代碼附魔等級

enchant目前只能給玩家附魔。而且只能附魔玩家正在拿著的武器。比如

enchant @a 16 1

如果玩家手裡拿著的是劍系列武器,那麼就會給手裡拿著的劍附加鋒利屬性。不適合此武器的附魔屬性不會附在武器上。

和give不同的是,enchant用不著{id:xxx,lvl:xxx}的形式來執行附魔。

4.replaceitem指令

用於給現存的實體替換裝備或者給現存的方塊替換物品。現存的方塊包括所有帶有物品欄的方塊(如箱子等)。基本格式為

replaceitem模式方塊坐標/選擇器格子數據物品名稱數據值物品數據標籤

replaceitem共有兩種模式,分別是block以及entity。block是用於替換方塊的物品,而entity用來替換實體的物品。坐標和選擇器分別是block和entity的需求。格子數據是replaceitem特有的各自數據標籤。其餘的和give相同。

entity:基本格式為

replaceitem entity格子數據物品名稱數據值物品數據標籤

任何生物都有格子數據,比如殭屍利用slot.weapon可以給殭屍全部帶上武器(就像entitydata+Equipment)。

共有slot.weapon(武器欄)、slot.inventory(玩家背包/容器欄,需要指定,格子為0-26)、slot.armor.head(實體頭)、slot.armor.chest(實體胸甲)、slot.armor.legs(實體腿)、slot.armor.feet(實體腳)、slot.enderchest(末影箱格子,需要指定,格子為0-26)、slot.hotbar(玩家物品快捷欄,需要指定,格子為0-8)、slot.villager(村民背包欄,需要指定,格子數為0-7)、slot.horse.chest(驢/騾箱子,需要指定,如果指定普通的馬會失敗,格子為2-16)、slot.horse.saddle(馬鞍欄)、slot.horse.armor(馬甲欄)

上面的格子數據需要有些數據需要制定,要指定玩家的格子數,後面都要加一個「.格子數」,比如

replaceitem entity @e[type=Player] slot.inventory.21 command_block

這會將玩家的背包欄的第22格替換為命令方塊(0是第一格,所以要往後數一格)。

其他需要指定格子數的也按照這種格式即可。

在類似於馬鞍這樣的格子數據,只能用minecraft:saddle和minecraft:air之間替換,否則無效。馬鎧可以讓三種馬鎧交換這來弄以及minecraft:air。

物品數據標籤可以制定,比如

replaceitem entity @e[type=Zombie] slot.weapon diamond_sword 1 0 {ench:[{id:20,lvl:1}]}

這會把所有的現存殭屍都裝上帶火焰傷害的鑽石劍。

(某些即使看似無法使用武器的生物,比如末影人,裝上後攻擊也會有附魔的效果)

block:基本格式為

replaceitem block方塊坐標 slot.container.格子物品名稱數據值物品數據標籤

坐標處填寫要改變物品數據的方塊坐標,block只能使用slot.container.格子來執行命令。格子填寫數字,用來指定替換的格子(比如箱子是0-26,漏斗是0-4,發射器和投擲器是0-8,熔爐是0-2,釀造台是0-3等等)。其餘使用方法和entity一樣。

replaceitem要和entitydata區分,前者是改變生物/方塊物品欄,後者是改變實體本身NBT。

探測相關指令

1.testfor指令

mc中最常用的指令之一,用於探測一系列的東西。可以探測玩家、探測實體甚至探測玩家背包的東西(方塊用testforblock,這一點需要注意,兩者要區分)。最基本的形式是

testfor玩家/選擇器 testfor系列數據標籤

如果直接探測這個世界有沒有某個玩家,比如探測這個世界有沒有叫「End-Enderman」的玩家,就用

testfor End-Enderman

使用這個指令,如果這個世界有一個叫做「End-Enderman」的玩家,便會顯示「發現End-Enderman」並且命令方塊持續輸出,直到這個玩家不存在為止。一般testfor需要高頻持續探測一個東西得輸出。

或者運用選擇器,比如探測這個世界的所有玩家,用

testfor @a

即可。自從到了1.8後,運用@e的次數就越來越多了。一般用在UUID上。比如

testfor @e[type=實體名稱,name=名字]

type後面填寫實體的英文名稱,比如殭屍就填寫Zombie,掉落物就填寫Item等等。name填寫玩家起的名稱(比如用命名牌或者CustomName),如果想指定所有的這個種類那就把name去掉即可。最好用於高頻,在做RPG、機關、解密、冒險無論是哪個地圖都有著很大的幫助。(但是唯一缺點就是容易卡)當探測到特定的生物後,命令方塊就會有輸出。一般連接比較器來執行一系列的命令。(探測到會一直有輸出,直到探測不到)

還有一種形式,就是探測玩家在一個坐標的形式。

testfor選擇器[x,y,z,r]

選擇器就是@a、@e、@r、@p,x、y、z是坐標,在遊戲中按下默認的F3可以查看。r是半徑,比如1就是1格,2就是附近2格。舉個例子,比如

testfor @a[123,45,789,1]

高頻這個指令,當123,45,789這1格方塊的地方有玩家的時候,便會輸出信號。

一般testfor都是用於探測玩家在某個地方,之後連接比較器做出一系列效果。對於地圖是很有幫助的一個指令。

(自從execute出來之後貌似testfor就被冷落了些...因為execute可以省下一個比較器...但是testfor卻是有著不可磨滅的作用)

除了探測玩家,testfor還可以探測玩家背包里的物品。比如

/testfor @a {Inventory:[{id:"minecraft:xxx}]}

Inventory便是背包,而xxx處填寫要探測的物品名稱,之前說到過可用F3+h看到。比如我們要探測玩家背包里有沒有罌粟,那就用

/testfor @a {Inventory:[{id:"minecraft:red_flower"}]}

但是我們知道,物品可以疊加,那麼,要探測一定數量的物品,假如探測玩家背包里有沒有3個鑽石,那就用

/testfor @a {Inventory:[{id:"minecraft:diamond",Count:3b}]}

物品正常情況下疊加只能達到64。假如探測玩家背包里有沒有67個鑽石,用

/testfor @a {Inventory:[{id:"minecraft:diamond",Count:64b},{id:"minecraft:diamond",Count:3b}]}

以此類推,可以無限疊加下去,但是一定要注意括弧。

除了玩家背包里的物品,也可以探測玩家物品欄的9個物品。要用的是Slot數據標籤。

/testfor @a {SelectedItemSlot:格子數,Inventory:[{Slot:格子數b,id:"方塊名稱"}]}

格子數是一樣的。比如你需要探測第一個物品欄裝的是刷怪蛋,那就用

/testfor @a {SelectedItemSlot:0,Inventory:[{Slot:0b,id:"minecraft:spawn_egg"}]}

有人說這個指令必須要用到9個命令方塊,實際上那個是在完全不知道玩家物品會在哪個物品欄里的情況下。當知道玩家或者在解密(比如必須格子數正確才能觸發機關)的情況下一般用這個指令。(9個命令方塊就是每一個數字改一下,0-8即可)

如果探測的物品是附加了數據標籤的(比如用鐵砧改了名字),那麼就用

/testfor @a {SelectedItemSlot:格子數,Inventory:[{Slot:格子數b,id:"方塊名稱",tag:{display:{Name:"名字"}}}]}

總之,雖然execute類似的指令很方便,但是testfor容易理解,它的實用度還是非常高的。(testfor分數具體看scoreboard)

2.testforblock指令

和testfor性質相同,但是testfor一般用於探測玩家或者其他實體,而testforblock用於探測方塊。在做機關等地圖有很大的用處。最基礎的形式為

testforblock x y z方塊數據值數據標籤

x y z處填寫方塊所處位置的坐標,方塊名想要探測方塊的對應名稱(老方法查看,F3+h)。數據值這裡要特殊強調下,這個在其他指令總是不填,但是在testforblock最好要填上,也就是探測方塊狀態。不同的朝向、不同的方式(例如按鈕按下去的時候、箱子打開的時候等等)都會有不同的數據值。比如當箱子打開的時候,數據值就會改變,會變成和原來關上箱子不同的數據值,一旦關上又會變回原樣。所以數據值在testforblock得到了很大的應用。數據標籤填寫類似於give的標籤,不同物品會有不同的數據標籤,比如容器的Item等等。不填寫數據值依然可以用的,但是探測不了狀態,只能探測方塊的種類,比如隨便輸入一個坐標,

testforblock x y z chest

如果是箱子就會成功探測到,不是的話就會顯示位於x y z的方塊為xxx(預定:箱子)的形式。所以在想把玩家隨機tp到一個坐標時可以先用testforblock來查看這個坐標是否安全。但是這並無法探測方塊狀態。

假如要探測一個朝南的箱子,那就用

testforblock x y z chest 3

如果不確定它的數據值,可以隨便填寫一個數據值,當你執行命令的時候,如果探測到箱子,但是數據值不對,會提示"位於x y z的方塊擁有數據值xxx(預定:你所填寫的數據值)",xxx便是這個物品所有的數據值。當數據值和物品都對上了號時,便會提示"成功找到了位於x y z的方塊"並且會有信號輸出。

物品自己本身的數據標籤依然可以使用,如果想探測一個箱子里的物品那就用

testforblock x y z chest數據值 {Items:[{id:"minecraft:物品名",Damage:損傷值s,Slot:格數b,Count:數量b}]}

數據值之前說過,就是用於調整方塊的狀態,Item指令是方塊自帶的特殊標籤,凡是容器都帶有這個標籤。損傷值就是用於區分物品的種類(F3+h查看,give的圖片里有)格數說過,比如箱子第一格物品欄就填寫0,以此類推(數字b千萬不能丟掉,不然可能會造成指令有誤)。數量填寫方塊疊加的數量。這個指令可以用來做機關,本人推薦用非電路來配合類似的testforblock。

非電路類似於↓

一旦探測不到某個物品(物品狀態被改變)就會觸發後面一系列的指令。

如果想探測另一格子的物品,就用

testforblock x y z chest數據值 {Items:[{id:"minecraft:物品名",Damage:損傷值s,Slot:格數b,Count:數量b},{id:"minecraft:物品名",Damage:損傷值s,Slot:格數b,Count:數量b}]}

其他的和上面的講解相同,只是需要注意下括弧,以此類推。

建議學會了testfor再來學習testforblock,因為學會了testfor後這個就好理解了。自從出了execute探測方塊(detect)之後testforblock使用頻率也受到了影響。但是testforblock對於execute而言還是比較好理解的多,所以做陷阱還是比較方便些。陷阱例子請看此帖

(execute算是testfor和testforblock的進一層指令)

3.testforblocks指令

(建議先學會clone再來學習這個指令)和clone有些相似,用法也幾乎相同,但是不同的是,clone是複製並粘貼方塊,這個是檢測並比較一個區域的方塊是否相同(檢測一個區域的方塊可以用testfor的r半徑)。基本格式為

testforblock斜對角坐標斜對角坐標被比較區域模式

當兩個區域的方塊相同的話,那麼命令方塊就會有輸出。

由於是檢測方塊是否相同,所以用不著填寫物品名稱。

模式處填寫all或者masked。all是默認的,而masked和clone的masked相同,如果比較區域中有空氣,那麼空氣並不會被比較,所以即使兩個區域都是空氣也不會有輸出。

4.execute指令

(注:建議先學上面的testfor以及testforblock後再來學習這個指令,學會了這兩個指令就比較好理解了)

1.8常用的指令,一般用於探測實體或者方塊(帶高頻)。基本格式為

execute選擇器數據標籤執行指令

也是傳說中的炸服神指令。(你認為服主們會給你op來做這項任務嗎233)比如

execute @e[type=xxx] ~ ~ ~ summon PrimedTnt ~ ~ ~

(在xxx處填寫生物種類名稱。填寫殭屍就是在所有殭屍處生成點燃的TNT,填寫弓箭就是在所有弓箭處生成點燃的TNT)這個指令,在做冒險類地圖都是很常用的。上面的選擇器一般填寫@a、@e、@p、@r,而type處填寫的是實體名稱,用來探測實體。如果要區分實體,比如殭屍,數量比較多,假如要探測一隻叫做PlantVSZombie的殭屍並且要在這隻殭屍的地方生成雷電那就用

execute @e[type=Zombie,name=PlantVSZombie] ~ ~ ~ summon LightBolt ~ ~ ~

添加了name數據標籤。如果連續激活就會連續在這個殭屍處生成雷電,直到殭屍死亡。後面添加想要執行的命令。包括testfor等一系列的指令。

而且這個指令基本上都是要接觸高頻,所以使用請小心,稍有不慎容易對存檔造成傷害。除了探測實體執行命令,還有一種形式,

execute選擇器實體執行命令區域坐標 detect探測方塊坐標方塊名損傷值命令

這個形式比較繁瑣。除了探測實體,這個指令還需要探測方塊才能激活。比如高頻

execute @e[type=Slime] x y z detect x2 y2 z2minecraft:air 0 setblock ~ ~ ~ minecraft:redstone_block

這個指令的意思是:在xyz處放置一個紅石塊(注意啦:setblock後面最好不要添加坐標什麼的,比如~ ~1 ~,它是直接作用在x y z上的,等於x,y+1,z的坐標...以此類推,不要亂用)。先前必須要檢測到史萊姆以及x2,y2,z2為空氣方塊。兩種條件缺一不可,否則不會激活(將detect執行為xxx失敗)。這個在解密的地方很有用,比如放置一個東西就會觸發其他機關。在高頻這個指令之前,一定要檢查好,否則可能會造成意外的影響。

有一點要注意的是,execute探測成功一次後會一直保留信號,所以很多人在看電路結構的時候不知道是怎麼回事。這需要再用一次紅石信號來激活它,如果探測不到輸出信號才會消失。所以高頻(保證電腦)是最好的方法。(保留信號可以做出一系列的效果,可以參考上面的testfor)

execute還可以強制生物做一些事情,比如/say,這一點本來不能讓生物做到,但是用execute可以做到。

最簡單的比如

execute @e[r=5] ~ ~ ~ say I am HeroBrine

比如這個,r是半徑。指令意為探測玩家附近半徑為5的生物並且半徑為5內的生物說"I am HeroBrine"。

這個方法可以用來查看生物的UUID(下面會說到,可用在殭屍豬人的HurtBy和entitydata等)。

execute屬於testfor和testforblock進一步理解的指令,初期不是很好理解。建議先掌握testfor與testforblock再來學習execute指令。

計分板相關

1.scoreboard指令

mc中比較常用的指令之一(這是mc中範圍比較大的一個指令)。計分板屬於一種系統,通常用來團隊合作或者用來指定變數等等。這個指令可以說是變幻多端,用處極大。現在甚至可以把實體拉到隊伍來指定你想做到的效果。

比較常用的三大類,分別為objectives(指定判據/目標)、players(指定玩家/實體)、teams(指定隊伍)。

1.objectives

創造/刪除目標:基礎格式為

scoreboard objectives add創造目標名稱判據顯示名稱

目標計分版名稱自由填寫,填寫你想給這個目標起的名字。之後創建的目標就會以這個名字的形式來進行。判據處下面會解釋到,用來對玩家的行為作出判斷並且如果玩家的行為和輸入的判據符合便會進行加分。正常情況下如果不想進行任何判據這裡就可以填寫dummy(可以說是最基礎的判據)。顯示的名稱可以不填寫,不影響指令的效果。

顯示欄:

具體格式為

scoreboard objectives setdisplay顯示選項顯示名稱

顯示選項有sidebar、belowName、list等等。

sidebar:

如果讓顯示名稱有效,還必須要先添加側邊欄,否則這個名稱不會顯示。添加側邊欄可以用

scoreboard objectives setdisplay sidebar創造目標名稱

這個指令必須要和最初創造的目標名稱一致。

比如我們建一個名稱為「End」的目標,那麼要側邊欄顯示區就在後面的「創造目標名稱」填寫「End」。但是之後還需要一步才可啟動側邊欄,因為必須要給這個目標設定分數才可以。

scoreboard players set顯示名稱創造目標名稱分數

(注:players的方法請詳細看「players」的用法,要在任務欄顯示還必須要經過這步)這個顯示名稱和之前的顯示名稱不同。如果最初時不填寫那麼第一個顯示名稱就是默認創造出來的目標的名稱。

圖中的側邊欄就是在最初時創造目標是在顯示的名稱處填寫的是1,如果不填寫就會顯示目標名稱「End」。「擊殺End-Enderman」即是在players填寫的顯示名稱,用這個方法可以做出任務欄,比如指定一個任務,之後隊友們努力去完成等等。(任務欄的原理其實是添加一個假玩家,因為scoreboard可以填寫不存在的玩家。可以填寫存在的玩家名來隨時觀察此玩家的分數變化,這個可以用來作用在玩家上。當假玩家分數改變時紅色數字部分也會改變)如果想把側邊欄清除,那就用

/scoreboard objectives setdisplay sidebar

使用這條命令,將會把側邊欄清除。

list:

目標不僅僅可以創造一個,還可以創造多個目標。如果不記得自己都添加了哪些目標,可以用

/scoreboard objectives list

來查看計分板創造過的目標。

類似於這樣顯示目標的指令,不推薦在命令方塊里使用。在命令方塊里即使是默認的gamerule(比如commandBlockOutput等等)也不會顯示圖中這樣的形式,而是在命令方塊里顯示。並且如果有多個目標命令方塊在使用起來會很麻煩。

belowName:

在多人的時候,還可以直接在顯示選項處填寫belowName即可。用這個方法可以把顯示欄放到玩家的頭上。

顯示區也可以用list來進行顯示所有玩家的效果。基本格式為

/scoreboard objectives setdisplay list目標名

使用之後需要按下Tab即可顯示所有玩家。

移出這個效果的方式和清楚側邊欄相同。使用這個指令之後再按下Tab就不會再出現了。

(還有sidebar.team.顏色名稱,不過可以直接用option的color來改變)

remove:

如果想移除某個目標,那就用

scoreboard objectives remove創造目標名稱

使用這個指令即可將計分板所在的目標移除。

判據:用於改變一些加分的效果。基本格式為

scoreboard objectives add創造目標名稱判據

設置目標後,探測這個目標里的分數即可。(用testfor,一會會講到)如果想把目標分數設為0,那就用

scoreboard players set玩家名創造目標名稱 0

(都可作用於objectives和teams)

比如我們想把一個已經叫Death的目標設為0分,用

scoreboard players set @a Death 0

即可做到這個效果(一旦有分數對於某些指令而言可能會直接有輸出)

(下面是具體各種判據。雖然有一種說法叫「把玩家加進判據」,但是創造一個目標就可以直接探測了,默認為0,不用再設置)

dummy此判據用於當玩家不想指定在加入這個目標後執行一些操作會進行加分或減分時,那就用這個判據。因為在創造一個目標時必須要有一個判據。原版經常用,但是只有op許可權或者有權利作弊這樣的才能使用,沒有的只能使用判據trigger(也屬於一個指令)。trigger此判據用於當玩家不想指定在加入這個目標後執行一些操作會進行加分或減分時,那就用這個判據。在用於目標判據時,和dummy的效果相同。但是trigger沒有限制,任何人都可以使用。trigger自己也單獨屬於一種指令。(具體看trigger指令)這是使用trigger指令的前提。health此判據用於當玩家的血量改變時,玩家的分數就會改變。簡單來說,就是玩家挨揍了,分數就會減少,玩家加血了,分數就會增加。減血包括所有掉血的方式,加血包括飢餓度自然恢復、喝藥水等等。在判據處填寫health即可做到這個效果。(有一點要注意,用testfor @p[score_xxx_min=1]之後(高頻),即使減到不能再減了依然會有輸出(在這裡min屬於最小值)只要玩家在不死的情況下)這個判據無法直接用設置分數的方法改變,就像dummy一樣,所以在處理一些東西時比較麻煩。deathCount此判據用於當玩家死亡之後,死亡玩家的分數便會加一分。比如一個叫做End的玩家死了,如果有這個判據,他就會自動加一分。還可以用來做地圖等等。(有個遊戲的規則就是比誰死得更快,懂嗎...)在判據處填寫deathCount即可做到這種效果。playerKillCount此判據用於當玩家擊殺了另一個玩家時,他的分數便會加一分。只要玩家加進了這個目標殺死玩家就會加分。在判據處填寫playerKillCount即可做到這種效果(遊戲會自動判斷玩家死亡來源,如果來源於玩家便會加分)。totalKillCount此判據用於當玩家擊殺了任意一個生物時,他的分數便會加一分。只要玩家加緊了這個目標後殺死生物就會加分。在判據處填寫totalKillCount即可做到這種效果(有意會自動判斷生物死亡來源,即使不顯示。比如玩家用弓箭殺死生物就會加分,而骷髏就不可以。這個生物包括玩家,殺死玩家也可以加分)。

特殊判據

所謂特殊判據,就是可以指定東西的一種判據。比如achievement就可以指定特殊的成就等等。

achievement此判據用於當玩家獲得了某個指定成就時,玩家的分數便會加一。在判據處填寫achievement.成就名即可做到這個效果。具體成就名可以看achievement指令。(必須要加那個點,否則無效)比如之前加了一個名為"zombies"的目標,想將玩家得到「獲得木頭」這項成就時加分,那就用scoreboard objectives add zombies achievement.mineWood以下特殊判據依然可以按照這個形式來進行。此指令用於當玩家做了某些特定動作的時候,玩家的分數便會加一。在判據處填寫stat.動作名即可做到這個效果(不用加"."來選中特定的東西,直接就可以執行)。具體動作名共有:

stat.walkOneCm(判斷玩家行走)

stat.sprintOneCm(判斷玩家跑步)

stat.crouchOneCm(判斷玩家潛行)

stat.swimOneCm(判斷玩家游泳)

stat.flyOneCm(判斷玩家飛行)

stat.climbOneCm(判斷玩家爬行)

stat.diveOneCm(判斷玩家水中移動)

stat.horseOneCm(判斷玩家騎馬移動)

stat.pigOneCm(判斷玩家騎豬移動)

stat.minecartOneCm(判斷玩家坐車移動)

stat.boatOneCm(判斷玩家坐船移動)

stat.mobKills(判斷玩家擊殺生物)

stat.playerKills(判斷玩家擊殺玩家)

stat.damageDealt(判斷玩家造成傷害)

stat.damageTaken(判斷玩家手都傷害)

stat.jump(判斷玩家跳躍)

stat.fallOneCm(判斷玩家除跳躍外的掉落)

stat.drop(判斷玩家除死亡外的掉落)

stat.animalsBred(判斷玩家繁殖生物)

stat.fishCaught(判斷玩家釣魚)

stat.treasureFished(判斷玩家釣到寶藏)

stat.junkFished(判斷玩家調到垃圾)

stat.talkedToVillager(判斷玩家和村民說話)

stat.tradedWithVillager(判斷玩家和村民交易)

stat.recordPlayed(判斷玩家播放CD)

stat.itemEnchanted(判斷玩家附魔物品)

stat.flowerPotted(判斷玩家將花種在花盆)

stat.chestOpened(判斷玩家打開箱子)

stat.enderchestOpened(判斷玩家打開末影箱)

stat.trappedChestTriggered(判斷玩家觸發陷阱箱)

stat.craftingTableInteraction(判斷玩家打開合成台)

stat.noteblockPlayed(判斷音符盒發聲)

stat.noteblockPlayed(判斷玩家左擊音符盒)

stat.noteblockTuned(判斷音符盒被玩家調音)

stat.furnaceInteraction(判斷玩家打開熔爐)

stat.beaconInteraction(判斷玩家打開信標)

stat.hopperInspected(判斷玩家打開漏斗)

stat.dispenserInspected(判斷玩家打開發射器)

stat.dropperInspected(判斷玩家打開投擲器)

stat.brewingstandInteraction(判斷玩家打開釀造台)

stat.armorCleaned(判斷玩家卸下裝備架的物品)

stat.cauldronFilled(判斷玩家向煉藥鍋倒水)

stat.cauldronUsed(判斷玩家向煉藥鍋打水)

stat.cauldronFilled(判斷玩家吃蛋糕)

stat.bannerCleaned(判斷玩家洗旗幟)

stat.leaveGame(判斷玩家退出遊戲)

這些判據只按照最上面的格式把對應的判據複製到上面即可進行,並且如果玩家一直做相應的動作就會一直加分。(可以設回0分)以下判據需要再加對應的數據。

stat.breakItem此指令用於當玩家的工具因為損耗耐久度而被破壞時,玩家的分數就會加分。需要制定工具的種類,比如讓玩家的鑽石劍碎掉就加分,

scoreboard objectives add zombies stat.breakItem.minecraft.diamond_sword

這會添加一個名為zombies的目標,並且如果把玩家加進目標里,如果鑽石劍損壞便會給玩家加一分。minecraft.後面可以變為其他的物品名。(注意,minecraft.是必須要加的,否則會顯示「無效的目標準則類型」)

之後的都按照這種格式來進行。

stat.killEntity此判據用於當玩家殺死某個特定的生物時,玩家的分數會加一分。要和totalKillCount區分開來。要填寫stat.killEntity.生物名,比如如果想讓加進這個目標里的玩家殺死一隻苦力怕便會加一分,那就在後面用stat.killEntity.Creeper即可。要注意大小寫,不然也會顯示「無效的目標準則類型」。stat.entityKilledBy此判據用於當玩家被某個特定的生物殺死時,玩家的分數會加一分。一定要與stat.killEntity區分開來,以及不推薦填寫被動型生物。要填寫stat.entityKilledBy.生物名即可。和stat.killEntity用法相似。stat.useItem此判據用於當玩家對某個物品做了某些特定的動作時,玩家得分數便會加一分。比如將方塊放下,對除了實體工具消耗耐久度等等(比如剪刀,由於剪羊毛算對實體,所以即使剪刀消耗了耐久度就不會加分。所以如果想讓它加分還需要有stat.breakItem)。填寫stat.useItem.minecraft.物品名即可。(方塊放下:比如想放下一個石頭加分,那就用stat.breakItem.minecraft.stone即可,.minecraft一定要注意加)同時也可以指定損傷值,比如要放下花崗岩就會加分,那就用scoreboard objectives add目標名稱 stat.useItem.minecraft.stone 1 1stat.craftItem此判據用於當玩家在合成台里合成某個特定的物品時,玩家的分數便會加一分。需要和stat.craftingTableInteraction區分,前者是必須指定特定的,後者只要和合成台互動就會加分。填寫stat.craftItem.minecraft.物品名即可。stat.mineBlock此判據用於當玩家挖掘方塊並且破壞後,玩家的分數便會加一分。填寫stat.mineBlock.minecraft.物品名即可。注意這個判據跟是否掉落物品無關,也就是如果先前用過gamerule doTileDrops false也不會影響加分。teamkill此判據用於當玩家殺死某個顏色的玩家之後,玩家的分數便會加一分。不用指定這個隊伍的特定名稱,直接指定顏色即可(可用於幾個隊伍組成同盟之類的)。填寫teamkill.顏色名即可。具體顏色名請看tellraw一欄。

killedByTeam(被某個顏色的玩家殺死)我會以後慢慢補上(只有玩家才生效,用teamkill.顏色即可,實體加進隊伍里並不會生效),雖然標題上寫的是除了伺服器指令(畢竟是scoreboard這個大型指令的判據)。這裡給您帶來了不方便,抱歉= =

2.players

set:

players可以給特定的玩家設定分數。一般用到的是set,基礎格式為

scoreboard players set玩家名/實體名/選擇器目標/隊伍分數

(要和add區分)。玩家/實體/選擇器填寫玩家登錄名稱、實體用命名牌/CustonName等起的名稱、@a@e等等。目標/隊伍填寫它們的對應名稱,分數填寫數字。(add只能用來加分,用這個等於可以減分)分數可以用testfor來探測,當探測到一定數值的分數,就會有輸出(原理相同,一般用於高頻)。

testfor選擇器[score_目標名稱/隊伍名稱_min=分數]

比如我們要探測在一個叫TeamA的隊伍里的所有玩家分數為1,那就用

testfor @a[score_TeamA_min=1]

add:

players還可以給個別玩家或者實體(假玩家也可以)加分,用add即可。具體格式為

scoreboard players add玩家名目標/隊伍分數

分數填寫數字,填寫多少就給玩家加多少分(add的方式只有增加,-1不可以,只能用set或remove)

比如我們給一個在目標名為End,叫做End-Enderman的玩家加一分,用

scoreboard players add End-Enderman End 1

即可做到這種效果。

和目標不同,創建之後需要把玩家或實體加進來才能進行一系列的效果。

remove:

在使用player系列標籤時,除了可以加分,還可以直接減分。可以用remove做到。基礎格式為

scoreboard players remove玩家名目標/隊伍名分數

比如我們給一個叫「End-Enderman」的玩家,在「End」目標里減一分,

scoreboard players remove End-Enderman End 1

配合顯示欄,能直接看出玩家的分數變化。

(set可以直接設置,而add是加分,只加不減,這個是只減不加,需要區分)

list:

利用list可以顯示出玩家或者實體的分數。

scoreboard players list玩家/實體名

enable:

加分和減分不僅只有有作弊許可權的人可以使用(op),可以用enable給玩家加一個許可權。基礎格式為

scoreboard players enable玩家名目標名

用這個格式可以給玩家一個許可權。當按照這個格式給玩家許可權之後,玩家就可以使用trigger指令來改變自己的分數。(詳請看trigger指令處)

reset:

如果想重置某個玩家裡目標的分數,那就可以用reset。基礎格式為

scoreboard players reset玩家名目標名

使用之後總是會顯示重置了xxx玩家的xxx的分數。可以清除玩家特定的顯示欄(而不是直接將所有的顯示欄的東西清除)並且將玩家分數設為0。

operation:operation屬於計分板的一種系統。它可以用來計算玩家的分數,也就是起到了計算器的作用。operation運算系統的格式為

scoreboard players operation主要針對對象主要針對對象的目標名稱運算方式次要針對對象次要針對對象的目標名稱

舉個例子吧,假如主要針對對象分數為1,次要針對對象的分數為1,用的是減法,那麼用的第一次就會讓主要針對對象的分數減去次要針對對象的分數,也就是1-1=0,之後主要針對對象會變成運算的結果也就是0,而次要針對對象的分數不變。而如果再用一次(目前主要針對對象的分數為0,次要針對對象為1)的話,就會變為0-1=-1,也就是主要針對對象的分數會變為-1,而次要針對對象還是1。簡單來說,就跟計算器的方法相同。

兩個目標可以填寫相同的,也可以填寫不同的(之前需要先創造目標)。計算只會改變玩家所設置的目標分數,並不會改變玩家其他目標分數。比如玩家a是主要針對的對象,玩家b是次要針對對象,兩個玩家都在目標為c和d。比如用的是加法,a玩家目標c分數為1,目標d分數2,b目標c分數為1,目標d分數為0。如果a選的是目標c,次要b也是目標c,那麼就會由a玩家目標c的分數+b玩家目標c的分數,也就是1+1=2。這時玩家a目標c分數變為2,d目標的分數不會改變。如果a的目標選的是c,b的目標是選的是d,那麼就會由a玩家目標c的分數+b玩家目標c的分數,也就是1+0=1,這時玩家a目標c分數還是1,d目標的分數不會改變。所以可以跨目標執行運算。

運算方式有很多種(計分板和title不同,不需要再另執行命令,所以一些運算方式直接加上後綴"="即可),分別有

=相等,會讓主要針對對象的分數和次要針對對象的分數保持持平。

+=加法,會讓主要針對對象的分數和次要針對對象的分數加起來。

-=減法,會讓主要針對對象的分數減去次要針對對象的分數。

*=乘法,會讓主要針對對象的分數乘以次要針對對象的分數。

/=除法,會讓主要針對對象的分數除以次要針對對象的分數。

%=除法取余,取算出來的餘數。比如3÷2,餘數為1,那麼主要針對目標分數會變為1。也就是讓主要針對對象的分數除以次要針對對象的分數並且主要對象的分數會變為除出來的餘數。如果是整數那麼會變為0。

>如果目前主要針對對象的分數比次要針對對象的分數小,那麼主要針對對象的分數會和次要針對對象的分數持平。反之,如果主要針對對象的分數比次要針對對象的分數大,那麼分數不會有變化。

<如果目前主要針對對象的分數比次要針對對象的分數大,那麼主要針對對象的分數會和次要針對對象的分數持平。反之,如果主要針對對象的分數比次要針對對象的分數小,那麼分數不會有變化。

><幾種運算方式里唯一會改變次要針對對象分數的運算方式。用這個運算會將主要針對對象和次要針對對象的分數互換。

舉個例子,比如

scoreboard players operation a 1 += b 1

運算的格式略複雜,當使用成功時會顯示"操作已應用成功"。

3.teams

teams一般用來執行一些隊伍操作。它可以在計分板上添加一個隊伍並且可以讓這個隊伍做出許多效果。

add:此指令用於創造一個隊伍。這是要執行計分板上隊伍效果的前提。基本格式為

scoreboard teams add創造隊伍名稱顯示名

創造隊伍名稱處填寫你想創造隊伍的名字,顯示名原理和objectives相同,需要顯示欄才可運行。

join:此指令用於將實體加入一個隊伍從而起到可以給玩家或者實體執行一些命令的效果。基本格式為

scoreboard teams join隊伍名稱玩家/實體名稱

隊伍名稱填寫加入的隊伍(加入後執行其他命令可以填寫這個隊伍)。除了玩家,還可以將任何實體加入這個隊伍。

option:此指令用於給隊伍執行一系列的效果。基本格式為

scoreboard teams option隊伍名稱效果名稱效果狀態

下面是option的效果選項。

friendlyfire:此效果選項用於給隊伍開啟友好狀態。當一個隊伍開啟了友好狀態時,隊伍中的玩家亦不可互相傷害。基本格式為

scoreboard teams option隊伍名稱(使用add)friendlyfire true/false

true/false即為狀態,當填寫true的時候,這個隊伍便會開啟友好狀態。實體也可以開啟友好,具體看這個帖。

nametagVisibility:此效果選項用於對看到隊友頭上的姓名標籤做一系列的操作。具體格式為

scoreboard teams option隊伍名稱 nametagVisibility nametagVisibility的數據標籤

always:此數據標籤用於對玩家頭上的姓名標籤做出一直顯示的效果。在nametagVisibility的數據標籤處填寫always即可做到這種效果。

(由於是自己跟自己聯機,雙開mc,並且渣水準,所以只能湊活用了...)比如把一個叫behurt的隊伍做出這樣的效果

scoreboard teams option behurt nametagVisibility always

never:此數據標籤用於對玩家頭上的姓名標籤做出不再顯示的效果。在nametagVisibility的數據標籤處填寫never即可做到這種效果。

hideForOtherTeams:此指令用於對玩家頭上的姓名標籤做出其他隊伍的玩家看不到的效果。也就是使用後,其他隊伍的玩家不能再看到這個隊伍里玩家的姓名標籤,只有自己隊伍的玩家才能看見。在nametagVisibility的數據標籤處填寫hideForOtherTeams即可做到這種效果。

hideForOwnTeam:此指令用於對玩家頭上的姓名標籤做出自己隊伍的玩家看不到的效果。也就是使用之後,這個隊伍的玩家不能再看到自己隊伍玩家的姓名標籤,只有其他隊伍的玩家才可以看到。在nametagVisibility的數據標籤處填寫hideForOwnTeam即可做到這種效果。

deathMessageVisibility:此指令用於對玩家死亡時的死亡信息做出一系列的效果。具體格式為

scoreboard teams option隊伍名稱 deathMessageVisibility deathMessageVisibility的數據標籤

deathMessageVisibility和nametagVisibility的數據標籤基本相同。

always:此指令用於對玩家死亡時的死亡信息做出一直顯示的效果。在deathMessageVisibility的數據標籤處填寫always即可做到這種效果。

never:此指令用於對玩家死亡時的死亡信息做出不再顯示的效果(可以直接用gamerule showDeathMessages false)。在deathMessageVisibility的數據標籤處填寫never即可做到這種效果。

hideForOtherTeams:此指令用於對玩家死亡時的死亡信息做出對其他隊伍的玩家不顯示效果。也就是使用後,其他隊伍的玩家不能再看到這個隊伍里是否會有玩家死亡,只有自己隊伍的玩家才能看見。在deathMessageVisibility的數據標籤處填寫hideForOtherTeams即可做到這種效果。

hideForOwnTeam:此指令用於對玩家死亡時的死亡信息做出對自己隊伍的玩家不顯示效果。也就是使用後,自己的隊伍的玩家不能再看到是否會有自己隊伍的玩家死亡,而其他隊伍的玩家依然能看見。在deathMessageVisibility的數據標籤處填寫hideForOwnTeam即可做到這種效果。

seeFriendlyInvisibles:此指令用於對自己隊伍的玩家隱身效果做出一些操作。用這個指令,可以看到自己隊伍隱身的玩家。基本格式為

scoreboard teams option隊伍名稱 seeFriendlyInvisibles true/false

填寫true的效果:

當然,別的隊伍依然看不到隱身的玩家,自己隊伍的看到隱形的玩家是半透明的效果。

color:此指令用於改變玩家隊伍的顏色。當使用color之後,玩家的側邊欄以及用list等等都會變成玩家選擇的顏色。基本格式為

scoreboard teams option隊伍名稱 color顏色名稱

顏色名稱一共有16種,和tellraw相同,具體顏色請看tellraw部分的color。

由於可以直接用這種方法來進行變色效果,所以可以省略sidebar.team這一步驟。

list:此指令用於顯示所有隊伍里的玩家(實體也可以)。和其他list不同,只要加進來的玩家/實體就會顯示。基本格式為

scoreboard teams list隊伍名稱

使用這條指令可以把一個特定隊伍里的所有玩家(實體)。

(ps:這樣的不推薦在命令方塊里使用,直接在聊天框里輸入指令比較方便)

也可以不輸入隊伍名稱,這樣會顯示有多少隊伍並且有幾個玩家。

leave:此指令用於將某個特定的玩家或者實體離開某個隊伍。基本格式為

scoreboard teams leave玩家名稱/實體名稱

比較特殊的是,只要指定特定的玩家或者實體即可,並不用指定某個隊伍。

empty:此指令用於解散一個隊伍里的所有玩家以及實體。當使用這個指令之後,指定的隊伍將會移除所有的玩家和實體。但這並不代表刪除這個隊伍。基本格式為

scoreboard teams empty隊伍名稱

並不用指定玩家,只需要指定隊伍即可。

remove:此指令用於移除一個隊伍。當使用這個指令之後,指定的隊伍會被刪除。(注意:刪除隊伍後隊伍中的玩家和實體也會被全部解散)。建議慎用,因為當刪除這個隊伍後隊伍中的一些效果將不會再度存在(只能再創)。基本格式為

scoreboard teams remove隊伍名稱

計分板指令可能初期理解不太容易,但這些指令基本上都是固定的。

2.trigger指令

這個指令用於給目標加分。用法跟計分板的players set或add相同,但是不同的一點是,後者必須是管理員(有作弊許可權)才能使用,而前者任何人都可以使用。在這之前,首先要有作弊許可權的人給沒有作弊許可權的人一個許可權。(有作弊許可權的人直接使用trigger也可以,和players的最終效果沒有什麼區別)先用

scoreboard players enable玩家名稱創建目標名稱

具體可以看計分板處。trigger指令基本格式為

trigger創建目標名稱 set分數

這個指令可以用來設定玩家的分數,和players set相同。這之前必須要先創建目標才可以。(創建的目標判據必須為trigger,否則這個指令會提示不是觸髮型或者觸髮型無效等一系列話語)之後即可使用這個指令為目標設定分數分。

除了set,也有add指令(依然是只能加分)。基本格式為

trigger創建目標名稱 add分數

一定要注意在創建目標時加上trigger判據。

3.stats指令

說起來,這個指令就相當於計分板的高級判據。使用這個指令需要先創建一個計分板,比如創造一個目標。具體格式為

stats模式坐標/玩家名 set/clear stats判據目標名稱

一般用於探測命令輸出。當玩家執行一項命令成功之後,影響到的方塊/實體數量將會被即為一定數量的值。

模式有兩種,分別是entity和block。這裡一定要區分:如果是玩家用聊天框執行的命令,那麼就用entity;如果是玩家用命令方塊執行的命令,那麼就用block。如果玩家用命令方塊執行的命令卻使用的是entity,那麼不會stats即使顯示了將xxx(stats判據)的統計信息儲存在了xxx(隊伍名稱/目標名稱)的xxx(玩家名)上,命令成功了也不會顯示影響到的方塊/實體數量。所以一定要區分開來。

坐標是block模式用的,也就是指定成功執行命令的命令方塊坐標處。而玩家名稱是entity模式用的。set是執行命令時需要用的,也是比較基礎的。一般情況下要用到stats設置分數都需要用到set。而clear是用於清除統計信息。當使用完clear之後,玩家/方塊執行命令將不會再影響分數(clear不用添加隊伍名稱/目標名稱)。

stats判據:

AffectedBlocks:此判據用於區分命令影響的方塊數量。比如玩家使用setblock召喚出一個方塊,那麼分數就會自動設定為1。stats判據很高級,分數是自動設定,所以當玩家使用fill類似的指令時,比如使用fill ~ ~1 ~ ~ ~2 ~ redstone_block之後,那麼分數會自動設定為2,而把波浪號的2改為1之後,也就是之後填充1個紅石塊,那麼分數又會自動變為1。要注意好是命令方塊執行命令還是玩家用聊天框執行命令。

AffectedEntities:此判據用於區分命令影響的實體數量。比如玩家使用summon召喚出一個實體,那麼分數就會自動設定為1。性質與AffectedBlocks相同。

SuccessCount:此判據用於區分命令成功的次數。無論任何指令,只要成功輸出便會+1。

QueryResult:此判據用於區分詢問命令的結果。比如玩家在使用time指令時,得到的結果便會變為玩家得分數。

其中,有一個較特殊的效果,那就是用gamerule來實現對應加分效果(這裡感謝[size=1em]乾.坤指出丟下的部分)

和其他gamerule數據標籤不同的是,這個gamerule需要指定目標的值。

首先需要創造一個目標,並且將玩家加入到這個目標里(詳請看scoreboard,前者用objectives的add,後者用players的set),之後使用

stats entity玩家名稱/選擇器 set QueryResult玩家名稱(要進行對應分數變化的玩家)創造目標名稱

在這之後,就可以用gamerule直接來改變分數。具體用法為

gamerule創造目標名稱分數

分數由自己制定,之後直接使用一次(圖中為entity,會自動追蹤使用這個命令的玩家,否則用命令方塊需要指定block的坐標)

gamerule創造目標名稱

你就能發現,分數已經變為你指定的分數了。

AffectedItems:此判據用於區分命令影響的物品數量。比如玩家使用give給玩家一個物品,那麼分數就會自動設定為1。而當玩家用give給玩家更多的物品時,設定就會變得跟給予玩家的物品相同。

當然,使用這些指令,前提是必須要創建計分板才可以執行。

總之,stats步驟為創造計分板-設定玩家-建立stats變數-執行命令。一定要按照這個步驟來走。

玩家操作相關

1.xp指令

這個指令用於給玩家經驗值。在生存模式做出附魔等動作都會消耗一定量的經驗值。基本格式為

xp經驗值數量玩家名

經驗值數量填寫大於0的數字,意為給玩家多少經驗。(有人說後面的玩家名處只能填寫選擇器,實際上填寫玩家的登陸名也可以)

如果想給玩家一定等級的經驗值,用

xp經驗值數量L玩家名

L意為level,比如填寫1,就是讓玩家升一級

如果用level的形式,那麼就可以填寫負數來做到讓玩家掉級。比如

xp -1L @a

用這個指令可以給讓玩家掉一級。

(注意:只有level的形式才可以填寫負數,不然就會顯示「無法給玩家為負數的經驗值」)

2.gamemode指令

mc中最常用的指令之一,用來改變遊戲模式。如果玩家想先在創造里建一些東西後變生存(前提是必須要開作弊,初始沒開作弊的可以在開區域網時設置)就需要用到這個指令(和difficulty指令不同,difficulty的效果可以在設置欄里找到,而遊戲模式則不可以)基本格式為

gamemode模式

模式處填寫數字或者英文名稱。和give不同的是,升為1.8後數字依然可以在gamemode處運用。(比較方便)

輸入gamemode 0或者gamemode survival即可將遊戲模式轉換為生存模式;

輸入gamemode 1或者gamemode creative即可將遊戲模式轉換為創造模式;

輸入gamemode 2或者gamemode adventure即可將遊戲模式轉換為冒險模式;

輸入gamemode 3或者gamemode spectator即可將遊戲模式轉換為旁觀模式。

目前無法通過指令變為極限模式(為了防止損壞存檔)

還可以通過選擇器的方式來改變單個玩家的模式,比如

/gamemode 1玩家名

這個方法就可以指定特定的玩家,例如殭屍在兩個玩家當中,如果一個玩家突然變為生存,殭屍只會追逐變生存的玩家,而另一個玩家並不會改變模式亦不會受到攻擊性生物的干擾。

用法和difficulty相同。(defaultgamemode和gamemode的用法一樣,但是前者使用在伺服器)

3.achievement指令

此指令用於給予玩家成就。當玩家完成一系列的要求時,就會得到一些成就(就像論壇里得到勳章一樣)。利用achievement give可以跳過要求直接獲得一項成就。基本格式為

achievement give成就名玩家名

其中成就名為必填項,玩家名可以在聊天框中不填或者填寫選擇器等等(命令方塊屬於必填項)。如果不填(聊天框里)則會將這項成就授予執行命令的玩家。

成就名:一般格式是achievement.xxx。xxx共有openInventory(打開物品欄成就)、buildWorkBench(製作工作台成就)、buildPickaxe(製作鎬子成就)、buildSword(製作劍成就)、buildHoe(製作鋤頭成就)、buildFurnace(製作熔爐成就)、makeBread(製作麵包成就)、bakeCake(自作蛋糕成就)、buildBetterPickaxe(製作木鎬以外的鎬子)、bookcase(製作書架)、enchantments(製作附魔台)、overpowered(製作附魔金蘋果)、cookFish(製作熟魚)、acquireIron(製作鐵錠)、breedCow(繁殖一頭牛)、killEnemy(殺死攻擊生物)、killWither(殺死凋零)、ghast(用惡魂的火球殺死惡魂)、mineWood(獲得木頭成就)、killCow(獲得皮革)、diamonds(獲得鑽石)、blazeRod(獲得烈焰棒)、portal(進入地獄傳送門)、theEnd(進入末地傳送門)、theEnd2(返回末地傳送門)、snipeSkeleton(用弓殺死50步開外的骷髏)、onARail(做礦車移動到1000步以外的地方)、spawnWither(生成凋零)、potion(釀造藥水)、flyPig(騎豬讓豬受到2格傷害)、overkill(一擊造成9格心的傷害)、fullBeacon(造出三層信標,三層信標意為最高級信標)diamondsToYou(把鑽石扔出去,有實體/玩家撿走)、exploreAllBiomes(到了所有的生物群系)這幾種成就。achievement.是必須要填寫的前綴。

要注意如果授予一些高級成就(需要完成其他成就),那麼授予這個成就的同時也會授予其他成就。

也可以清除玩家的成就,那就需要用到take,基本格式為

achievement take成就名玩家名

使用這個指令可以做到消除成就的效果。

當清除一個玩家的高級成就時,其他成就並不會消失。

4.say指令

用於向玩家發出話語。可以制定特定的玩家或者運用選擇器等等,基本格式為

say發送的信息

say默認為對世界所有人發送信息,所以不用填寫選擇器。如果是在聊天框里發送的話,則會將來源玩家顯示出來。

相反,如果在命令方塊里發送就會默認為系統發送(顯示@)。也可以使用選擇器來顯示世界內所存在的玩家,比如

say發送的信息 @a

只是用這種方法不能用來查看玩家的UUID。

用選擇器顯示的玩家有點和suggest_command相像,可以在聊天框里點擊並且會自動輸入在聊天框里,可以用來發送信息。

如果是單純的聊天還是比較推薦直接在聊天框里發送文字。

5.me指令

用於發出一些動作話語。用這個指令可以顯示發出這個指令的玩家正在幹什麼(幹什麼的話語是玩家自定義的,和say、tellraw等性質相同)

基本格式為

me顯示話語

顯示話語和text差不多,填寫什麼就會顯示什麼。

和say與tellraw不同的是,這個指令直接就可以使用,不需要作弊許可權。(非op玩家依然可以用)

推薦在聊天框里使用這個指令,否則在命令方塊使用的話將不會顯示玩家,只會顯示默認為系統的@

6.tellraw指令

mc中最常用的指令之一。這個指令也屬於一個系統,和say、title非常相似。基本格式為

tellraw玩家 Json信息

比較基礎的Json信息(Json信息在這裡=數據標籤)就是text,用來向玩家說一段話。比如

tellraw @p {text:發現玩家}

玩家處可以填寫玩家登陸遊戲時的登錄名或者選擇器等等。(注:有人說這個必須要加引號,實際上引號可以省略,對於只是普通的話語可以不加,但是對於某些效果必須加上,否則指令無效)

和say相比,好處是省略了前面說話者的名字,也就容易讓人察覺到這句話是哪些人說的。

對比圖

(say另有用處,比如用來查看UUID)

text還可以用來清屏,
可以把文字接到下一行,如果要清屏那就用

tellraw @p {text:"

"}

(這種Json信息必須要加引號,否則無效,並且要注意符號的方向)

Json信息要求比較苛刻,有一些東西即使有一點點失誤都不會觸髮指令。(會顯示無效的Json信息)

text觸發的信息還可以給它加上效果,比如顏色。類似效果基本格式為

tellraw玩家 {text:xxx,Json效果數據標籤}

Json效果數據標籤

color此指令用於區分tellraw文字部分的顏色。在Json效果數據標籤處填寫color:xxx即可給文字加上顏色。默認為白色(注意大小寫,不然即使填的是正確的依然會為白色)。一共有黑色(black)、紅色(red)、深綠色(dark_green)、鑽石藍(aqua,tellraw特有顏色)、藍色(blue)、深紫色(dark_purple)、青色(dark_aqua)、灰色(gray)、深灰色(dark_gray)、深紅色(dark_red,tellraw特有顏色)、黃綠色(green)、黃色(yellow)、粉色(light_purple)、湛藍色(dark_blue,tellraw特有顏色)、橙色(gold)、白色(white)16種顏色。其中tellraw特有的顏色是無法用染料得到的顏色,只有用tellraw的color才能得出。bold此指令用於區分tellraw文字部分是否加粗。如果在Json效果數據標籤處填寫bold:true(之後的都要這麼填寫)即可給tellraw的文字加粗。(可與Json效果數據標籤聯用)italic此指令用於區分tellraw文字部分是否為斜體。如果在Json效果數據標籤處填寫italic:true即可讓tellraw的文字變為斜體。(可與Json效果數據標籤聯用)underlined此指令用於區分tellraw文字部分是否有下劃線。如果在Json效果數據標籤處填寫underlined:true即可讓tellraw的文字加上下劃線。(可與Json效果數據標籤聯用)strikethrough此指令用於區分tellraw文字部分是否有刪除線。如果在Json效果數據標籤處填寫strikethrough:true即可讓tellraw的文字加上刪除線。(可與Json效果數據標籤聯用)obfuscated此指令用於區分tellraw文字部分是否為一種特殊的亂碼文字。如果在Json效果數據標籤處填寫obfuscated:true即可讓tellraw的文字變為亂碼文字。文字必須為英文才有效。(由於電腦的某些問題使用這個代碼會對本人電腦造成一些影響,具體效果不太清楚,還請見諒)insertion此指令用於區分tellraw文字部分是否可以通過一些操作來做到在聊天欄里出現額外的文字的效果(和clickEvent加上/say有些相似)。方法為按下Shift+點擊,如果在Json效果數據標籤處填寫insertion:xxx即可出現不同的文字效果。注意這個文字同時按Shift和點擊後,只是在聊天輸入框里出現文字,並不是像text的文字效果那樣。insertion也可以加引號,當遇到空格類似的特殊符號需要加上。(可聯用)

這些Json數據標籤都可以加在一起,比如

tellraw @a {text:苦力怕來了,bold:true,strikethrough:true,italic:true,color:gold,underlined:true,insertion:"輸入kill @e有驚喜"}

另一個基礎的標籤為selector,用於顯示存在的玩家或實體的信息,和say的作用差不多。基礎格式為

tellraw玩家 {selector:選擇器}

選擇器處填寫@a、@p、@e、@r等(亦可加上type或name,就像testfor)。比如填寫@e,效果為

和say一樣,可以用來查看UUID用於entitydata指令等等。

在使用text的時候,有的人發現假如給text添加了顏色後,所有的文字都會有這種顏色。比如加粗,只能全部加粗而不能單個加粗,那就需要添加額外的Json數據標籤了。extra指正是用來添加額外的效果。基本用法為

tellraw玩家 {text:文字,extra:[{text:文字}]

第一個text後可以加一系列的效果,比如color等等,不過這隻對第一個text文字內容有效,所以給文字添加各種各樣的效果。比如

tellraw @a {text:Dangerous,color:red,extra:[{text:" Zombie",color:blue}]}

一定要注意括弧。extra裡面還可以接著加text,比如

tellraw @a {text:Dangerous,color:red,extra:[{text:" Zombie",color:blue},{text:" Coming",color:dark_blue}]}

另一個text里依然可以加Json數據標籤。(所以不用一直extra再套extra)

Event系列:Event用來給Json信息添加一些奇特的效果。具體格式為

tellraw玩家 {text:"文字」,clickEvent/hoverEvent:{action:clickEvent/hoverEvent的Json數據標籤,value:"{命令/效果}"

用來給tellraw的文字加一種點擊效果,有它存在指定字文字便可以被點擊,逐漸出現一系列效果。

clickEvent

run_command:此指令用於在點擊特定的文字後觸髮指令。基本格式為

tellraw玩家 {text:"文字",clickEvent:{action:run_command,value:"{命令/效果}"

就像execute一樣,後面可以執行其他命令,也就是點擊之後就會執行那個命令。任何命令都適合。比如

tellraw @a {text:"召喚術",color:red,clickEvent:{action:run_command,value:"/summon VillagerGolem ~ ~20 ~ {PlayerCreated:1}"}}

激活指令後點擊文字即可召喚出一隻默認為玩家創造的鐵傀儡。value後面加上任何指令以及其指令的數據標籤都可以。需要注意的是引號的位置,前引號要引在命令之前,後引號引在命令之後,而不能引在前面的Json信息標籤的後面,否則會顯示Json信息無效。

suggest_command:此指令用於區分當玩家點擊用來獲得value後面的文字並且自動複製到聊天欄里。用法和run_command相同。就像insertion。例如

tellraw @a {text:"點一下吧",color:aqua,clickEvent:{action:suggest_command,value:"kill @e"}}

(value也可以起到發一段話的作用。注意比如run_command必須要加那個斜杠,否則默認為發一段話,就像say一樣)

效果:

(可以恐嚇隊友2333,不加「/」的話kill @e只會當作玩家說的話發出去2333)

hoverEvent

當玩家將滑鼠指針懸停在制定文字上便會顯示玩家指定的效果。

show_text:此指令用於區分當滑鼠懸停在指定文字時是否會顯示另外一段文字。基本格式為

/tellraw @a {text:"文字",hoverEvent:{action:show_text,value:"另一段文字"}}

當滑鼠指針懸停在第一個「文字」的時候,便會出現另一段文字的內容。

show_item:此指令用於當玩家將滑鼠指針懸停在指定文字上會顯示一種物品(可以使添加過NBT的物品)。格式為

/tellraw @a {text:"文字",hoverEvent:{action:show_item,value:"{物品數據標籤}"}}

之後就會顯示這個物品的屬性和方塊代碼等等。舉個例子,比如

/tellraw @a {text:"滑鼠點這裡",hoverEvent:{action:show_item,value:"{id:command_block}"}}

就會在懸停在「滑鼠點這裡」的文字時會出現普通命令方塊的介紹。

小提示:id前面必須要加括弧,否則會顯示這樣↓

show_achievement:此指令用於當玩家將滑鼠指針懸停在特定文字出會顯示某個成就的信息(具體可以看achievement give一欄)。基本格式為

/tellraw玩家名 {text:"文字",hoverEvent:{action:show_achievement,value:"成就名"}}

注意:成就名處必須要填寫achievement.xxx,否則就會像顯示無效的物品一樣,出現了Invalid achievement)

舉個例子,比如

/tellraw @a {text:"您獲得了一個新成就",hoverEvent:{action:show_achievement,value:"achievement.killWither"}}

show_entity:此指令用於當玩家將滑鼠懸停在特定文字處會顯示某個實體的信息。此實體信息可以是假實體,完全由玩家創造。基本格式為

/tellraw @a {text:"文字",hoverEvent:{action:show_entity,value:"{type:實體類型,name:實體名稱,id:自擬的UUID或者介紹}"}}

就和summon一樣,只不過id處可以自擬。比如

/tellraw @a {text:"圖鑑326號",hoverEvent:{action:show_entity,value:"{type:Giant,name:進擊的巨人,id:巨人8791號}"}}

效果拔群

Json信息是學習命令初期不太好理解的。可以先學學其他的指令再來學習tellraw。

7.titile指令

和tellraw有些相似,但是不同的是,tellraw是顯示在聊天欄,而title是直接在玩家屏幕上的。

具體格式為

title玩家 title選項 Json信息

玩家填寫選擇器或者人名。而title選項要填寫title特有的方式。Json信息和tellraw相同,比如

title @a title {text:"123456789",color:red}

title選項:

title:此選項用於將玩家發出的話語顯現在屏幕上,也是title最基礎的選項。基本格式為

title玩家 title Json信息

之後填寫選項也按照這種格式來填寫。

和text非常相似,但是如果單單就是發出話語可以不加text。

subtitle:此選項用於給屏幕上的title文字添加一個副標題。需要注意這個指令需要和帶title選項的指令分別執行一次才會有效果。當執行完一次subtitle之後可以給下一次title添加副標題,基本格式為

tltle玩家名 subtitle副標題Json信息

分別執行一次後,會出現一次副標題(僅會出現一次)。比如執行一次

title @a subtitle {text:"來自末影人",color:red}

之後再激活

title @a title下雨了

效果為

clear:此選項用於將屏幕上的字幕清除。使用/title @a clear即可將屏幕上的字幕瞬間清除。由於一般直接title的字幕很短,所以一般都和times聯用。

times:此選項用於調整字幕存在的時間。和subtitle一樣,需要分別激活。基本格式為

title玩家名 times出現時間存在時間消失時間

普通的title如果注意看就能發現,屏幕上的文字是逐漸出現並且逐漸消失的,是有特效的。比如填寫

title @a times 20 20 20

再執行title,屏幕上的文字出現時間就會變為大約1秒,停留大約1秒,消失大約1秒。

這個選項有很大的用處,比如激活

title @a times 5 10086 5

再分別激活

title @a subtitle囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

title @a title十五字十五字十五字十五字

沒有作弊許可權的玩家會很抓狂的......(在屏幕上存在時間大約為504.3秒......)

reset:此選項用於重置所有title選項。使用之後已激活的subtitle和times都會恢復為默認狀態

其餘講解請看tellraw部分。

8.tell指令

用於給特定玩家一條信息,也就是私聊。基本格式為

tell玩家名稱內容

如上圖,白色的是發起tell的玩家,灰色的是被指定tell的玩家。也就是發起人會顯示"xxx→xxx",被發起人會顯示"xxx whispers"。

要注意只有伺服器才可以用這種指令。

9.msg指令

用於給特定玩家發一條信息。和tell有一些區別,基本格式為

msg玩家名稱內容

前者是發起msg的玩家的效果,後者是被選定msg玩家的效果。也就是發起人會顯示"我→xxx",被發起人會顯示"xxx→我"。

需要注意只有伺服器才可以用這個指令。

特效相關

1.particle指令

此指令用於在世界裡生成顆粒。顆粒幾乎無處不在,無論是攻擊生物或者對生物執行操作,還是天然的方塊等等,都有自己獨特的顆粒。甚至包括像遠古守護者鬼臉類似的,都算作顆粒。

基本格式為

particle顆粒名稱執行坐標顆粒坐標顆粒速度顆粒數執行模式

顆粒名稱包括crit(攻擊生物顆粒)、explode(生物死亡顆粒)、droplet(下雨顆粒)、snowshovel(下雪顆粒)、slime(史萊姆跳躍顆粒)、mobappearance(遠古守護者鬼臉顆粒)、note(音樂盒顆粒)、angryVillager(在村莊打村民的生氣顆粒)、happyVillager(產生村民的新交易選項、骨粉種植等顆粒)、heart(馴服生物顆粒)、portal(下界傳送門、末地傳送門、末影人瞬移顆粒)、depthsuspend(虛空顆粒)、reddust(紅石激活顆粒)、smoke(火把顆粒)、largeexplode(惡魂火球爆炸等小型爆炸顆粒)、hugeexplosion(末影龍死亡等大型爆炸顆粒)、splash(坐船、水在方塊上的掉落顆粒)、suspended(水下顆粒)、wake(釣魚顆粒,不會下落)、lava(岩漿顆粒)、dripLava(岩漿在方塊上的掉落顆粒)、largesmoke(火焰燃燒顆粒)、fireworksSpark(煙花顆粒)、spell(藥水顆粒)、witchMagic(女巫喝藥水顆粒)、instantSpell(治療/傷害藥水特殊顆粒)、magicCrit(附魔觸發顆粒)、townaura(菌絲顆粒)、enchantmenttable(附魔台顆粒)、flame(熔爐燃燒顆粒)、barrier(屏障顆粒)、snowballpoof(雪球碎裂顆粒)、footstep(腳印顆粒)幾種不用指定任何效果的顆粒,還有幾種需要指定id的顆粒。比如blockcrack,需要用

"blockcrack_物品id"來指定。比如

particle blockcrack_119 ~ ~1 ~ 1 1 1 0.0005 1500

可以指定損傷值,比如

particle blockcrack_1_1 ~ ~1 ~ 1 1 1 0.0005 1500

還有blockdust_物品名(物品破壞顆粒)、iconcrack_物品名(吃東西顆粒),按照上面的格式填寫即可。

這幾種指定物品名的顆粒也可以制定損傷值,比如

/particle iconcrack_351_1 ~ ~1 ~ 1 1 1 0.00001 2000

執行坐標是顆粒基礎的坐標,會在玩家指定的地方產生效果。而顆粒坐標是在前面執行坐標的基礎上擴散的坐標。比如填寫1 0 0,顆粒會向x為1的地方擴散,而填寫0 1 0,效果是摞起來的,填寫0 0 1,顆粒會向著z為1的地方擴散。填寫不同的坐標則會產生不同的擴散效果。

顆粒速度填寫數字,不僅決定了顆粒移動的速度,也決定了顆粒存在的時間。顆粒數填寫數字,填寫多少就會有多少個這樣的顆粒,如上圖,假如填寫1就不會有這麼多的生氣標誌,而只會出現一個生氣標誌。(遠古守護者鬼臉顆粒比較特殊,填寫越多顏色越重,但不會增加鬼臉數量)需要注意數量最好不要填的太多,填寫一萬以上就很容易卡,甚至會對遊戲存檔造成損壞。

執行模式有anything和force。anything為默認的模式,而使用force可以讓在顆粒16格外的玩家看到。任何顆粒(包括遠古守護者的鬼臉顆粒),只有16格的視野,16格以外不能看到。而填寫force可以避免。

粒子效果除了可以用作裝飾,還可以迷惑、干擾玩家(比如岩漿、鬼臉等等),用處廣泛。

2.playsound指令

此指令用於向玩家播放在mc里存在的音效。基本格式為

playsound聲音名稱玩家名稱

聲音名稱填寫playsound自己本身擁有的聲音,比如

playsound mob.zombie.say @a

便會像全體玩家播放殭屍空閑音效。音量默認為生物自身的音量。但是可以指定。基本格式為

playsound聲音名稱玩家名稱播放坐標音量音調

播放坐標是聲音坐標的地點,如果不指定玩家聽到的是正好的聲音。當播放的聲音超過了半徑約128格以外,玩家就不會再聽到指定的音效了(不包括128,超過了128之後就會顯示"玩家離得太遠了,無法聽到這聲音")

音量是播放音量的大小,比如

playsound mob.endermen.stare @a ~ ~ ~ 15

但是效果非常不明顯,而坐標可以彌補這一點。而音調是音調的高低,比如

playsound mob.ghast.scream @a ~ ~ ~ 3 0.5

會像玩家播放很低的惡魂尖叫聲音。

下面是所有生物的聲音。

全生物聲音一覽

殭屍系列:

mob.zombie.hurt(殭屍挨打)、mob.zombie.death(殭屍死亡)、mob.zombie.say(殭屍空閑)、mob.zombie.step(殭屍走路)、mob.zombie.remedy(殭屍受治療)、mob.zombie.metal(未引進的聲音)、mob.zombie.infect(村民變殭屍)、mob.zombie.unfect(殭屍變村民)、mob.zombie.wood(殭屍砸門)、mob.zombie.woodbreak(殭屍砸壞門)。

骷髏/凋零骷髏系列:

mob.skeleton.death(骷髏死亡)、mob.skeleton.say(骷髏空閑)、mob.skeleton.hurt(骷髏被打)、mob.skeleton.step(骷髏腳步)。

苦力怕系列:

mob.creeper.say(苦力怕挨打)、mob.creeper.death(苦力怕死亡)。

末影人系列:

mob.endermen.hit(末影人挨打)、mob.endermen.death(末影人死亡)、mob.endermen.idle(末影人空閑)、mob.endermen.scream(末影人激怒)、mob.endermen.portal(末影人瞬移)、mob.endermen.stare(末影人嚎叫)。

蜘蛛系列:

mob.spider.say(蜘蛛挨打、空閑)、mob.spider.death(蜘蛛死亡)、mob.spider.step(蜘蛛腳步)。

史萊姆系列:

mob.slime.attack(史萊姆攻擊)、mob.slime.small(大史萊姆挨打/死亡/空閑)、mob.slime.big(小史萊姆挨打/死亡/空閑)。

蠹蟲系列:

mob.silverfish.hit(蠹蟲挨打)、mob.silverfish.kill(蠹蟲死亡)、mob.silverfish.say(蠹蟲空閑)、mob.silverfish.step(蠹蟲腳步)。

殭屍豬人系列:mob.zombiepig.zpighurt(殭屍豬人挨打)、mob.zombiepig.zpigdeath(殭屍豬人死亡)、mob.zombiepig.zpig(殭屍豬人空閑)、mob.zombiepig.zpigangry(殭屍豬人激怒)。

惡魂系列:

mob.ghast.scream(惡魂挨打)、mob.ghast.death(惡魂死亡)、mob.ghast.moan(惡魂空閑)、mob.ghast.charge(惡魂扔火球之前)、mob.ghast.fireball(惡魂火球)、mob.ghast.affectionate_scream(惡魂空閑2)。

烈焰人系列:

mob.blaze.hit(烈焰人挨打)、mob.blaze.death(烈焰人死亡)、mob.blaze.breathe(烈焰人空閑)。

地獄史萊姆系列:

mob.magmacube.big(地獄大史萊姆挨打/死亡/空閑)、mob.magmacube.small(地獄小史萊姆挨打/死亡/空閑)、mob.magmacube.jump(地獄史萊姆跳躍)

守衛者系列:mob.guardian.hit(守衛者在水裡挨打)、mob.guardian.land.hit(守衛者在陸地挨打)、mob.guardian.death(守衛者在水裡死亡)、mob.guardian.land.death(守衛者在陸地死亡)、mob.guardian.attack(守衛者攻擊)、mob.guardian.idle(守衛者空閑)、mob.guardian.land.idle(守護者在陸地空閑)mob.guardian.flop(守護者跳躍)。

遠古守護者系列:

mob.guardian.elder.hit(遠古守護者挨打)、mob.guardian.elder.death(遠古守護者死亡)、mob.guardian.elder.idle(遠古守護者空閑)。mob.guardian.curse(遠古守護者加疲勞)。

狼系列:

mob.wolf.hurt(狼挨打)、mob.wolf.death(狼死亡)、mob.wolf.bark(狼空閑)、mob.wolf.panting(狼空閑2)、mob.wolf.growl(狼激怒)、mob.wolf.howl(狼嚎叫)、mob.wolf.shake(狼抖落水)、mob.wolf.whine(被馴服的狼祈求食物)、mob.wolf.step(狼走路)。

鐵傀儡系列:

mob.irongolem.hit(鐵傀儡挨打)、mob.irongolem.death(鐵傀儡死亡)、mob.irongolem.throw(鐵傀儡攻擊)、mob.irongolem.walk(鐵傀儡走路)

末影龍系列:

mob.enderdragon.hit(末影龍挨打)、mob.enderdragon.end(末影龍死亡)、mob.enderdragon.growl(末影龍空閑)、mob.enderdragon.wings(末影龍飛行)。

凋零系列:

mob.wither.spawn(凋零生成)、mob.wither.hurt(凋零挨打)、mob.wolf.death(凋零死亡)、mob.wither.idle(凋零空閑)、mob.wither.shoot(凋零射擊)。

村民系列:

mob.villager.hit(村民挨打)、mob.villager.death(村民死亡)、mob.villager.idle(村民空閑)、mob.villager.haggle(打開交易)、mob.villager.yes(村民滿意)、mob.villager.no(村民不滿意)。

普通馬系列:

mob.horse.death(馬死亡)、mob.horse.hit(馬挨打)、mob.horse.idle(馬空閑)、mob.horse.breathe(馬呼吸)、mob.horse.soft(馬走路)、mob.horse.wood(被馴服的馬走路)、mob.horse.gallop(馬跑步)、mob.horse.angry(騎馬/馴服馬失敗)、mob.horse.armor(馬穿裝甲)、mob.horse.leather(馬穿鞍)、mob.horse.jump(馬跳躍)、mob.horse.land(馬落地)。

驢/騾系列:

mob.horse.donkey.hit(驢/騾挨打)、mob.horse.donkey.death(驢/騾死亡)、mob.horse.donkey.idle(驢/騾空閑)。mob.horse.donkey.angry(騎/馴服驢/騾失敗)。

殭屍/骷髏馬系列:

mob.horse.zombie.death(殭屍馬死亡)、mob.horse.zombie.hit(殭屍馬挨打)、mob.horse.zombie.idle(殭屍馬空閑)、mob.horse.skeleton.death(骷髏馬死亡)、mob.horse.skeleton.hit(骷髏馬被打)、 mob.horse.skeleton.idle(骷髏馬空閑)。

豹貓/貓系列:

mob.cat.hitt(豹貓/貓挨打/死亡)、mob.cat.meow(貓空閑)、mob.cat.purreow(貓空閑2)、mob.cat.purr(貓吃魚)、mob.cat.hiss(貓的嘶嘶聲)。

豬系列:

mob.pig.say(豬挨打/空閑)、mob.pig.death(豬死亡)、mob.pig.step(豬走路)。

羊系列:

mob.sheep.say(羊死亡/空閑)、mob.sheep.shear(羊被剪)、mob.sheep.step(羊走路)。

牛/哞菇系列:

mob.cow.hurt(牛/哞菇挨打/死亡)、mob.cow.say(牛/哞菇空閑)、mob.cow.step(牛/哞菇走路)。

雞系列:

mob.chicken.hurt(雞挨打/死亡)、mob.chicken.say(雞空閑)、mob.chicken.plop(雞下蛋)、mob.chicken.step(雞走路)。

兔子系列:

mob.rabbit.death(兔子死亡)、mob.rabbit.hurt(兔子挨打)、mob.rabbit.idle(兔子空閑)、mob.rabbit.hop(兔子跳)

蝙蝠系列:

mob.bat.hurt(蝙蝠挨打)、mob.bat.death(蝙蝠死亡)、mob.bat.idle(蝙蝠空閑)、mob.bat.loop(蝙蝠飛行)、mob.bat.takeoff(蝙蝠收起或開始飛行)。

(聲音很多,不僅僅是生物的聲音,甚至還有環境等聲音,在這裡不一一例舉了)

世界設定相關

1.time指令

用於設定玩家世界的時間。玩家世界的時間如果在不用gamerule的情況下,會不斷的往下延續下去。利用time即可設定時間,基本格式為

time set時間數/名稱

時間數處填寫數字,比如填寫4086,時間就會自動跳到4086處(臨近中午)。

而名稱則是填寫day和night。當填寫day的時候,時間會默認為1000(早上太陽升起之後)

而填寫night的時候,時間會默認為13000(晚上日落之後)

(注:激活後並不是馬上會變更世界時間,而是會頓一下再變更)

也可以直接用add來加時間(就像計分板一樣),基本格式為

time add時間數

激活後會顯示「將時間調快了xxx」,一般用於不確定時間後使用。

建議先用doDaylightCycle把時間延續關掉再設定時間,這樣用起來比較方便。

還有一種形式,可以詢問現在的時間,那需要用到query,基本格式為

time query詢問種類

詢問種類共有兩種,分別為gametime和daytime。如果填寫daytime則會報出玩家所在世界的時間,如果填寫gametime則會報出玩家在遊戲待的時間。

2.toggledownfall指令

此指令用於切換世界的天氣。這一點要和weather區分,weather是用來指定天氣並且可以指定時間,而toggledownfall是切換到和玩家所在相反的天氣。格式和help一樣,只輸入這個名稱即可啟動指令。

/toggledownfall

當玩家所在世界為晴天,便會切換到雨天或者雷暴天;當玩家所在世界為雨天或者雷暴天,玩家所在世界會切換為晴天。如果之前用weather指定過某個天氣的時間,此指令無效。即使會顯示「天氣已切換」依然不會執行命令。

3.weather指令

這個指令用於改變玩家所在世界的天氣。世界的天氣一般都會隨機改變,所以突然下雨或者突然打雷會非常煩人(亮度太低,影響建築等工作),基本格式為

weather天氣指令標籤時間

天氣指令標籤有三種,分別是clear、rain、thunder(晴天,雨天還有雷暴天,其中雨天如果在雪原就會變為下雪),時間處填寫數字,為指定天氣的持續時間。這項可以不填,如果不填時間就是隨機的。舉個例子,

weather clear

如果填寫數字的話,那麼這個天氣的持續時間一定按照這個數字來走,比如在上面那個指令後面填寫1,那麼當1秒後玩家所在世界的天氣一定會改變(下雨/下雪或雷暴)。指定時間也可以讓你的世界保持一個天氣很久,比如填寫時間數字的上限

weather clear 1000000

數字最多填寫1000000,摺合起來大約在這個世界玩277個小時才會下雨/下雪或者雷暴,所以不用擔心。(1.6.4之前原版獲得閃電苦力怕的捷徑,不用再苦等雷暴,但是1.7之後可以直接用summon)

注:在沙漠生物群系用weather設定的天氣也不會下雨和雷暴,只是會降低亮度而已。

commandBlockOutput此數據標籤用於區分在用命令方塊時是否會給一個提示"比如,已成功召喚實體「」方塊已放置「等等。(不算weather、gamemode等指令的提示,這些提示會用到另一指令)默認為true,如果在啟動/禁用處輸入false即可禁止命令方塊的提示(想弄回來就再變為true)。這個一般在做地圖時會用到,因為某些高頻(summon、setblock等等)會不停的提示,基本上處於刷屏的狀態,所以最好把這個提示關掉。(如果用到命令方塊,不關掉容易被人察覺到有命令方塊的存在)要注意大小寫,當C大寫的時候將不會執行命令。doDaylightCycle此數據標籤用於區分玩家所在主世界(因為地獄和末地的時間基本上不會對玩家的活動造成影響)時間是否繼續流動。如果啟動/禁用處輸入false即可將時間靜止。因為到晚上會對視覺造成很大的影響(夜視藥水太麻煩),所以對玩建築的玩家會造成一些影響(也可以配合time set調到晚上,有些地圖需要變為晚上)。一般的建築地圖最好都要用上這個指令。(PE創造是默認靜止時間的)doTileDrops此數據標籤用於區分方塊是否會掉落物品。在啟動/禁用處輸入false即可關閉方塊被破壞時的掉落(不是實體掉落)。一般在挖掘或破壞一個方塊之後,方塊自身會掉下來(包括用附魔鎬得到的特殊物品),使用後即可關閉。doEntityDrops此數據標籤用於區分實體方塊是否會掉落物品。在啟動/禁用處輸入false即可關閉實體掉落物。關閉後,類似於船、礦車這樣的實體方塊被破壞後將不會再掉落物品本身。doFireTick此數據標籤用於區分火是否會因為某些方塊的原因而蔓延或者自己熄滅。在啟動/禁用處填寫false即可禁止火自己熄滅並且不會蔓延。效果就像地獄岩一樣,如果不是玩家的影響(比如手動熄滅或者用水桶),火不會自然熄滅(包括下雨),並且在森林之類的地方起火併不會蔓延。(比如木質房子,運用了之後就不用擔心被燒光,非常實用。但是玩家需要手動滅火)mobGriefing此數據標籤用於區分怪物是否會破壞東西或者撿起東西等等。一旦把這個指令關閉將會影響許多生物。在啟動/禁用處填寫false即可禁止怪物破壞會撿起東西。被影響的生物有:苦力怕(關閉後爆炸不會再破壞方塊,但是依然會對玩家造成傷害),末影人(關閉後不可以再搬一系列的東西,但是可以用carried標籤來生成搬東西的末影人),殭屍(關閉後將不能在摧毀門,這一點也可以用CanBreakDoors標籤,並且殭屍不可在主動撿起裝備,但可以用Equipment),凋零(關閉後不可以再破壞方塊),惡魂(關閉後不可再破壞方塊),羊(關閉後吃草草皮不會消失),村民(關閉後不可以再撿起東西。這個比較推薦,因為如果你扔了像小麥、麵包這樣的東西給村民,他們會無情的撿起來...而不像殭屍打死後還會掉落撿起的物品...除了這個,關閉之後村民不會再收割),兔子(關閉後不可再破壞蘿蔔),骷髏/凋零骷髏(關閉後不可再撿起物品),殭屍豬人(關閉後不可再撿起物品)。doMobLoot此數據標籤用於區分生物是否會掉落物品。在啟動/禁用處輸入false即可關閉實體掉落物。開啟後,當一個生物/實體被殺死後,將不會掉落任何物品。(包括玩家、經驗球)需注意這個指令會影響到所有實體的掉落物,比如殭屍的腐肉,開啟後殭屍將不會再掉落任何物品。一般在做RPG的時候會用到這個指令。需要區分下doMobLoot(生物)、doTileDrops(方塊)、doEntityDrops(實體方塊)三者的區別。naturalRegeneration此數據標籤用於區分玩家是否會自然恢復體力。當玩家的飽食度滿的時候,玩家會自然恢復體力。默認為true,在啟動/禁用處填寫false即可禁止玩家在飽食度滿的時候自然恢復體力。這個指令在生存里不推薦使用,不然就像手機版的非和平模式一樣。(手機版生存可以切換模式,如果不調和平不會自然回血,但是這個數據表隻影響飽食度自然恢復,不影響藥水效果)doMobSpawning此數據標籤用於區分玩家所在的世界是否會刷怪。在啟動/禁用處填寫false即可讓這個世界不再刷怪。需注意一旦關閉這個指令,不僅是攻擊性生物,包括中立型和友好型在內所有的生物亦不會主動生成。所以一定要注意。此數據標籤不會影響自己手動生成的效用性生物、刷怪蛋以及刷怪籠刷出的生物。一般在做地圖地圖的時候用到(一般闖關類地圖都會有特定的怪,為了防止突然刷怪破壞遊戲效果)keepInventory此數據標籤用於區分玩家死後是否會掉落物品。在啟動/禁用處填寫true即可讓玩家死亡後不會掉落物品(默認false)。當玩家出生後物品欄的物品依然保留原樣。由於很多人在剛開始玩生存的時候,一旦死亡就非常不好找掉落物品(比如挖礦突然被怪物襲擊),所以最好用到這個指令。(箱子也並非百分百安全,如果是伺服器的話...所以建議先開啟這個數據標籤)sendCommandFeedback此數據標籤用於區分玩家的對話框是否會顯示一些特殊命令的提示。比如gamerule本身的"遊戲規則已更新",time的"將時間設為xxx"等等。在啟動/禁用處填寫false即可禁止提示這些數據標籤的執行效果。不推薦直接使用,不然在遊戲期間可能不太方便。禁用後像"未知指令"或者直接輸入gamerule和對應名稱時查看的啟動/禁用效果的提示都會繼續提示。showDeathMessages此數據標籤用於區分玩家死亡時是否會有提示。在啟動/禁用處填寫false即可做到當玩家死亡時不會有任何提示的效果。每當玩家死亡總會給一些提示,比如"xxx因為怎麼怎麼被xxx殺死了"(舉個例子,被不同生物殺死會有不同的死亡提示)。需注意當填寫false後除了玩家,玩家馴服的可控制生物(狗或貓,不包括馬)也會受到影響。(當殺死玩家已有名字的狗或者貓被殺死時總會提示"xxx[寵物姓名]被xxx[包括玩家]怎麼怎麼了",一旦關閉就不會再顯示了)randomTickSpeed此數據標籤用於區分玩家所在世界一些方塊的隨機性的活動概率。隨機性的活動類似於火蔓延、火熄滅、冰融化、水結冰、耕地乾裂或者濕潤、植物生長(想讓小麥等農作物生長的快一點可用這個數據標籤)等隨機出現的活動。和其他數據標籤不同的是,需要在在啟動/禁用處填寫數字。默認為3,也就是玩家所在的已載入區域每一個遊戲刻都會有三個方塊會啟用這個隨機性活動(每秒會有20個遊戲刻,也就是每秒會有60個方塊會啟用這樣的活動)。數字越高,幾率越大。另外gamerule還可以跟stats聯用來製作一種加分的方法。詳請請看stats一欄。

5.difficulty指令

此指令用於改變玩家遊戲時的難度。和gamemode用法非常相似。基本格式為

difficulty難度

和gamemode一樣,要輸入對應的數字或者對應名稱。

輸入difficulty 0或者difficulty peaceful即可將遊戲難度轉換為和平難度;

輸入difficulty 1或者difficulty easy即可將遊戲難度轉換為簡單難度;

輸入difficulty 2或者difficulty normal即可將遊戲難度轉換為普通難度;

輸入difficulty 3或者difficulty hard即可將遊戲難度轉換為困難難度。

說實話,在原版這個指令有些雞肋。因為按Esc再設置處都能自主調節遊戲難度。

具體用法和gamemode相同。也可以通過選擇器的方法改變某個玩家的難度。

6.seed指令

由於某些原因請看截圖

/seed

7.help指令

此指令用於幫助玩家查看其他的指令。當玩家忘記了命令格式或者想看看沒有見過的命令什麼的,就需要用到help指令。help單獨使用就能成功。基本格式為

help頁數

也可以不指定頁數直接輸入/help,默認為幫助欄的第一頁。(「/」輸不輸都無所謂,只是很多人都習慣直接在聊天欄輸入。如果聊天欄不加「/」默認為打一行字,在發送的時候會把這段話發出去而不是觸發一個指令)

想看第二頁的話輸入

/help 2

即可。2也可以改變為其他數字,範圍為1-7,每一頁都有不同的指令。運用這個指令就不用再費盡心思來搜集指令了。

沒有作弊許可權的玩家也可以使用這個指令,只不過顯示的是另一個頁面。

8.spawnpoint指令

用於設置玩家出生點。具體格式為

spawnpoint玩家名稱坐標

此方法亦可配合選擇器來做到玩家想做到的效果。

如果直接在聊天框輸入/spawnpoint(注意,是聊天框,不是命令方塊)便會將這個發出這項指令的玩家坐標設為此玩家呆在的坐標處。

(x,y,z的數值不能為負數,也就是意味著不能出生在虛空)

9.setworldspawn指令

這個指令和spawnpoint非常相似,但是這個指令和前者區別在於這個是用來設置世界出生點/出生區塊。基本格式為

setworldspawn坐標處

因為是直接設置在某個地點,所以不用加上玩家。

當設置了世界出生點後,指南針將會指向這個地方(玩家最初始出生點)。玩家設置的出生點突然被改變(比如床被破壞或被方塊擋住),那麼玩家將會出生在這裡。一般用於伺服器,當設置世界出生點後開服,加入的玩家就會出生在這裡。當然,setworldspawn更主要的用處適用於設置出生區塊。玩家最初始出生的地點會被當做出生區塊的中心點,也就是圍繞著這個點附近都是出生區塊。出生區塊會一直載入,無論玩家在哪個地方。比如要激活某些命令方塊,如果玩家離得太遠就會導致這片區域不被載入從而激活不了命令方塊。而將命令方塊放在出生區塊附近便可以避免這種情況。和使用spawnpoint的頻率沒有任何關係。

如果直接使用,便會默認為將玩家所在的坐標處設為出生區塊的中心點。

地圖編輯相關

1.setblock指令

比較常用的指令之一,這個指令可以用來放置方塊,基本格式為

setblock x y z方塊名稱損傷值模式

和自己手動放置方塊不同的是,比如刷怪籠、蘑菇方塊(不算用精準採集的),原版中無法再創造背包界面得到的物品,用setblock都能得到。比如

setblock ~ ~1 ~ minecraft:red_mushroom_block

即可在上面1格處放置一個紅色巨型蘑菇方塊。用setblock弄出的方塊方塊會被強制放置,即使有實體會強制放置(如果是手動放置有生物在你想放置的地方的話是放置不了的)。

老樣子,方塊名稱可以用F3+h進行查看。

在這裡,這個數據值我需要強調一下。這個代表方塊的狀態,比如方向,或者像按鈕在按進去這樣的狀態。數據值填寫0-15,如果不填即為默認一種數據值。比如按鈕,不同的朝向(默認為你放置方塊的正面)就會有不同的狀態,按下去也會有不同的數據值,這個也可用在testforblock。甚至召喚出各種神奇的東西,比如

setblock ~ ~1 ~ vine 15

這個指令則會召喚出一種正常途徑弄不出來的藤蔓方塊,四面都是藤蔓而中間是空心的。

而setblock的模式則有三種,一種是destroy,在替換方塊的時候會把方塊破壞,而不是替換。破壞和替換的區別是,破壞會有特效聲音並且會有掉落物(不開gamerule的情況下),而替換不會有特效聲並且不會有任何掉落物。比如

setblock ~ ~1 ~ minecraft:redstone_block 0 destroy

這個就是利用destroy做的脈衝。它可以起到非常快速頻率的效果。(使用最好用/gamerule把掉落物關了,不然還得kill @e[type=Item])

另一種是replace,這個是默認的,一般不輸入任何模式都會默認為這個數據標籤。意為把原來的方塊替換。在數據標籤處輸入replace或者不填即可做到這個效果。

最後一種是keep,用來保存原有的方塊。只要不是空氣,如果有方塊則不會放置方塊。意為保留除了空氣外所有的方塊,在數據標籤處輸入keep即可。或者地形探索等。另外,使用setblock一定要算好坐標,否則替換錯誤可能會造成一些影響。

setblock給予玩家的方塊也可以加上自身的數據標籤,和give性質相同。

2.fill指令

用於填充一個區域的方塊。和clone差不多,只是不用指定粘貼坐標,直接指定斜對角即可。基本格式為

fill填充坐標斜對角填充坐標斜對角方塊名稱損傷值方塊模式

和clone相同,哪一個斜對角都一樣。方塊模式有五種,三種和setblock一樣,有destroy、replace和keep(詳情看setblock)。另外兩種為hollow與outline。

hollow:

一旦用上這個方塊模式,填充的方塊區域外面一圈不會受到任何影響,但是裡面會變為空心的(填充空氣)。

需要保證是立體的,如正方體長方體這樣的,不然一條直線會和普通的fill相同(用這種方法可以做圍牆等等)。

outline:和hollow基本上相同,會將填充方塊區域的外圍一圈填充為指定的方塊。但是中間的方塊不會更改,就像keep一樣,但是中間無論是什麼方塊都會被保留(空氣依然會被保留)。

fill要和setblock區分開,setblock是在單個坐標處放置方塊,而fill是填充一個區域的方塊。比如

fill ~ ~1 ~ ~ ~2 ~ wool 7 keep

缺點是,fill只能讓一個區域填充同樣的方塊,而不能指定這個區域各個地方都是方塊。所以如果要做到這種效果的話的話需要連續fill才可以。

3.clone指令

此指令用於複製一片方塊並且粘貼到某一個地方。這個指令在做需要換地形的地圖裡非常實用,比如運用自由選擇更換地圖等等。基本格式為

clone複製區域的一角複製區域的另一角(兩個斜對角)粘貼區域 clone數據標籤

如果是單單的複製粘貼可以不填寫clone數據標籤。複製區域的一角與複製區域的另一角分別是要複製的區域的斜對角。兩個斜對角都可以,坐標一定要對應,否則可能會造成一些偏差。如下圖↓

而粘貼區域就是想把方塊複製到的地方。對角線沒有前後之分,所以無論是哪個坐標效果都不會改變,而粘貼區域的坐標一定要掌握好。粘貼區域的坐標一般都是複製過來的斜對角。

當然,y坐標相同只能複製一個平面的方塊,如果要複製一片立體的方塊區域,像下圖這樣就可以了。

clone指令的數據標籤就和setblock相似,可以進行不同的複製方法。

clone數據標籤有兩大類,分別是複製種類和複製方法。總體順序為

clone複製區域複製區域粘貼區域複製種類複製方法

複製種類和複製方法都是可以不填寫的,或者填寫一種都可以。複製種類分為filtered、masked和replace。

filtered:此指令用於區分方塊的種類。在複製種類處填寫filtered即可指定複製方塊的種類。需要注意,這個數據標籤的使用方法並不是filtere:minecraft:xxx,那樣的話根本沒有任何用處。詳細用法請看最下方。

masked:此指令用於區分是否複製空氣。在複製種類處填寫masked即可在複製的時候不會複製目標區域里的空氣方塊。使用這個方法可以防止在錯誤複製一些空氣方塊來替換目標區域的一些方塊。性質和replace稍微有些相似。

replace:此指令用於區分是否替換目標區域的方塊。這是默認的複製種類,也就是說,不填寫任何方式的時候會把粘貼區域的所有方塊替換成複製的方塊。如果不想改變克隆方塊種類而必須要改變複製方法的話,那麼可以填寫這個數據標籤。

而複製方法分為force、move以及normal。

force:此指令用於區分是否會強制複製目標方塊。

move:此指令用於區分是否會將複製區域剪切到粘貼區域。也就是會把原來的區域變為空氣。在複製方法處填寫move即可直接粘貼方塊。move只會剪切被複制的方塊,也就是用filtered不會替換掉沒被複制的方塊。

normal:此指令用於區分複製方法是否是正常的方式。也就是普通的複製粘貼。這是默認的複製方法,在複製方法處填寫normal即可指定普通的複製方式。normal一般可以用來和fitered配合。

filtered使用方式一般為

clone複製區域複製區域粘貼區域 filtered normal minecraft:方塊名

使用之後只會複製特定的方塊。

(注意:很多人在最開始使用clone的時候總是複製不了任何方塊,那是因為坐標的問題。方塊對角坐標應該是玩家站在的對角坐標-1,也就是y-1)

原版伺服器相關

1.op指令

此指令用於給予玩家op許可權(管理員)。需注意op許可權和飛行許可權不同。飛行許可權只是單純的可以飛行,而op許可權不單單是飛行,還可以用各種各樣的指令(作弊許可權+飛行許可權)。基本格式為

op玩家名稱

原版是無法使用的。當開了伺服器之後,服主就能使用這個指令來給予其他玩家op,不需要裝任何插件即可使用。

提醒各位服主:這是伺服器里最需要慎用的指令!一定要先鑒定給予op的玩家是否有能力勝任這個職位,否則,後果不堪設想!一切伺服器用指令毀滅現象的源頭都是出自這個指令,所以請一定小心使用(熊孩子用op秒殺一切系列)!

2.deop指令

和op指令正相反,用於取消玩家的op許可權。基本格式為

deop玩家名稱

使用之後玩家將不再擁有op許可權。但是建議:想制止用命令毀服的熊孩子,應該在最初要給op時就想好了,因為毀服只是一瞬間的事,給他們op後那短短的幾秒,伺服器都有可能會被毀掉。被毀服之後再deop已經晚了。

一般服主(腐竹)都用於懲罰那些擁有op許可權的人,他們犯了錯誤一般要用到這個指令。

3.list指令

用於列出伺服器的當前在線玩家。最初進入伺服器也會提示一下當前在線玩家。當然,使用list不會顯示已退出的玩家,但會顯示剛進入的玩家。基本格式為

list

單獨使用即可。效果為

這也會將玩家的在伺服器的職業(op、接待、普通玩家等等)顯示出來,可以一目了然。

4.ban指令

用於防止一個特定的玩家進入伺服器。基本格式為

ban玩家名稱

無論這個玩家是否加入過伺服器,以後任何人用這個名字都進入不了這個伺服器。

(PS:如果ban的玩家是沒有加過伺服器的,那麼將會顯示下圖的樣子)

這個方法只能防止玩家用這個名稱進入伺服器,卻不能防止玩家再用另一個名稱登陸(ban-ip能有效防止,添加白名單的伺服器也可以,但是玩家在申請白名單時用另一個號就不能保證了)。另外將一個玩家ban掉可以加上理由。上圖顯示"登錄失敗..."一串文字的原因是因為沒有加上原因。基本格式為

ban玩家名稱 ban原因

原因由發起ban的玩家定即可。(最好加上,因為ban一個人其他玩家都能看到,無緣無故ban掉還是不太好,除非大家都知道了原因)

只要有op許可權的玩家都能使用。所以腐竹一定要注意不要隨便給不相信的人op,不然有可能op會濫用這個指令,可能會對伺服器造成極大的影響。

5.ban-ip指令

這個指令比ban要上一個台階,因為這個指令ban掉的玩家如果不恢復或者換ip就基本上進不來了。基本格式為

ban-ip玩家名稱/ip地址

如果輸入的是玩家名稱(在不知道ip地址的前提下),那麼這個所用的ip將會被ban掉並且以後無法進入這個伺服器。而ip地址直接輸入即可,比如一個ip地址為123.123.123,那麼我們就用

ban-ip 123.123.123

之後使用這個ip的玩家將無法進入這個伺服器。

和ban一樣,後面可以加上理由,因為在將玩家ban掉的時候會公佈於眾。

(注意:和ban不同的是,這個指令無法ban掉沒有加入伺服器的玩家,而ban指令卻不用顧慮這一點)PS:只適用於固定寬頻,路由器重啟ip會變化,所以這個方法對路由器上網的無效。

6.pardon指令

用於取消對玩家或者ip的ban(不要誤解任務有pardon-ip這個指令)。基本格式為

pardon玩家名稱/ip地址

必須是用於被ban過的玩家才行。如果這個玩家並沒有被ban那麼這個指令並不會有什麼效果。被ban的列表可以使用banlist來查看。

也就是說,使用完這個指令之後,被ban的玩家或者被ban的ip可以重新回到這個伺服器(謹防熊op,比如腐竹ban掉一個人之後,被ban的人找到熊op給恢復...)。

7.setidletimeout指令

用於將掛機的玩家自動踢下線。和kick要區分的是,kick是具有op許可權的玩家主動將一個玩家踢下線,而setidlettimeout指令是由系統判斷玩家的掛機時間並且一旦超過時間系統就會將這個玩家自動踢出伺服器(被踢出的玩家依然可以回到伺服器),不需要由具有op許可權的玩家清理。基本格式為

setidletimeout時間

時間處填寫數字,只能填寫整數和非負數,按分鐘來計時(比如填寫1,那麼就會將掛機時間到一分鐘的玩家踢下線)。另外如果填寫0那麼就是取消自動掛機踢人這個設置。

效果↓

對於清理一些總是沒事在伺服器佔位置的,而腐竹和op又不能一直在線的話,這一招非常管用。


推薦閱讀:

《我的世界》手機版怎麼去月球呢?
微軟為什麼要花25億美元收購《我的世界》開發商?
我的世界中文版boss九頭蛇怎麼打?
《我的世界》新手碰到哪些怪物要趕緊溜?
《我的世界》中國版怎麼下載七夕專屬地圖?

TAG:世界 | 網易 | 介紹 | 我的世界 | 指令 |