ナポアンドットコム 
/ UPDATE :
POSTED BY :
napoan

[Java版] TAGコマンドの使い方 - エンティティ/プレイヤーをタグで分類

Tag機能の使い方

コマンドでプレイヤーやMobを指定する時、例えば「name=名前」「score_スコア名=○」などの条件を決めて指定しますね。でも、いちいちMobの名前やスコア名を入力するのって面倒で、メンテナンスも大変…

そこで、tagコマンドを使いましょう。エンティティに「タグ」を付けて分類できるんです。 タグ付きでMobを召喚したり、複数タグの判定も可能。コマンドの仕掛け作りが劇的に楽になります!


「Tag」とは?

新機能「Tag」の概要

tagは完全にスコアボードの代わりではなく、スコアボードと比べて様々なメリット・デメリットがあります

  • - 事前にスコアボードを作成したりする必要がない
  • - 追加、削除するだけ
  • - 判定できるのは「タグを持っているか/いないか」だけ
  • - Scoreboardの「stat」のように自動で付与されたりする機能はない
  • - Scoreboardの「dummy」のように、「タグ」は数値のデータを持つことができない
  • - 「○秒経ったら○○する」はスコアボードを使わないと無理

新機能「Tag」でエンティティやプレイヤーにタグを追加する方法

tagの追加
/tag @e[type=Villager,nbt={CustomName:"\"店員さん\""}] add Shop

 

構文

/tag <ターゲット> add <タグ名>
タグを条件に店員さんをキル

/kill @e[tag=Shop]で、「Shop」タグを持っているエンティティをキルします。先ほどのコマンドで、「店員さん」には「Shop」タグが付いたので、ここで一気に殺せるわけです。



最初からタグを付けてMobを召喚すればとっても楽!

最初からタグ付きで召喚すれば楽です

いちいちMobにタグを追加するのは面倒なので、最初からタグを付けて召喚してみましょう。

最初から「Shop」タグが付いた「店員さん」を召喚するコマンド
/summon Villager ~ ~ ~ {Tags:["Shop"],CustomName:店員さん}

エンティティの新しいデータタグ「Tags」を使います。["タグ1","タグ2"]のように書くことで複数のタグを付けて召喚することも可能です。例えば「Shop」と「Town」ならTags:["Shop","Town"]と書くんです。


複数のタグを持っているプレイヤー/エンティティを指定する方法

複数のタグを持つエンティティを指定するには

Mobやプレイヤーにタグを何個も付けて、例えば「タグAとタグBをどちらも持っていると何か起きる」みたいな仕掛けを作る時はどうすればいいのでしょうか。答えは簡単。以下のように指定するんです。

「Zako」と「Dekabana」タグをどちらも持っている魔女を奈落へ落とすコマンド
/execute as @e[type=Witch,tag=Zako,tag=Dekabana] run teleport @s~ ~-300 ~

プレイヤー/エンティティに付いているタグを確認/削除するコマンド

エンティティの持っているタグを確認するには

プレイヤー/エンティティの持っているタグは、そのままでは見ることができませんが、コマンドを使えば対象のプレイヤー/エンティティのtag一覧をチャットログに表示させることができます。以下の構文でコマンドを実行しましょう。

プレイヤー/エンティティの持っているタグを確認するコマンド
/tag <ターゲット(@eなど)> list

また、タグは削除することもできます。

プレイヤー/エンティティの持っているタグを削除するコマンド
/tag <ターゲット> remove タグ名

この時、データタグを条件に削除できるので、例えば「着地したら削除」ならセレクタに[nbt={OnGround:true}]と付けます。コマンドの仕掛けに上手に組み込んで、より高度な仕掛けを作ってみましょう!

Tweet

コメント

記事の内容が最新のものと異なる場合があります。ご了承ください。

