首頁 游戲

Minecraft指令手冊(cè)

第四十三章 players——記分板商店

Minecraft指令手冊(cè) 你好MC 650 2020-01-24 14:15:59

  test,之前見過,意為“探測(cè)”、“檢測(cè)”。通過test,可以探測(cè)一個(gè)變量的分?jǐn)?shù)是否在一個(gè)區(qū)間內(nèi)。我們就得通過它,來防止欠賬的事情發(fā)生。

 ?。ㄗ⒁猓瑃est子命令在Java1.13更新中被移除?,F(xiàn)在僅Java1.12.2及以下版本和基巖版擁有該子命令)

  現(xiàn)在已經(jīng)有了“$”這個(gè)貨幣,并且作者有100萬$(游戲里)。假設(shè)現(xiàn)在有一個(gè)物品,價(jià)值120萬$(什么東東這么貴)。如果這個(gè)記分板商店就是一個(gè)scoreboard—players—remove加上/give,那么作者也會(huì)買成功,但是$變成了-20萬$(欠了20萬美元)。

  但是,Minecraft里可沒有自帶還債機(jī)制,所以作者能夠一直扣下去。

  為了防止這種事情的發(fā)生,我們就需要用到test子命令。其格式是:

  ... test <目標(biāo)選擇器><計(jì)分項(xiàng)><最小值>[<最大值>]

  注意,在Java版有test的時(shí)候,格式確實(shí)如上,“最大值”參數(shù)是選填的。但在基巖版中,“最大值”參數(shù)是必填的。

  假設(shè)我們要使用test檢測(cè)玩家“李四250”是否能夠購買這個(gè)120萬美元的東西,我們就需要執(zhí)行指令:

  /scoreboard players test 李四250 $ 1200000 *

  其中,最大值被替換為了星號(hào)。這個(gè)“星號(hào)”是什么意思呢?

  當(dāng)最小值填*時(shí),代指-2147483648;當(dāng)最大值填*時(shí),代指2147483647。

  也就是說,這個(gè)/scoreboard players test 李四250 $ 1200000 *,實(shí)際上是/scoreboard players test 李四250 $ 1200000 2147483647。

  所以這條指令的意思是:

  檢測(cè)玩家“李四250”在$計(jì)分項(xiàng)上的分?jǐn)?shù)是否大于等于1200000(并小于2147483647)。

  如果成功,那么游戲會(huì)提示“分?jǐn)?shù)xxx在1200000到2147483647范圍內(nèi)”。

  如果失敗,則會(huì)在“在”字前加個(gè)“不”字,并將整個(gè)消息的顏色改為紅色。

  在命令方塊中檢測(cè)成功也會(huì)輸出信號(hào),進(jìn)而激活接下來的命令方塊。

  我們記分板商店的原理之一就是這個(gè)。命令方塊如下擺放即可做成簡單的記分板商店:

  A→B→C

  A(脈沖,不受制約/無條件,紅石控制/需要紅石):

  /scoreboard players test @p $<物品單價(jià)>*

  B(連鎖,條件制約/有條件的,保持開啟/始終活動(dòng)):

  /scoreboard players remove @p $<物品單價(jià)>

  C(連鎖,條件制約/有條件的,保持開啟/始終活動(dòng)):

  /give @p <物品id> 1

  這是最簡單的記分板商店,其購買流程如下:

  玩家按下拉桿激活A(yù)→A執(zhí)行指令,檢測(cè)玩家是否能夠購買→如果能,激活B/如果不能,結(jié)束購買→B執(zhí)行指令,扣除玩家虛擬幣,并激活C→C執(zhí)行指令,給予物品給玩家→購買成功

  這種記分板商店還有許多待完善之處:

 ?、儆捎谑褂聾p選取最近玩家,B和C可能將指令執(zhí)行到錯(cuò)誤的玩家上

 ?、谶h(yuǎn)處的玩家也可以碰到拉桿,但命令方塊可能不會(huì)將指令執(zhí)行到該玩家身上

 ?、鄢晒褪《紱]有消息提示

  解決辦法也很簡單:

  一、目標(biāo)選擇器加上x、y、z參數(shù)指定執(zhí)行中心,加上r或dx、dy、dz指定執(zhí)行范圍。

  二、將每個(gè)購買項(xiàng)目單獨(dú)做成一間1×1的鐵門間,門內(nèi)放測(cè)重壓力板(如有裝mod,可以使用夸克模組內(nèi)的黑曜石壓力板,更加安全)。

  三、可以在A前面再加上兩個(gè)命令方塊D和E,在C后面加上F,即D→E→A→B→C→F。把A改為連鎖,不受制約/無條件,保持開啟/始終活動(dòng)。D、E和F如下:

  D(脈沖,不受制約/無條件,紅石控制/需要紅石):

  /scoreboard players test @p $*<物品單價(jià)-1>

  E(連鎖,條件制約/有條件的,保持開啟/始終活動(dòng)):

  /tellraw @p {“text“:“購買失敗“,“color“:“red“}

  F(連鎖,條件制約/有條件的,保持開啟/始終活動(dòng)):

  /tellraw @p {“text“:“購買成功“,“color“:“green“}

  其原理就是在檢測(cè)檢測(cè)玩家是否能夠購買前檢測(cè)玩家是否不能購買。如果確實(shí)不能,發(fā)出消息“購買失敗”。以及在玩家購買成功后發(fā)送“購買成功”的消息。

  注意,在這里,D和E不能放在A、B、C、F之后,即不能:

  A→B→C→F→D→E

  這主要是因?yàn)檫@是就變成了在檢測(cè)玩家是否能購買后再檢測(cè)一遍是否不能購買。不要小看這一前一后的問題,如果這名玩家能購買,購買成功后就不能再購買一個(gè)了,那么這個(gè)商店就會(huì)先后發(fā)出“購買成功”、“購買失敗”兩條消息。

  現(xiàn)在,你知道如何做一個(gè)最基礎(chǔ)的記分板商店了吧?這東西在網(wǎng)易租貸服中可大有用處。(畢竟網(wǎng)易租貸服可加不了什么mod或插件,只能靠指令)

  記分板簡要?dú)v史:

  Java

  1.5——加入了記分板

  1.7.2——計(jì)分項(xiàng)的準(zhǔn)則現(xiàn)在可以使用統(tǒng)計(jì)菜單中的數(shù)據(jù)了

  1.8——現(xiàn)在非玩家也能被記分板追蹤并擁有分?jǐn)?shù)了;為players下的reset子命令加入了“計(jì)分項(xiàng)”參數(shù);統(tǒng)計(jì)類準(zhǔn)則可以使用ID名了;加入了隊(duì)伍擊殺相關(guān)準(zhǔn)則以及其他的一堆準(zhǔn)則;為players下的add、set和remove子命令加入了NBT參數(shù);為operation加入了=、>、<和><操作。

  1.8.2——又加入了一堆準(zhǔn)則

  1.9——加入了stat.sneakTime、xp、food、armor、level和air等準(zhǔn)則。

  1.13——準(zhǔn)則大改;加入了/scoreboard objectives modify子命令。

  基巖版

  1.7.0——加入了被閹割的記分板和dummy準(zhǔn)則。

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