首頁 游戲

Minecraft指令手冊

第四十一章 objectives——管理一個(gè)計(jì)分項(xiàng)

Minecraft指令手冊 你好MC 1702 2020-01-22 20:27:19

  如何創(chuàng)建并管理一個(gè)計(jì)分項(xiàng)呢?這就需要使用/scoreboard。

  /scoreboard

  作用:控制計(jì)分板

  需要權(quán)限等級:Java-2,基巖-1

  需要作弊:是

  格式(本章所涉及):

  /scoreboard objectives ...

  Java版

  ... add <計(jì)分項(xiàng)名稱><準(zhǔn)則>[<顯示名稱:JSON>]——添加計(jì)分項(xiàng)(注:JE1.13以下版本“顯示名稱”參數(shù)的值類型為字符串)

  ... list ——列出當(dāng)前所有計(jì)分項(xiàng)

  ... modify <計(jì)分項(xiàng)名稱>...——對指定計(jì)分項(xiàng)進(jìn)行一些更改操作[1.13更新]

  ...... displayname <顯示名稱:JSON>——更改指定計(jì)分項(xiàng)的顯示名稱[1.13更新]

  ...... rendertype <hearts|integer>——指定顯示該計(jì)分項(xiàng)數(shù)值時(shí)是采用愛心(hearts)還是數(shù)值(integer)顯示[1.13更新]

  ... remove <計(jì)分項(xiàng)名稱>——?jiǎng)h除計(jì)分項(xiàng)

  ... setdisplay <顯示位置>[計(jì)分項(xiàng)名稱]——指定特定的位置顯示指定的計(jì)分項(xiàng)或取消顯示計(jì)分項(xiàng)。

  基巖版

  ... add <計(jì)分項(xiàng)名稱:字符串><準(zhǔn)則>[<顯示名稱:字符串>]——添加計(jì)分項(xiàng)

  ... list ——列出當(dāng)前所有計(jì)分項(xiàng)

  ... remove <計(jì)分項(xiàng)名稱:字符串>——?jiǎng)h除計(jì)分項(xiàng)

  ... setdisplay <顯示位置>[計(jì)分項(xiàng)名稱:字符串][排序方法:ascending|descending]——指定特定的位置顯示指定的計(jì)分項(xiàng)或取消顯示計(jì)分項(xiàng)。

  現(xiàn)在讓我們來試一試。首先來嘗試添加一個(gè)最基本的計(jì)分項(xiàng):

  /scoreboard objectives add coin dummy 金錢——僅Java1.13以下和基巖版

  /scoreboard objectives add coin dummy “金錢“——僅Java1.12.2以上

  上面的指令將會添加一個(gè)準(zhǔn)則為dummy,顯示名稱為“金錢”,叫做“coin”的計(jì)分項(xiàng)。

  添加計(jì)分項(xiàng)時(shí)我們需要特別注意準(zhǔn)則的選擇。正如上一章所說的“準(zhǔn)則決定了記分項(xiàng)具體要跟蹤的信息”,一個(gè)計(jì)分項(xiàng)的作用,很大程度上是由準(zhǔn)則決定的。

  準(zhǔn)則在基巖版只有dummy(虛擬型),在Java版有兩大類:單一準(zhǔn)則和復(fù)合準(zhǔn)則。

  單一準(zhǔn)則不可自定義,是Mojang已經(jīng)給你預(yù)設(shè)好的準(zhǔn)則,目前有如下幾種:

  dummy:虛擬型,最基礎(chǔ)的準(zhǔn)則,僅可通過/scoreboard players指令修改。

  trigger:觸發(fā)器,類似于dummy,但所有玩家均可修改自己的trigger型計(jì)分項(xiàng)。具體內(nèi)容會在第九十八章講到。

  deathCount:玩家死亡次數(shù),當(dāng)玩家死亡時(shí)游戲會自動(dòng)增加他的分?jǐn)?shù),可以通過指令修改。(Java版的死亡榜就是這么搞的)

  playerKillCount:玩家擊殺(玩家)數(shù),當(dāng)玩家擊殺其他玩家時(shí)游戲會自動(dòng)增加他的分?jǐn)?shù),可以通過指令修改。

  totalKillCount:玩家擊殺(生物)數(shù),當(dāng)玩家擊殺其他任意生物時(shí)游戲會自動(dòng)增加他的分?jǐn)?shù),可以通過指令修改。

  health:玩家生命值,傷害吸收和生命提升的血也會計(jì)算在其中。當(dāng)玩家第一次刷新生命值之前該玩家的分?jǐn)?shù)會為0。不可通過指令修改。

  xp:玩家經(jīng)驗(yàn)值,不可通過指令修改。

  level:玩家經(jīng)驗(yàn)等級(注意和xp準(zhǔn)則區(qū)分),不可通過指令修改。

  food:玩家飽和度,和health準(zhǔn)則一樣,在玩家第一次刷新飽和度之前該玩家的分?jǐn)?shù)會為0,不可通過指令修改。

  air:玩家空氣值(就是潛水時(shí)顯示的那個(gè)),不可通過指令修改。

  armor:玩家盔甲值,和health準(zhǔn)則一樣,在玩家第一次刷新盔甲值之前該玩家的分?jǐn)?shù)會為0,不可通過指令修改。

  復(fù)合準(zhǔn)則可以自定義,其格式如下:

  <基礎(chǔ)準(zhǔn)則ID:命名空間>:<次級準(zhǔn)則>(1.12更新后)

  復(fù)合準(zhǔn)則實(shí)際上就是Mojang將你菜單界面中的“統(tǒng)計(jì)數(shù)據(jù)”和計(jì)分板綁定在一起而已?;A(chǔ)準(zhǔn)則具體有:

  teamkill.<隊(duì)伍顏色>——玩家殺死指定顏色的隊(duì)伍成員便會增加分?jǐn)?shù)

  killedByTeam.<隊(duì)伍顏色>——玩家被指定顏色的隊(duì)伍成員殺死便會增加分?jǐn)?shù)

  minecraft.custom:<Emmm....不知道怎么描述>——對應(yīng)的是統(tǒng)計(jì)信息菜單中的“通用”一欄信息。比如準(zhǔn)則minecraft.custom:minecraft.leave_game就是跟蹤每一名玩家統(tǒng)計(jì)菜單中的“游戲退出次數(shù)”。具體的每項(xiàng)統(tǒng)計(jì)信息所對應(yīng)的命名空間ID就太多了,需要的可以自行到Minecraft Wiki查看(指明路線:統(tǒng)計(jì)信息→命名空間ID→統(tǒng)計(jì)信息列表)。

  minecraft.picked_up:<物品ID>——玩家撿起指定物品時(shí)便會增加分?jǐn)?shù)(對應(yīng)統(tǒng)計(jì)菜單“物品”一欄的“拾起個(gè)數(shù)”)

  minecraft.dropped:<物品ID>——玩家丟棄指定物品時(shí)便會增加分?jǐn)?shù)(對應(yīng)統(tǒng)計(jì)菜單“物品”一欄的“丟棄個(gè)數(shù)”)

  minecraft.used:<物品ID>——玩家使用指定物品時(shí)便會增加分?jǐn)?shù)(對應(yīng)統(tǒng)計(jì)菜單“物品”一欄的“使用次數(shù)”)

  minecraft.broken:<物品ID>——玩家消耗指定物品時(shí)便會增加分?jǐn)?shù)(對應(yīng)統(tǒng)計(jì)菜單“物品”一欄的“工具消耗數(shù)”)

  minecraft.crafted:<物品ID>——玩家合成指定物品時(shí)便會增加分?jǐn)?shù)(對應(yīng)統(tǒng)計(jì)菜單“物品”一欄的“合成次數(shù)”)

  minecraft.mined:<方塊ID>——玩家挖掘指定方塊時(shí)便會增加分?jǐn)?shù)(對應(yīng)統(tǒng)計(jì)菜單“方塊”一欄的“開采次數(shù)”)

  minecraft.killed:<實(shí)體ID>——玩家擊殺指定實(shí)體時(shí)便會增加分?jǐn)?shù)(對應(yīng)統(tǒng)計(jì)菜單“生物”一欄的“你殺死了n只xxx”中的n)

  minecraft.killed_by:<實(shí)體ID>——玩家被指定實(shí)體擊殺時(shí)便會增加分?jǐn)?shù)(對應(yīng)統(tǒng)計(jì)菜單“生物”一欄的“xxx殺死了你n次”中的n)

  注意:Java1.13更新中將統(tǒng)計(jì)信息中的“方塊”并到“物品”一欄。

  現(xiàn)在,我們有了一個(gè)計(jì)分項(xiàng)。但如果你想要修改顯示名稱該怎么辦?

  在基巖版和Java1.13以下版本中,你只能刪了重新搞。這時(shí)候你就需要使用remove:

  /scoreboard objectives remove coin

  這樣子就可以刪掉叫做coin的計(jì)分項(xiàng)。

  但如果你忘記了計(jì)分項(xiàng)的名稱該怎么辦?使用list列出所有計(jì)分項(xiàng)以查看:

  /scoreboard objectives list

  (注意,在Java1.12.2以上版本中,如果你的計(jì)分項(xiàng)設(shè)置了顯示名稱,那么list只會列出該計(jì)分項(xiàng)的顯示名稱,要查看具體的名稱需要將鼠標(biāo)移到列出的計(jì)分項(xiàng)顯示名稱的上方)

  在Java1.12.2以上版本中,有一種便捷的方法可以不刪除計(jì)分項(xiàng)就可以更改顯示名稱:modify。

  舉個(gè)例子:假設(shè)你想要修改我們剛才創(chuàng)建的coin計(jì)分項(xiàng)的名稱為“軟妹幣”,你就需要執(zhí)行:

  /scoreboard objectives modify coin displayname “軟妹幣“

  modify不只是可以修改名稱,它還可以修改計(jì)分項(xiàng)中玩家分?jǐn)?shù)的值的顯示方式。

  當(dāng)然在研究這個(gè)值顯示方式之前,我們得了解一下setdisplay的作用。

  上面列格式時(shí)就已經(jīng)提到過setdisplay的作用了:顯示計(jì)分項(xiàng)于某個(gè)位置。

  具體的這個(gè)位置有哪些呢?

  list——Java版中是在Tab玩家列表中顯示每名玩家的分?jǐn)?shù)(不顯示具體是哪個(gè)計(jì)分項(xiàng)),基巖版中是在暫停界面顯示。

  sidebar——在屏幕的右側(cè)顯示列表,并在列表的最上方顯示該計(jì)分項(xiàng)的顯示名稱

  sidebar.team.<隊(duì)伍顏色>——和sidebar作用相同,只是只會給指定顏色的隊(duì)伍查看[僅Java版]

  belowName——在玩家的頭上面顯示該玩家的分?jǐn)?shù)

  舉個(gè)例子:

  /scoreboard objectives setdisplay sidebar coin

  執(zhí)行指令,就可以將我們剛才創(chuàng)建的coin計(jì)分項(xiàng)以列表的形式顯示在右側(cè)。需要注意,如果已經(jīng)有其他計(jì)分項(xiàng)顯示在該位置,執(zhí)行該條指令后將會覆蓋顯示為coin計(jì)分項(xiàng)。

  在基巖版,使用list和sidebar位置時(shí)還可以指定列表排序方式:ascending(從小到大)和descending(從大到小[默認(rèn)])。比如:

  /scoreboard objectives setdisplay sidebar coin ascending

  就可以將最窮的玩家顯示在列表最上方的位置。

  如果你仔細(xì)看了setdisplay的格式,你會發(fā)現(xiàn)“計(jì)分項(xiàng)名稱”這個(gè)參數(shù)是選填的。那如果不填會發(fā)生什么?

  重置該位置,也就是取消顯示計(jì)分項(xiàng)在該位置。比如:

  /scoreboard objectives setdisplay sidebar

  就可以讓右側(cè)一欄重回清凈。

  通過modify的rendertype我們還可以修改指定計(jì)分項(xiàng)的分?jǐn)?shù)顯示時(shí)的樣子。Mojang給了我們兩個(gè)選擇:hearts(生命值)和integer(數(shù)值)。

  比如:

  /scoreboard objectives modify coin rendertype hearts

  就會將coin計(jì)分項(xiàng)中每名玩家的分?jǐn)?shù)以生命值的形式顯示出來。

  需要注意的是,生命值形式僅支持Tab玩家列表。

  .......

  .......

  .......

  在Java1.13更新前,計(jì)分項(xiàng)的復(fù)合準(zhǔn)則并不是這樣,而是:

  <一級準(zhǔn)則>.<二級準(zhǔn)則>.[次一級準(zhǔn)則].[次二級準(zhǔn)則](1.13更新前)

  復(fù)合準(zhǔn)則也并不是完全和統(tǒng)計(jì)菜單的數(shù)據(jù)綁定。在1.13更新前,復(fù)合準(zhǔn)則具體有如下內(nèi)容:

  achievement.<成就ID>——(1.12版本中被移除)以一個(gè)玩家達(dá)成指定成就數(shù)量作為值。比如achievement.diamonds就是“鉆石”成就的達(dá)成次數(shù)。這個(gè)成就的達(dá)成次數(shù)是什么意思呢?舉個(gè)例子,你獲得到1塊鉆石,就達(dá)成了“鉆石”成就1次。如果你再次獲得一塊鉆石,雖然游戲不會告訴你你又一次達(dá)成了“鉆石”成就,但是你實(shí)打?qū)嵉剡_(dá)成了這個(gè)成就兩次。由于Minecraft Wiki會慢慢舍棄舊游戲內(nèi)容,我就把成就ID全放這了,具體指的是什么成就自己扔進(jìn)生草機(jī)里翻譯:“acquireIron“、“bakeCake“、“blazeRod“、“bookcase“、“breedCow“、“buildBetterPickaxe“、“buildFurnace“、“buildHoe“、“buildPickaxe“、“buildSword“、“buildWorkBench“、“cookFish“、“diamonds“、“diamondsToYou“、“enchantments“、“exploreAllBiomes“、“flyPig“、“fullBeacon“、“ghast“、“killCow“、“killEnemy“、“killWither“、“makeBread“、“mineWood“、“onARail“、“openInventory“、“overkill“、“overpowered“、“portal“、“potion“、“snipeSkeleton“、“spawnWither“、“theEnd“、“theEnd2“。

  stat.<內(nèi)容>——對應(yīng)1.13更新后的“minecraft.custom:<emmm....不知道怎么描述>”。比如stat.sneakTime準(zhǔn)則就是玩家的潛行時(shí)間?!皟?nèi)容”可以填“animalsBred“、“armorCleaned“、“bannerCleaned“、“beaconInteraction“、“boatOneCm“、“brewingstandInteraction“、“cakeSlicesEaten“、“cauldronFilled“、“cauldronUsed“、“chestOpened“、“climbOneCm“、“craftingTableInteraction“、“crouchOneCm“、“damageDealt“、“damageTaken“、“deaths“、“dispenserInspected“、“diveOneCm“、“drop“、“dropperInspected“、“enderchestOpened“、“fallOneCm“、“fishCaught“、“flowerPotted“、“flyOneCm“、“furnaceInteraction“、“hopperInspected“、“horseOneCm“、“itemEnchanted“、“jump“、“junkFished“、“l(fā)eaveGame“、“minecartOneCm“、“mobKills“、“noteblockPlayed“、“noteblockTuned“、“pigOneCm“、“playerKills“、“playOneMinute“、“recordPlayed“、“sneakTime“、“sprintOneCm“、“swimOneCm“、“talkedToVillager“、“timeSinceDeath“、“tradedWithVillager“、“trappedChestTriggered“、“treasureFished“和“walkOneCm“。

  stat.craftItem.<物品數(shù)字ID或英文ID>——對應(yīng)1.13更新后的minecraft.crafted:<物品ID>。如stat.craftItem.261準(zhǔn)則就是玩家合成弓的次數(shù),stat.craftItem.minecraft.bow也是玩家合成弓的次數(shù)。注意,使用英文ID,命名空間就需要作為次1級準(zhǔn)則,物品ID就要放到次2級準(zhǔn)則中。

  stat.useItem.<物品數(shù)字ID或英文ID>——對應(yīng)1.13更新后的minecraft.used:<物品ID>,用法和stat.craftItem.<物品數(shù)字ID或英文ID>一樣。

  stat.breakItem.<物品數(shù)字ID或英文ID>——對應(yīng)1.13更新后的minecraft.broken:<物品ID>,用法也一樣。

  stat.mineBlock.<方塊數(shù)字ID或英文ID>——對應(yīng)1.13更新后的minecraft.mined:<方塊ID>,用法仍然一樣。

  stat.killEntity.<實(shí)體ID>——對應(yīng)1.13更新后的minecraft.killed:<實(shí)體ID>。只不過支持的實(shí)體ID相比于1.13更新后的版本要少許多,并且不支持mod實(shí)體,因?yàn)闆]有命名空間。如stat.killEntity.Villager就是殺死村民的次數(shù)。

  stat.entityKilledBy.<實(shí)體ID>——對應(yīng)1.13更新后的minecraft.killed_by:<實(shí)體ID>,用法和stat.killEntity.<實(shí)體ID>一樣。

  需要注意,在Java1.8版本之前,stat.craftItem等準(zhǔn)則是不支持物品和方塊的ID名(英文ID)的。

  本章到此結(jié)束。

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南