【MCJE】如何使用命令完成物品交易
所謂交易,或者說以物易物,在其中一方看來,其實(shí)包含兩個部分:消耗物品,得到物品
因此就容易聯(lián)想到這兩個命令:
/give 目標(biāo) 物品{物品數(shù)據(jù)標(biāo)簽} 數(shù)量
/clear 目標(biāo) 物品{物品數(shù)據(jù)標(biāo)簽} 最大清除數(shù)量
/give可以給“目標(biāo)”指定數(shù)量的指定物品
而/clear可以清除“目標(biāo)”指定數(shù)量的指定物品
在進(jìn)行交易的玩家視角,這就分別相當(dāng)于得到和消耗的兩個效果
因此只需要這兩條命令就可以實(shí)現(xiàn)完成交易這一效果
(注:你需要先獲得該“特殊綠寶石”用于交易:聊天框輸入/give @s minecraft:emerald{tag:["A"]} 64即可)
完成交易:
clear @p emerald{tag:["A"]} 40
give @p diamond_sword{} 1
//*這兩條命令在執(zhí)行完成交易時(shí)依次執(zhí)行
//完成“用40個帶有標(biāo)簽tag:["A"]的綠寶石兌換一把普通鉆石劍”
但還有一個問題是,這只是完成交易的部分,而完成交易之前,還需要先確認(rèn)是否能交易
在很古老的時(shí)代曾看過基巖版玩家用條件制約使give命令在clear能成功清除時(shí)才執(zhí)行,這樣已經(jīng)做到了一半,也就是在能交易時(shí),才能得到物品,但這個辦法是不好的,它無論在什么時(shí)候都會進(jìn)行消耗物品
而無論是在最新的java版還是在最新的基巖版,都已經(jīng)可以做到更好的檢測了,我以java版舉例:
scoreboard objectives add score dummy
//*初始化計(jì)分項(xiàng),在一個存檔內(nèi)只需要執(zhí)行一次(直接聊天框手打一次)
execute store result score #Count score run clear @p emerald{tag:["A"]} 0
//將背包中擁有的特殊綠寶石數(shù)量覆蓋到“分 數(shù)”中
execute if score #Count score matches 40.. run clear @p emerald{tag:["A"]} 40
execute if score #Count score matches 40.. run give @p diamond_sword{} 1
//如果“分?jǐn)?shù)”大于等于40(即背包中有足夠的特殊綠寶石)就扣除40個特殊綠寶石,并給予一把普通鉆石劍
//*連鎖執(zhí)行,在進(jìn)行交易時(shí)執(zhí)行(用脈沖連鎖連起來,用按鈕等激活脈沖命令方塊以進(jìn)行一次購買)
原理:
clear命令執(zhí)行完會返回一段數(shù)值,當(dāng)清除了物品時(shí)會返回清除的數(shù)量,而當(dāng)clear后面的最大清除數(shù)量為0時(shí)便會返回身上所有的符合條件的物品數(shù)量
這一個返回的數(shù)值,又可以用execute命令store result儲存到一個指定的位置,而這個位置,又可以是一個計(jì)分板分?jǐn)?shù)
因此,便能將身上所有的某物品的數(shù)量,覆蓋到一個分?jǐn)?shù)中去(也就是那個#Count score)
而分?jǐn)?shù)的值,又可以用于條件判斷
if score #Count score matches 40..的意思便是在數(shù)值大于等于40時(shí)才執(zhí)行
仔細(xì)看會發(fā)現(xiàn),最后兩條命令“run”前面的內(nèi)容是完全一致的,這一部分包括一個判斷的條件:
分?jǐn)?shù)大于等于40 即背包中的這種綠寶石大于等于40個 時(shí) 執(zhí)行后面的部分
因?yàn)闂l件完全一致,因此它們后面部分的命令會在這個條件達(dá)成時(shí)同時(shí)(或者說依次)執(zhí)行
再仔細(xì)看一下,被執(zhí)行的“后面這一部分”,其實(shí)就是前面完成交易的命令
所以,這一整大部分,就已經(jīng)包含了“是否能交易”以及執(zhí)行“完成交易”這兩份內(nèi)容了
于是,便能完成最終的效果
對于很少接觸過命令的人,這份教程或許會很難以理解,想要了解其中使用的命令的可以再到以下頁面中探索:
使用的四種命令:
命令/give - Minecraft Wiki_BWIKI_嗶哩嗶哩 (biligame.com)
命令/clear - Minecraft Wiki_BWIKI_嗶哩嗶哩 (biligame.com)
命令/execute - Minecraft Wiki_BWIKI_嗶哩嗶哩 (biligame.com)
命令/scoreboard - Minecraft Wiki_BWIKI_嗶哩嗶哩 (biligame.com)
nbt相關(guān)內(nèi)容:
教程/NBT命令標(biāo)簽 - Minecraft Wiki_BWIKI_嗶哩嗶哩 (biligame.com)