ユーザーブロマガは2021年10月7日(予定)をもちましてサービスを終了します

Minecraft ver1.13 で使いまくるかもしれないコマンド類の雑記
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

Minecraft ver1.13 で使いまくるかもしれないコマンド類の雑記

2017-12-15 14:22
  • 4
・バニラの進捗,レシピなどを無効化(通知も削除)
datapack disable vanilla

・直前の結果の確認方法
- 準備
scoreboard objectives add IF dummy 条件分岐
- 使い方
execute store success score check IF run <チェックしたいコマンド>
execute score check IF matches 1 run <成功した場合>
execute score check IF matches 0 run <失敗した場合>

・所持判定してからコマンド実行
- リピートコマブロにclearでの判定があり、コンパレータを繋げてる場合
(コマブロ内は"/clear @a minecraft:検知したいアイテム 0")
execute if block -931 4 465 minecraft:comparator[powered=true] run say test
- NBTタグで検知
execute at @a[nbt={Inventory:[{id:"minecraft:検知したいアイテム"}]}] run say test
- 持っていない判定
execute at @a[nbt=!{Inventory:[{id:"minecraft:検知したいアイテム"}]}] run say test
- 何も持っていない判定
execute at @a[nbt={Inventory:[]}] run say test

・プレイヤー関係
- 現在の体力をスコアに入れる
execute store result score @a TEST run data get entity @p Health
- 現在選択しているアイテムスロット番号を取得する
execute store result score @a TEST run data get entity @p SelectedItemSlot
- 現在寝ているか判定する
execute at @a[nbt={Sleeping:0b}] run say test
- 現在地面に立っているか判定する
execute at @a[nbt={OnGround:1b}] run say test
- 足元のブロックチェック
execute at @p if block ~ ~-1 ~ minecraft:stone run say test
- 出来る限りアイテムを捨てさせない
execute at @p run data merge entity @e[limit=1,type=item,distance=..3] {PickupDelay:0}

・一度だけ実行
- 準備
scoreboard objectives add ONCE dummy
scoreboard players set one ONCE 0
- 使い方
execute score one ONCE matches 0 store success one ONCE run say test

・データパックのディレクトリ構成
+ [フォルダ] saves
 + [フォルダ] (ワールドの名前)
  + [フォルダ] datapacks
   + [フォルダ or zip形式] (データパックの名前)
    - [ファイル] pack.mcmeta
    + [フォルダ] data
     + [フォルダ] (名前空間の名前)
      + [フォルダ] advancements (進捗関係)
      + [フォルダ] functions (関数関係)
      + [フォルダ] loot_tables (ルートテーブル関係)
      + [フォルダ] recipes (カスタムレシピ関係)
      + [フォルダ] structures (ストラクチャー関係)
      + [フォルダ] tags (タグ関係)
       + [フォルダ] blocks
       + [フォルダ] items
       + [フォルダ] functions

・Tagsについて
+ [フォルダ] tags (タグ関係)
 + [フォルダ] blocks
 + [フォルダ] items
 + [フォルダ] functions
これらは、ブロックなどを1つにまとめることができる
例) data/test(任意)/tags/blocks/ground(任意).json
{
 "values": [
  "minecraft:stone",
  "minecraft:grass_block"
 ]
}
みたいに書いた場合、
execute at @p if block ~ ~-1 ~ #test:ground run say test
とリピートに入れると、"石ブロックと草ブロック"の上にいる時、だけ実行される

・毎Tick実行してくれるFunction
data/minecraft/tags/functions/tick.json
に以下のようにfunctionファイルを指定すると毎tick実行してくれる
{
 "values": [
  "test:exec",
  "test:hello/world"
 ]
}
・Functionファイルの実行順序
基本的に全部順番に実行される

# func:testaのファイルの中身
say a1
function func:testb
say a2
say a3

# func:testbのファイルの中身
say b1
function func:testc
say b2
say b3

# func:testcのファイルの中身
say c1
say c2
say c3

と各ファイルに書いた場合、
- a1
- b1
- c1
- c2
- c3
- b2
- b3
- a2
- a3
の順番で実行される
そのため、scoreboardで引数をsetして、中で使って値をsetして返すことも可能
広告
×
何も持っていない判定に【!】はいらないのでは?
36ヶ月前
×
>>1
確かに!ご指摘ありがとうございます!
36ヶ月前
×
タグ付きのアイテムを持ってるか検知できますか?
15ヶ月前
×
>>3
解決しました!

@a[nbt={Inventory:[{id:"minecraft:検知したいアイテム",tag{tag:test}}]}]
15ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。