首頁 游戲

Minecraft指令手冊

第四十二章 players——管理變量(分數(shù))

Minecraft指令手冊 你好MC 965 2020-01-23 18:41:22

  在上一章,我們了解了如何管理一個計分項。在一個計分項中存在有多個玩家(或非玩家),每個玩家(或非玩家)都有一個屬于自己的變量(分數(shù))。那么我們該如何管理這些變量(分數(shù))呢?

  這就需要用到scoreboard的players子命令,即/scoreboard players ...

  /scoreboard players

  作用:控制記分板上計分項的變量(分數(shù))

  格式:

  /scoreboard players ...

  ... add <目標選擇器><計分項><增加的分數(shù)>[NBT(僅Java1.13之前)]——將所選玩家(或非玩家)在指定計分項中的分數(shù)增加指定值

  ... remove <目標選擇器><計分項><減少的分數(shù)>[NBT(僅Java1.13之前)]——將所選玩家(或非玩家)在指定計分項中的分數(shù)減少指定值

  ... set <目標選擇器><計分項><分數(shù)>[NBT(僅Java1.13之前))]——將所選玩家(或非玩家)在指定計分項中的分數(shù)設(shè)置為指定值

  ... reset <目標選擇器>[計分項]——將所選玩家(或非玩家)在記分板上的全部數(shù)據(jù)(或指定計分項上的數(shù)據(jù))完全清除(注意不是清零,而是清除)。目標選擇器可用*代指所有玩家和非玩家。

  ... list [目標選擇器]——列出所有正在被記分板追蹤的玩家(或非玩家)。如果指定了玩家(或非玩家),那么將會列出選取的玩家(或非玩家)們在記分板上的所有數(shù)據(jù)。

  ... get <目標選擇器><計分項>——[僅Java1.13及以上版本]獲取指定單個玩家(或非玩家)在指定計分項上的分數(shù)

  ... test <目標選擇器><計分項><最小值>[<最大值>]——[僅Java1.12.2及之前和基巖版]檢測所選玩家(或非玩家)在指定計分項的分數(shù)是否大于等于最小值并且小于等于最大值。最小值和最大值均可使用*來代指-2147483648(最小值使用*)或2147483647(最大值使用*或不填)。

  ... operation <目標選擇器1><運算計分項1><操作><目標選擇器2><運算計分項2>——將目標選擇器1參數(shù)中所選玩家(或非玩家)的指定計分項的分數(shù)與目標選擇器2參數(shù)中所選玩家(或非玩家)的指定計分項的分數(shù)進行一些操作

  ... enable <目標選擇器><觸發(fā)器類計分項>——[僅Java版]允許所選玩家(或非玩家)對指定觸發(fā)器類計分項使用一次/trigger指令。

  ... random <目標選擇器><計分項><最小值><最大值>——[僅基巖版]將所選玩家(或非玩家)的指定計分項分數(shù)隨機設(shè)置為設(shè)定范圍內(nèi)的任何整數(shù)值。

  通過players子命令,我們可以set(設(shè)置)、add(添加)、remove(刪除)、list(列出)、get(獲?。?、reset(重置)、operation(操作)、test(檢測)、random(隨機)和enable(觸發(fā)器)。這些東西的內(nèi)容很多,我們今天就只研究基本的,也就是上面我們提出的問題:如何管理變量(分數(shù))。

  管理變量,就得先有變量,不然管理啥呢?我們知道,一個玩家(或非玩家)被一個計分項計入后最多只能有一個屬于自己的變量(分數(shù))。而一個計分項創(chuàng)建之初是什么也沒有計入的,也就是說這個計分項沒有一個變量,空空如也。

  為了給這個計分項添加一個變量,也就是計入一個玩家(或非玩家),我們就需要用到add這個子命令:

  ... add <目標選擇器><計分項><增加的分數(shù)>[NBT(僅Java1.13之前)]

  增加的分數(shù)至少為0。當然,就算為0,這也算是計入該計分項了。

  實際上,使用remove、operation和set也可以達到同樣的計入效果。

  比如,你要把你自己計入到“金錢”計分項中,就需要:

  /scoreboard players add/remove/set @s 金錢 0

  如果你將一個還未計入“金錢”計分項的玩家的分數(shù)增加5會怎樣?

  其實不會怎么樣。正如正常人的一般思維,剛剛計入計分項的玩家(或非玩家)其分數(shù)是從0開始算起。也就是說,給那名玩家添加5金錢實際上會先讓他計入該計分項,此時他的分數(shù)為0,然后再將他的分數(shù)+5變成5。

  這里的“金錢”計分項是作者自己編的,你想要運行上面的例子就得先自己創(chuàng)建一個叫金錢的計分項。

  計入之后,我們該如何減少分數(shù)呢?這就要用到remove(刪除):

  ... remove <目標選擇器><計分項><減少的分數(shù)>[NBT(僅Java1.13之前)]

  比如我想要將玩家“張三666”在“金錢”計分項中的分數(shù)減少10,這就需要執(zhí)行:

  /scoreboard players remove 張三666 金錢 10

  假設(shè)他原本的分數(shù)是3。執(zhí)行該指令過后,他的分數(shù)就變?yōu)榱?7。

  需要注意。記分板的分數(shù)其值是個Int整形類變量,也就是其值的范圍只能是-2147483648~2147483647。如果一個玩家的分數(shù)已經(jīng)是-2147483648,你再減去個1,他的分數(shù)就會變?yōu)?147483647。關(guān)于為什么會這樣,以及Int整形究竟是個什么,你以后就會了解到。

  如果你對此很感興趣,那么你可以跳到后面135~140章嘗試你是否能夠理解。

  分數(shù)可以增加和減少,當然也可以快速設(shè)定為指定的值。這時候就要用到set:

  ... set <目標選擇器><計分項><分數(shù)>[NBT(僅Java1.13之前)]

  設(shè)置成功后,該變量的數(shù)將會變成設(shè)置的分數(shù)。比如我想要將“張三666”的“金錢”設(shè)為2,就可以:

  /scoreboard players set 張三666 金錢 2

  你可能注意到了,在本章開頭列出的格式中,還有一個reset(重置)。這個reset可和set沒多大關(guān)系,因為reset是重置(更準確的說是清除數(shù)據(jù))。其格式如下:

  ... reset <目標選擇器>[計分項]

  舉個例子,假設(shè)我們運行了下面的指令:

  /scoreboard players reset 張三666

  你就會驚奇地發(fā)現(xiàn)“張三666”的名字從右邊側(cè)欄的“金錢排行榜”中消失了。這并不是說他被擠出了該排行榜,或是他的分數(shù)被重置為了0,而是他的所有在記分板上的數(shù)據(jù)全部沒掉并且記分板也不再跟蹤他,直到他重新計入到某個計分項中。

  這哪里是reset啊,這簡直是clear??!

  如果你不信,你可以試試/scoreboard list 張三666(列出張三666在記分板上的數(shù)據(jù))或/scoreboard get 張三666(獲取張三666的分數(shù)),看看你能不能再次找到他的數(shù)據(jù)。

  這確實太狠了。如果你只想clear掉他在“金錢”計分項中的數(shù)據(jù),在“張三666”后面加上“金錢”即可,即:/scoreboard players reset 張三666 金錢

 ?。▽嶋H上還可以更狠。目標選擇器使用*可以代指所有正在被追蹤的目標,也就是說/scoreboard players reset *可以完全清除整個記分板上所有玩家和非玩家的數(shù)據(jù))

  你現(xiàn)在可以嘗試弄一個你自己的虛擬貨幣用于服務(wù)器中。

  這個貨幣的名稱自己想。作者想的是:$。

  沒錯,名字允許你填$等符號。我們就以這個符號為名字舉例子,輸入并運行下面的指令:

  /scoreboard objectives add $ dummy §a$

 ?。↗ava版:

  /scoreboard objectives add $ dummy {“text“:“$“,“color“:“yellow“})

  你就成功創(chuàng)建了一個叫做$的虛擬貨幣!

  作者現(xiàn)在沒錢,所以作者我要給自己錢:

  /scoreboard players add @s $ 1000000

  OK,現(xiàn)在作者有100萬美元了?。ó斎皇怯螒蚶铮?。

  現(xiàn)在你可以嘗試做一個記分板商店。我們運用clear指令和scoreboard指令結(jié)合即可建成一個收購商店(使用物品換取虛擬幣)。而使用scoreboard和give指令可以建成一個用虛擬幣購買實物的商店。

  但是,計分項的分數(shù)可以是負數(shù)!我們既然要搞虛擬貨幣,就要防止這種負數(shù)欠賬的事情發(fā)生。

  此時,test子命令就派上用場了!

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