“[Java版] TAGコマンドの使い方 - エンティティ/プレイヤーをタグで分類” への11件のフィードバック

  1. SCPを再現しようと頑張ってる人 より:

    タグをつけたプレイヤーがハートが1になった時にキルしたいのですがどのようにすればいいのでしょうか

    • 匿名 より:

      まずはHPをカウントするためのスコアボードを作成します。
      /scoreboard objectives add HP health
      これでプレイヤーのHPが「HP」というスコアボードに自動で代入されるようになりました。
      次に以下のコマンドを常時実行します。
      /kill @a[tag=タグ名,score_HP=2]
      ▲♥1つはHP”2″なので、スコア「HP」が2以下でさらにタグを持っている人をキルします。

  2. 小方こはく より:

    指定したCustomName以外のエンティティをターゲットにすることはできるのでしょうか。
    具体的には、{CustomName:p1}を付けた(p1のところはそれぞれp1〜p9)合計9体のアーマースタンドがあってp1にpAというタグを付け、p1以外のアーマースタンドからpAをremoveしたいのです。
    そこでpAをremoveする対象を@e[name=!p1]としているのですがCustomNameで付けた名前は引数nameに引っかかるのでしょうか。

    • 匿名 より:

      はい、!を付ければ否定の指定が可能です。
      {CustomName:”test”}ってエンティティがいたとして、
      /kill @e[name=!test]
      とすればtest以外のエンティティをキルできます。

  3. hiro より:

    アイテムにもTAGはつけられるのですか?(エンダーパールにつけたい

    • 匿名 より:

      残念ながら、アイテムとして手に持った状態ではタグは付けられません。落ちているアイテムはエンティティなので付けられますが、拾うと消えます…
      落ちているエンダーパールにタグを付ける場合は
      /scoreboard players tag @e[type=Item] add tagName {Item:{id:”minecraft:ender_pearl”}}
      で付けられます。

  4. kaikai より:

    自分にはTAGを付けられますか?

  5. バタフライ より:

    すいません。質問なのですが、tagにbossと付けているのですが、試しで/killのコマンドをtag指定しても機能しないのです@@;
    環境はversion1.12
    ボスに設定している物はこういう感じになっています。
    /summon zombie -98 35 -190 {CustomName:”ソウルハント”,CustomNameVisible:1,Tags:[“boss”],ArmorItems:[{},{},{},{id:”minecraft:stained_glass”,Damage:14,Count:1b}],HandItems:[{id:”minecraft:stone_sword”,Count:1b,tag:{HideFlags:1,AttributeModifiers:[{AttributeName:”generic.maxHealth”,Name:”generic.maxHealth”,Amount:5,Operation:0,UUIDLeast:831139,UUIDMost:516829,Slot:”mainhand”},{AttributeName:”generic.movementSpeed”,Name:”generic.movementSpeed”,Amount:0.02,Operation:0,UUIDLeast:659859,UUIDMost:171926,Slot:”mainhand”},{AttributeName:”generic.attackDamage”,Name:”generic.attackDamage”,Amount:12,Operation:0,UUIDLeast:538483,UUIDMost:231999,Slot:”mainhand”},{AttributeName:”generic.attackSpeed”,Name:”generic.attackSpeed”,Amount:0.05,Operation:0,UUIDLeast:359298,UUIDMost:260009,Slot:”mainhand”}],Unbreakable:1,display:{Name:”ソウルディール”,Lore:[“魂を吸い尽くして、満たされて作られた剣”]},ench:[{id:34,lvl:1}]}},{id:”minecraft:flint”,Count:1b,tag:{HideFlags:1,display:{Name:”ディグの魂”,Lore:[“冒険者:ディグの魂”]},ench:[{id:34,lvl:1}]}}],ArmorDropChances:[0.085F,0.085F,0.085F,0.0F],HandDropChances:[0.055F,0.7F],Attributes:[{Name:generic.maxHealth,Base:80},{Name:generic.movementSpeed,Base:0.25},{Name:generic.attackDamage,Base:6},{Name:generic.followRange,Base:10},{Name:generic.knockbackResistance,Base:0.25},{Name:generic.armor,Base:3}],Health:160.0f}
    そして、tag指定の/killcommandはこういう感じにしています。
    /kill @e[tag=boss] 
    これでなぜかできないのですが…誰か原因分かりませんか??

  6. zZjurijuirZz より:

    アイテムにタグつけられた気が

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

EXR-Network
Powered by EXR-Network
%d人のブロガーが「いいね」をつけました。