by Steve2856 » 2017年6月22日(木) 22:55
giveコマンドの件についてですがscoreboardの値で個数の指定はやろうと思えば可能です。
1番手っ取り早い方法は
give @a[score_item_min=1,2,3,4...,score_item=1,2,3,4...] ...
とやることでその値だけを指定しますが、数が膨大だとコマンドの量も増えてきます
解決策として2の累乗数ごとに高い数値から計算させるといいかと思います(数が少ないと逆にコマンドの量が増えてしまいます)
例 (itemが41のとき)
/execute @a ~ ~ ~ scoreboard players operation @s item2 = @s item
give @a[score_item2_min=32] stone 32
scoreboard players remove @a[score_item2_min=32] item2 32 41-32=9
give @a[score_item2_min=16] stone 16
scoreboard players remove @a[score_item2_min=16] item2 16 実行不可能
give @a[score_item2_min=8] stone 8
scoreboard players remove @a[score_item2_min=8] item2 8 9-8=1
give @a[score_item2_min=4] stone 4
scoreboard players remove @a[score_item2_min=4] item2 4 実行不可能
give @a[score_item2_min=2] stone 2
scoreboard players remove @a[score_item2_min=2] item2 2 実行不可能
give @a[score_item2_min=1] stone 1
scoreboard players remove @a[score_item2_min=1] item2 1 1-1=0
このような計算をすると41個必要なコマンドが約13個で収めることができます。
replaceitemについてはあまり利用したことがないのでなんとも言えませんが、
おそらく全スロットの指定は出来ないかと思います。
アイテムを指定して置き換えることについては1つずつスロットがその条件に合っているかを確認して合っていたらscoreboardにスロットの値にして、
scoreboardの条件からreplaceitemするという面倒な感じのコマンドしか今のところ思いつきませんでした。
長文失礼しました。