-
計分板
(遊戲《Minecraft》中的一種指令和特殊功能)
鎖定
計分板基本信息
計分板PC
原文 | 遊戲內譯名 | 分支 | 作用 |
---|---|---|---|
objectives | 計分項/記分項 | 列出已創建的計分項(記分項) | |
add | 增加一個計分項(記分項) | ||
remove | 刪除一個計分項(記分項) | ||
setdisplay | 修改計分項(記分項)顯示位置 | ||
players | 玩家 | set | 設置玩家某計分項的分數 |
add | 增加玩家的某個計分項的分數 | ||
remove | 減少玩家的某個計分項的分數 | ||
list | 列出某個玩家所有計分項的分數 | ||
reset | 重置玩家某計分項的分數 | ||
test | 檢測某位玩家的計分板分數 | ||
tag | 給某位玩家加標籤 | ||
teams | 隊伍 | list | 列出所有隊伍 |
add | 創建一個隊伍 | ||
remove | 刪除一個隊伍 | ||
empty | 清除某隊的人 | ||
join | 將玩家加入某隊伍 | ||
leave | 將玩家退出某隊伍 | ||
option | 設置某個隊伍 |
- add的作用是增加一個計分項目。在創建時,需要填入“名稱”和“類型”,還有一個“顯示的名稱”(格式見下一個一級目錄)。名稱是計分項目的名稱。類型準確的説是準則,是指該計分項目是如何獲得分數的。類型有好幾種,具體見以下表格:
準則 | 版本限制 | 描述 | 可否編輯 |
---|---|---|---|
dummy 虛擬型 | 無 | 只能通過命令修改分數,諸如死亡等遊戲行為並不能修改分數。這可以被用來製作事件的標記、映射和通貨。 | 是 |
trigger 觸發器 | 僅Java版 | 只能通過命令修改分數,諸如死亡等遊戲行為並不能修改分數。/trigger能夠用於設置/增減使用trigger作準則的記分項。如果以trigger為準則的記分項沒有對玩家啓用,則該玩家使用該/trigger命令會失敗。成功使用過一次/trigger成功之後,該玩家的該命令將重新被關閉。注意/trigger可以在不允許作弊的情況下被非管理員的普通玩家使用。這可以比較方便地通過/tellraw來製作功能面板。 | 是 |
deathCount 死亡次數 | 僅Java版 | 當玩家死亡時,分數會自動增加。 | 是 |
playerKillCount 殺人數量 | 僅Java版 | 當玩家殺死其他玩家時分數會自動增加。 | 是 |
totalKillCount 殺怪數量 | 僅Java版 | 當玩家殺死其他生物時分數會自動增加。 | 是 |
health 生命值 | 僅Java版 | 普通玩家會在0~20之間。代表玩家擁有紅心數量的兩倍。在玩家第一次改變血量前會顯示為0。額外的血或者傷害吸收的血也會計算在血量中,也就是説當獲得了傷害吸收或者生命提升的信標效果後生命值可以超過20。 | 否 |
xp 經驗值 | 僅Java版 | 對應玩家擁有的經驗值。 | 否 |
level 等級 | 僅Java版 | 對應玩家當前的經驗等級。 | 否 |
food 飽和度 | 僅Java版 | 在0~20之間,代表玩家擁有的飽和度。在玩家第一次改變飽和度前會顯示為0。 | 否 |
air 空氣值 | 僅Java版 | 在0~300之間;代表潛水的玩家所存餘的空氣,對應玩家的空氣NBT標籤。 | 否 |
armor 盔甲值 | 僅Java版 | 在0~20之間;代表玩家擁有的盔甲值。在玩家第一次更換盔甲前會顯示為0。 | 否 |
“顯示的名稱”指這個計分項目對外顯示的名稱。
- remove的作用是刪除一個計分項目。刪除時,只需要填上計分項目的名稱即可(格式見下一個一級目錄)。
- list的作用是列出已創建的計分項目,包括顯示的名字。
- setdisplay的作用是設置一個計分項目顯示的位置。顯示的位置有三種,分別是belowName、sidebar和list。belowname是在玩家的名稱牌之下,在他們的頭之上,於記分項的顯示名稱(display name)後面顯示分數。在10個方塊後面、玩家潛行時隱藏。在單人遊戲中不可見。;sidebar是在屏幕的右側顯示。在列表的最上方顯示記分項的顯示名稱(display name),並顯示玩家的高分榜。值得注意的是,即使玩家離線,如果在該記分項下存在一定分數也會在"側邊欄"中進行顯示,並且沒有痕跡的玩家也不會被顯示。除此之外,以#開頭的偽造的玩家名稱在任何情況下都不會在側邊欄可見。;list是顯示在玩家列表中以黃色文字在玩家名稱後顯示分數信息(默認為 Tab 鍵),並不會顯示記分項名稱。注意,每個位置只能放一個計分板。 [1]
players
players在遊戲中的翻譯為玩家,作用是控制玩家的分數。該分支又分為list、add、remove、set和reset。
- list是列出某個玩家的所有計分板他所擁有的分數。
- add是增加某個玩家的某項計分板的分數,在後面有一個NBT標籤,用於根據玩家身上的NBT標籤加分,比如當目標手持某物品時加分 [3] 。
- set是設置玩家某計分項的分數,需要填入玩家ID、要設置的計分項目名稱和設置的分數。在後面還有一個NBT標籤,還是可以根據玩家身上的NBT標籤設置分數,比如當目標手持某物品時設置為多少分。
- reset是重置某個玩家的計分板,後面的“項目名字”可填可不填。填了就是隻重置該項計分板玩家所擁有的分數,不填就是重置所有的計分板玩家所擁有的分數。
- operation是將某兩個的某計分板項目的分數進行計算,可以使用+(相加)、-(相減)、*(相乘)、/(相除)和=(複製)。
- test是檢測某位或多位玩家的某個計分項目的分數是否在指定範圍內,如果是,則成功,反之,失敗。
teams
teams在遊戲中的翻譯為隊伍,有分為list、add、remove、empty、join、leave和option。
- list是列出所有已創建的隊伍及顯示的名稱。
- add是創建一個隊伍,需要填入“隊名”和“顯示的名字”(跟創建一個計分項目差不多)。
- remove是刪除一個隊伍,需要填入“隊名”。
- join是加入一個隊伍,需要填入要加入的隊伍名和加入的玩家(不填即為自己)。
- leave是退出隊伍,需要填入退出的玩家ID(不填即為自己)。
- empty是將某隊的所有玩家退出該隊伍,需要填入隊名。
計分板PE
PE的計分板功能相對於PC來説,比較少。PE的計分板(scoreboard)分為objectives和players。除了比java版少了大部分準則,其他的基本一樣。
計分板格式
objectives分支格式
list:/scoreboard objectives list
remove:/scoreboard objectives remove <計分項目名稱>
add:/scoreboard objectives add <計分項目名稱> <計分項目類型> [顯示的名稱]
setdisplay:
PC版 /scoreboard objectives setdisplay <顯示位置> [顯示的計分項目名稱] [排序方法]
如果不打名稱,會刪除在那個位置顯示的計分項目。
(注:“<>”是必須要填,“[]”是可以不用填)
players分支格式
set:/scoreboard players set <玩家名稱> <要設置分數的計分項目名稱> <設置的分數> [NBT標籤]
add:/scoreboard players add <玩家名稱> <要增加分數的計分項目名稱> <增加的分數> [NBT標籤]
remove:/scoreboard players remove <玩家名稱> <要減去分數的計分項目名稱> <減去的分數> [NBT標籤]
reset:/scoreboard players reset <玩家名稱> [要重置的項目名稱]
list:/scoreboard players list <玩家名稱>
test:/scoreboard players test <玩家名稱> <要檢測的計分項目名稱> <最小值> <最大值>
operation:/scoreboard players operation <玩家1名稱> <要計算的計分項目> <計算方式> <玩家2名稱> <要計算的計分項目>
random:/scoreboard players random <玩家> <計分項目> <隨機數的最小值> <隨機數的最大值>
(注:“<>”為必須要寫,“[]”為可以不寫)
teams分支格式(僅PC版)
list:/scoreboard teams list
add:/scoreboard teams add <隊名> [顯示的名字]
remove:/scoreboard teams remove <隊名>
join:/scoreboard teams join <隊名> [玩家ID]
玩家id不寫為自己
leave:/scoreboard teams leave [玩家id]
empty:/scoreboard teams empty <隊名>
(注:“<>”為必須要寫,“[]”為可以不寫)
option分分支格式
/scoreboard option <隊名> <數值>
下面格式的前半部分重複的(是上面的格式)用“......”來表示。
/...... friendfire <true|false>
/...... color <顏色英文>
/......eeFriendlyInvisibles <true|false>
計分板發展歷史
Java版 | ||
1.5 | 13w04a | 加入了計分板 |
13w05a | 加入了隊伍相關功能 | |
1.7.2 | 13w36a | 加入了統計相關記分項準則 |
1.8 | 14w02a | 除了玩家外的實體也能加入隊伍並擁有記分項分數了 |
14w06a | 加入了trigger隊伍擊殺相關記分項準則 | |
加入了/scoreboard players enable | ||
"*" 可以用作玩家名稱參數代表所有正被記分板追蹤的玩家了 | ||
為/scoreboard players reset加入了 "objective"參數。 | ||
統計記分項準則使用ID名而不使用ID了 | ||
加入了achievement.overpowered記分項準則 | ||
14w07a | 加入了/scoreboard players operation與/scoreboard players test | |
以"#"開頭的虛擬玩家的分數不再顯示於側邊欄 | ||
加入了指定隊伍的側邊欄顯示位置 | ||
加入了nametagVisibility隊伍選項 | ||
14w10a | 加入了deathMessageVisibility隊伍選項 | |
為/scoreboard players set,/scoreboard players add,與/scoreboard players remove加入了dataTag參數 | ||
加入了stat.crouchOneCm,stat.sprintOneCm,與stat.timeSinceDeath記分項準則 | ||
14w25a | 為/scoreboard players operation加入了=,<,與> | |
14w29a | 玩家/實體在側邊欄名字的第二順序依照字母表儲存 | |
14w30a | 加入了stat.talkedToVillager與stat.tradedWithVillager記分項準則 | |
? | 為/scoreboard players operation加入了>< | |
1.8.2 | 加入了cauldronFilled,stat.cauldronUsed,stat.armorCleaned等記分項準則 | |
1.9 | 15w32a | 加入了stat.sneakTime記分項準則 |
15w32b | 加入了/scoreboard players tag | |
加入了xp,food,與air記分項類型 | ||
15w33a | 加入了stat.pickup與stat.drop記分項準則 | |
加入了 thearmor,level記分項類型 | ||
15w36a | 加入了collisionRule | |
1.13 | pre7 | 加入了/scoreboardobjectives modify |
1.13.1 | 18w31a | 記分板的計算符號%=從%被更改為Math.floorMod |
基岩版 | ||
1.7 | beta 1.7.0.2 | 加入了記分板部分功能 |
加入了dummy準則 | ||
網易PE版 | ||
2018聖誕節更新 | 加入了計分板的部分功能 | |
加入了dummy準則 |
計分板實際作用
作用1:計分板計時器
計分板計時器相對於傳統的紅石循環計時器佔地面積更小,更簡單。
例子一:10秒倒計時
主要原理:
紅石循環1秒,命令方塊就被激活一次,減少(remove)1分數。當到達0分數時,循環命令塊檢測(test)到,輸出信號,重新將該虛擬玩家的分數設置(set)為10,這樣循環下去。
例子二:計分板時鐘
主要原理:
紅石循環1秒,命令方塊就被激活一次,給“秒”增(add)加1分數。當到達60分數(test)時,將“秒”設置(set)回0,給“分”增加(add)1分數。當“分”達到60時(test),將“分”設置(set)回0,給“時”增加(add)1分數。當“時”達到24時(test),將“時、分、秒”重新設置(set)回0。
作用2:計分板商店
計分板貨商店比clear商店要好的地方在於不會吞幣,不會佔用揹包空間。(僅對於購買而言)
主要原理:
如果玩家需要購買貨物,可以首先檢測(可依照“/scoreboard test 玩家名 記分板名稱 商品價格”這一格式)最近的玩家貨幣是否達到了單價,如果是,則發送紅石信號,激活下一個命令塊。然後刪除(/scoreboard remove 玩家名 記分板名稱 商品價格)最近的玩家商品單價的分數,最後給予(可使用“/give”這一指令)最近的玩家商品。
[4]
相應的,如果玩家需要要賣出自己的東西,也可以使用類似的方式,不過傳統的漏斗商店效率低(漏斗每秒只能傳輸2.5個物品,在貨物數量大的時候低效是尤為顯著的),此時可以借用部分clear商店的思路:首先建立一個循環型命令方塊,以每秒10個的速度清除(可使用“/clear 玩家名 商品名 特殊值 1”這一指令防止吞貨物),而後每吞掉一個貨物,就為這個玩家加上指定數量的分數(也就是貨幣,可以用指令“/scoreboard add 玩家名 記分板名稱 商品價格),這樣只需要2個命令方塊便可以實現售賣型商店。但請注意,為防止玩家貨物賣光後(即/clear指令無法執行時)仍在為玩家添加貨幣,一定要把第二個命令方塊設置為“有條件的”(即必須前一個命令方塊內指令可以成功執行時才執行該命令方塊內的指令)
- 參考資料
-
- 1. 記分板 .Minecraft wiki[引用日期2018-12-30]
- 2. 我的世界計分板怎麼用 我的世界計分板指令一覽 .3DM單機.2017-7-10[引用日期2019-01-26]
- 3. 《我的世界》計分板指令入門指南及用法詳解 .遊民星空.2018-4-29[引用日期2018-12-30]
- 4. 鬼才建築師教你用命令方塊製作簡單的計分板商店 .遊戲園.2017-9-14[引用日期2019-02-16]