コマンド・NBTの質問トピック

シングル/マルチ含め、ゲームプレイに関する質問ができます
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.295580)

Re: コマンド・NBTの質問トピック

投稿記事by midorinohito » 2017年2月11日(土) 21:37

メノウ石英 さんが書きました:一般モンスターにエンダードラゴンやウィザーのようなHPゲージを付けたいのですが、
そのようなことは出来ますかね?

不可能でしょうか、私が出来ないだけかもしれません。
ただブロックのボス等ならダメージ部分をウィザーにするなどで再現できると思います。
一般モンスターなら、右のディスプレイに表示する形でスコアボードで出来るはずです。
画像
midorinohito
ID:3d388869
石炭掘り
 
記事: 195
登録日時: 2016年9月07日(水) 19:29
お住まい: あなたの後ろ

  • (PostNo.295589)

Re: コマンド・NBTの質問トピック

投稿記事by ookiikuma » 2017年2月11日(土) 23:01

メノウ石英 さんが書きました:一般モンスターにエンダードラゴンやウィザーのようなHPゲージを付けたいのですが、
そのようなことは出来ますかね?
一応エンドラとウィザスケのHPをリンクさせようとしたのですが、
どうもうまく行かなくて…

midorinohito氏の補足的に。
該当するエンティティのHPをスコアにするということが出来ればHPゲージを出すことも可能であると思います。(HPをスコアにするのはregeneration方式が現在人気ですかね。)
あとボスバー方式のMAPも探せばあると思うのでそういうMAPを参考にするってのも手ですね。
コマンドを並程度に触ってる準コマンドー。人狼とかアスレとかLootTable生成機とか作った。
5000兆円欲しい!
ookiikuma
ID:eeb2bce0
金掘り
 
記事: 369
登録日時: 2015年2月09日(月) 17:54

  • (PostNo.295603)

Re: コマンド・NBTの質問トピック

投稿記事by enja » 2017年2月12日(日) 00:45

とあるサイトを参考にエリトラを使用して無限飛行できるコマンドを真似して
作ろうとしましたが何かおかしいようで1.以降のコマンドブロックが動作していません
何卒、修正点をご教授願いたく存じます。
以下仕様

1.リピート・無条件・常時実行
/testfor @a {Inventory:[{Slot:102b,id:"minecraft:elytra"}]}
2.チェーン・条件付き・常時実行
/execute @a ~ ~ ~ detect ~ ~-2 ~ minecraft:air 0 summon Silverfish ~ ~-0.1 ~ {NoGravity:1,NoAI:1,Silent:1,ActiveEffects:[{Id:14,Amplifier:0,Duration:20,ShowParticles:0b}]}
3.チェーン・条件付き・常時実行
/tp @e[type=Silverfish] ~ ~-1000 ~
4.チェーン・条件付き・常時実行
/execute @a ~ ~ ~ /particle explode ~ ~ ~ 0 0 0 1
enja
ID:b3de487a
 

  • (PostNo.295627)

Re: コマンド・NBTの質問トピック

投稿記事by ookiikuma » 2017年2月12日(日) 12:51

enja さんが書きました:とあるサイトを参考にエリトラを使用して無限飛行できるコマンドを真似して
作ろうとしましたが何かおかしいようで1.以降のコマンドブロックが動作していません
何卒、修正点をご教授願いたく存じます。
以下仕様

1.リピート・無条件・常時実行
/testfor @a {Inventory:[{Slot:102b,id:"minecraft:elytra"}]}
2.チェーン・条件付き・常時実行
/execute @a ~ ~ ~ detect ~ ~-2 ~ minecraft:air 0 summon Silverfish ~ ~-0.1 ~ {NoGravity:1,NoAI:1,Silent:1,ActiveEffects:[{Id:14,Amplifier:0,Duration:20,ShowParticles:0b}]}
3.チェーン・条件付き・常時実行
/tp @e[type=Silverfish] ~ ~-1000 ~
4.チェーン・条件付き・常時実行
/execute @a ~ ~ ~ /particle explode ~ ~ ~ 0 0 0 1

Minecraftのバージョンはいくらでしょうか。
1.10くらいからエンティティIDが変更になったのでそれ以降だと"Silverfish"ではsummon出来ません。
あとID確認して動かなかったら1のコマンドブロックを再設置してみたら動くかもしれません。
コマンドを並程度に触ってる準コマンドー。人狼とかアスレとかLootTable生成機とか作った。
5000兆円欲しい!
ookiikuma
ID:eeb2bce0
金掘り
 
記事: 369
登録日時: 2015年2月09日(月) 17:54

  • (PostNo.295630)

Re: コマンド・NBTの質問トピック

投稿記事by enja » 2017年2月12日(日) 12:56

ookiikumaさん
ありがとうございます。
ちょうど1.10.2で行おうとしていたのでエンティティIDをチェックしなおしたところうまく動きました。
お手数おかけしました。
enja
ID:b3de487a
 

  • (PostNo.295676)

Re: コマンド・NBTの質問トピック

投稿記事by メノウ石英 » 2017年2月12日(日) 19:12

midorinohito さんが書きました:
メノウ石英 さんが書きました:一般モンスターにエンダードラゴンやウィザーのようなHPゲージを付けたいのですが、
そのようなことは出来ますかね?

不可能でしょうか、私が出来ないだけかもしれません。
ただブロックのボス等ならダメージ部分をウィザーにするなどで再現できると思います。
一般モンスターなら、右のディスプレイに表示する形でスコアボードで出来るはずです。


お二方、どうもありがとうございました。
とりあえずブロックのボスにHPゲージを付与することは出来たので、
これから色々試行錯誤してみます。
アバター
メノウ石英
ID:f6a8434b
水から上がったとこ
 
記事: 7
登録日時: 2017年2月11日(土) 20:42
お住まい: 黒く輝く闇

  • (PostNo.296144)

Re: コマンド・NBTの質問トピック

投稿記事by トロイ » 2017年2月18日(土) 17:52

えっと、二つ質問です
スコアボードの種類でstat系統だったと思うのですが、「指定したアイテムを食べた際」に増えるスコアの種類を教えていただきたいです
又、モブのHPをスコアにする方法もご存じの方がいましたら教えていただきたいです
トロイ
ID:f3a5c1dc
 

  • (PostNo.296207)

Re: コマンド・NBTの質問トピック

投稿記事by midorinohito » 2017年2月19日(日) 07:38

トロイ さんが書きました:えっと、二つ質問です
スコアボードの種類でstat系統だったと思うのですが、「指定したアイテムを食べた際」に増えるスコアの種類を教えていただきたいです
又、モブのHPをスコアにする方法もご存じの方がいましたら教えていただきたいです


指定したアイテムを食べた時だとstat.useitem.minecraft.{ID}で出来ます、
他にstat.cakeSlicesEatenで置いてあるケーキを食べることで増えます
モブのHPをスコアにする方法は後述
画像
midorinohito
ID:3d388869
石炭掘り
 
記事: 195
登録日時: 2016年9月07日(水) 19:29
お住まい: あなたの後ろ

  • (PostNo.296211)

Re: コマンド・NBTの質問トピック

投稿記事by ookiikuma » 2017年2月19日(日) 09:42

トロイ さんが書きました:えっと、二つ質問です
スコアボードの種類でstat系統だったと思うのですが、「指定したアイテムを食べた際」に増えるスコアの種類を教えていただきたいです
又、モブのHPをスコアにする方法もご存じの方がいましたら教えていただきたいです

モブのHPをスコアにするのは方法が幾つかあります。

①ごり押す
scoreboardで{Health:<>f}のモブにそのHPに合ったスコアを与えます。
欠点としては普通に面倒くさいです。
②regeneration方式
HPが満タンじゃなかったらスコアを1引いて再生能力を付与します。
欠点は再生ポーションとかが効かなくなることですかね。

おそらく他の方法もあると思いますし上記の方法を使ったMAP等もありますので詳しいことは自分で調べてみてくださいね。
コマンドを並程度に触ってる準コマンドー。人狼とかアスレとかLootTable生成機とか作った。
5000兆円欲しい!
ookiikuma
ID:eeb2bce0
金掘り
 
記事: 369
登録日時: 2015年2月09日(月) 17:54

  • (PostNo.296305)

Re: コマンド・NBTの質問トピック

投稿記事by midorinohito » 2017年2月20日(月) 05:45

バージョンは1.11.2です。
とある再現ワールドを作っているのですが、そのセーブとロードが私にとって難問となってしまいました。
内容としてはセーブでは本を開き、書き込むという所をクリックすると
現在のプレイヤーのスコアを全部保存して、立っているところを検知してtpコマンドに入れます、そして
本に立っていたところを自動で書き、プレイヤーに分かりやすい名前を書き込んでもらいます
ロードはさっき書き込んだもの(↑のもの)をクリックすると、そこにtpし、スコアもsetされるようにします。

ですが、スコアを全部保存する、立っているところを検知してtpコマンドに入れる、というのが技術不足で
どのようにすればいいのかが分かりません。(現在床としているブロックは100ブロック以上あるのでtestforで一つ一つ読み込むのはコマンドがかなり多くなってしまいます)
どなたかヒントを下さい。
画像
midorinohito
ID:3d388869
石炭掘り
 
記事: 195
登録日時: 2016年9月07日(水) 19:29
お住まい: あなたの後ろ

  • (PostNo.296322)

Re: コマンド・NBTの質問トピック

投稿記事by Hira04 » 2017年2月20日(月) 14:28

midorinohito さんが書きました:バージョンは1.11.2です。
とある再現ワールドを作っているのですが、そのセーブとロードが私にとって難問となってしまいました。
内容としてはセーブでは本を開き、書き込むという所をクリックすると
現在のプレイヤーのスコアを全部保存して、立っているところを検知してtpコマンドに入れます、そして
本に立っていたところを自動で書き、プレイヤーに分かりやすい名前を書き込んでもらいます
ロードはさっき書き込んだもの(↑のもの)をクリックすると、そこにtpし、スコアもsetされるようにします。

ですが、スコアを全部保存する、立っているところを検知してtpコマンドに入れる、というのが技術不足で
どのようにすればいいのかが分かりません。(現在床としているブロックは100ブロック以上あるのでtestforで一つ一つ読み込むのはコマンドがかなり多くなってしまいます)
どなたかヒントを下さい。


少々強引な手法かつ常時実行のリピートを用いることになっていまいますが
常時実行のリピートでtag付与を検知してしまう方法になります
  1. 「tag : save」を持つプレイヤー座標に防具立て(tag : save,Invisible:1b,Marker:1b)をsummonする
  2. summonから条件付きリピートで「tag : save」持ちプレイヤーのスコアボードを全て防具立てにコピー
  3. プレイヤーの「tag : save」を除去する
  4. 「立っていたところにtp」の処理を「防具立ての位置にtp」という処理にする
本でのコマンドでプレイヤーに「tag : save」を付与することによりsaveフラグとすれば1度のsaveでエンティティ1体で済むかと

※マルチ環境のテストが出来ないためマルチでの動作は保証しかねます…
スコアボードは3つ(A,B,C)とし、各値をプレイヤーは既に保有しているものとする
  1. リピート , 常時実行
    コード: 全て選択
    /execute @a[tag=save] ~ ~ ~ summon minecraft:armor_stand ~ ~ ~ {NoGravity:1b,Maker:1b,Invisible:1b,Tags:[save]}
  2. チェイン , 条件付き
    コード: 全て選択
    /execute @a[tag=save] ~ ~ ~ scoreboard players operation @e[tag=save,r=0,type=armor_stand] A = @a[tag=save,c=1] A
  3. チェイン , 条件付き
    コード: 全て選択
    /execute @a[tag=save] ~ ~ ~ scoreboard players operation @e[tag=save,r=0,type=armor_stand] B = @a[tag=save,c=1] B
  4. チェイン , 条件付き
    コード: 全て選択
    /execute @a[tag=save] ~ ~ ~ scoreboard players operation @e[tag=save,r=0,type=armor_stand] C = @a[tag=save,c=1] C
  5. チェイン , 条件付き
    [code]/execute @e[tag=save,type=armor_stand,score_C_min=0] ~ ~ ~ scoreboard players tag @a[tag=save,r=0] remove save
セーブ地点を1つだけとするなら1の前にsaveタグ持ちの防具立てをkillする処理を入れるなりしてください。
この方法ではスコアの種類が増えればコマンドブロックの列が長くなってしまいますので、summonからのチェインでsetblock redstone_blockを挟み、その先でスコアボードのコピーを実行してしまうのもありかもしれません。タグ除去を防具立てのスコアCが0以上のものを基準としているのはセーブが終わったか否かといったただの確認的なものです。
この問題点はマルチで且つ空中にいるときに実行されると防具立てにスコアがコピー出来ないおそれがあることです。
対策としては上記コマンドの@e[tag=save,r=0,type=armor_stand]の部分を@e[tag=save,r=1,type=armor_stand]にしてある程度のズレを黙殺してしまう方法があります
検証勢を見守る勢
コマンド難しいです…
JSONのエスケープは手打ち勢には厳しい…
アバター
Hira04
ID:580b7a09
石掘り
 
記事: 85
登録日時: 2016年6月29日(水) 16:48
お住まい: biome 127

  • (PostNo.296336)

Re: コマンド・NBTの質問トピック

投稿記事by midorinohito » 2017年2月20日(月) 18:14

Hira04 さんが書きました:
midorinohito さんが書きました:バージョンは1.11.2です。
とある再現ワールドを作っているのですが、そのセーブとロードが私にとって難問となってしまいました。
内容としてはセーブでは本を開き、書き込むという所をクリックすると
現在のプレイヤーのスコアを全部保存して、立っているところを検知してtpコマンドに入れます、そして
本に立っていたところを自動で書き、プレイヤーに分かりやすい名前を書き込んでもらいます
ロードはさっき書き込んだもの(↑のもの)をクリックすると、そこにtpし、スコアもsetされるようにします。

ですが、スコアを全部保存する、立っているところを検知してtpコマンドに入れる、というのが技術不足で
どのようにすればいいのかが分かりません。(現在床としているブロックは100ブロック以上あるのでtestforで一つ一つ読み込むのはコマンドがかなり多くなってしまいます)
どなたかヒントを下さい。


少々強引な手法かつ常時実行のリピートを用いることになっていまいますが
常時実行のリピートでtag付与を検知してしまう方法になります
  1. 「tag : save」を持つプレイヤー座標に防具立て(tag : save,Invisible:1b,Marker:1b)をsummonする
  2. summonから条件付きリピートで「tag : save」持ちプレイヤーのスコアボードを全て防具立てにコピー
  3. プレイヤーの「tag : save」を除去する
  4. 「立っていたところにtp」の処理を「防具立ての位置にtp」という処理にする
本でのコマンドでプレイヤーに「tag : save」を付与することによりsaveフラグとすれば1度のsaveでエンティティ1体で済むかと

※マルチ環境のテストが出来ないためマルチでの動作は保証しかねます…
スコアボードは3つ(A,B,C)とし、各値をプレイヤーは既に保有しているものとする
  1. リピート , 常時実行
    コード: 全て選択
    /execute @a[tag=save] ~ ~ ~ summon minecraft:armor_stand ~ ~ ~ {NoGravity:1b,Maker:1b,Invisible:1b,Tags:[save]}
  2. チェイン , 条件付き
    コード: 全て選択
    /execute @a[tag=save] ~ ~ ~ scoreboard players operation @e[tag=save,r=0,type=armor_stand] A = @a[tag=save,c=1] A
  3. チェイン , 条件付き
    コード: 全て選択
    /execute @a[tag=save] ~ ~ ~ scoreboard players operation @e[tag=save,r=0,type=armor_stand] B = @a[tag=save,c=1] B
  4. チェイン , 条件付き
    コード: 全て選択
    /execute @a[tag=save] ~ ~ ~ scoreboard players operation @e[tag=save,r=0,type=armor_stand] C = @a[tag=save,c=1] C
  5. チェイン , 条件付き
    [code]/execute @e[tag=save,type=armor_stand,score_C_min=0] ~ ~ ~ scoreboard players tag @a[tag=save,r=0] remove save
セーブ地点を1つだけとするなら1の前にsaveタグ持ちの防具立てをkillする処理を入れるなりしてください。
この方法ではスコアの種類が増えればコマンドブロックの列が長くなってしまいますので、summonからのチェインでsetblock redstone_blockを挟み、その先でスコアボードのコピーを実行してしまうのもありかもしれません。タグ除去を防具立てのスコアCが0以上のものを基準としているのはセーブが終わったか否かといったただの確認的なものです。
この問題点はマルチで且つ空中にいるときに実行されると防具立てにスコアがコピー出来ないおそれがあることです。
対策としては上記コマンドの@e[tag=save,r=0,type=armor_stand]の部分を@e[tag=save,r=1,type=armor_stand]にしてある程度のズレを黙殺してしまう方法があります

回答ありがとうございます。
おかげで出来ました。
スコアを保存等をするときはoperationを使えばよかったんですね、私の勉強不足でした
画像
midorinohito
ID:3d388869
石炭掘り
 
記事: 195
登録日時: 2016年9月07日(水) 19:29
お住まい: あなたの後ろ

  • (PostNo.296460)

Re: コマンド・NBTの質問トピック

投稿記事by nizi » 2017年2月22日(水) 20:47

マインクラフトのScoreboardコマンドのObjactの判定でstat.killEntityがあるんですが、これを[スティーブ]などの名前をつけたEntityだけカウントすることは可能でしょうか?
回答よろしくお願いします!
nizi
ID:00bf8f0b
 

  • (PostNo.296471)

Re: コマンド・NBTの質問トピック

投稿記事by ookiikuma » 2017年2月22日(水) 22:35

nizi さんが書きました:マインクラフトのScoreboardコマンドのObjactの判定でstat.killEntityがあるんですが、これを[スティーブ]などの名前をつけたEntityだけカウントすることは可能でしょうか?
回答よろしくお願いします!

statではおそらく不可能です。
またstat以外で特定のエンティティの死亡を検知というのも(不可能ではないですが)また面倒です。
死亡検知方法例
①エンティティにPassengersでアーマースタンド辺りを載せておきそれが落ちたら死亡したとする
②MOBのHPをscoreで管理する
コマンドを並程度に触ってる準コマンドー。人狼とかアスレとかLootTable生成機とか作った。
5000兆円欲しい!
ookiikuma
ID:eeb2bce0
金掘り
 
記事: 369
登録日時: 2015年2月09日(月) 17:54

  • (PostNo.297693)

Re: コマンド・NBTの質問トピック

投稿記事by 焼きプリン » 2017年3月10日(金) 14:04

質問です。
[Lv]というスコアボードを作ってそれが上がる事に細かくHPを上げられるように出来るコマンド
ありませんか?
細かくHPをあげる部分が分からないです。
焼きプリン
ID:784cc3bb
 

  • (PostNo.297750)

Re: コマンド・NBTの質問トピック

投稿記事by midorinohito » 2017年3月11日(土) 10:29

特定のポーションを飲んだら出力するというのを作りたいのですが、うまくいきません、バージョン1.11.2

今考えているのは特定のポーションを持っていて、そこで飲んだというのをスコアで出力して特定の効果を出すのが一つ

もう一つは特定のポーションを持っていて、空瓶に持ち替えた(のんだと想定)のを検知で特定の効果を出す

これだとかなりごり押しなのでどうにかできないのでしょうか...
回答お待ちしています
画像
midorinohito
ID:3d388869
石炭掘り
 
記事: 195
登録日時: 2016年9月07日(水) 19:29
お住まい: あなたの後ろ

  • (PostNo.297777)

Re: コマンド・NBTの質問トピック

投稿記事by ookiikuma » 2017年3月11日(土) 15:44

焼きプリン さんが書きました:質問です。
[Lv]というスコアボードを作ってそれが上がる事に細かくHPを上げられるように出来るコマンド
ありませんか?
細かくHPをあげる部分が分からないです。

ハート2個ごとならeffectコマンドとscoreboardコマンドの併用で出来ます。
(例)
/scoreboard players tag @a[tag=!health] add health
/scoreboard players tag @a remove health {ActiveEffects:[{Id:21}]}
/effect @a[score_Lv_min=<lv>,score_Lv=<lv>,tag=health] health_boost 1000000 <lvに応じたエフェクトlv>
最後のeffectコマンドは条件付きの方がいいかもしれません
コマンドを並程度に触ってる準コマンドー。人狼とかアスレとかLootTable生成機とか作った。
5000兆円欲しい!
ookiikuma
ID:eeb2bce0
金掘り
 
記事: 369
登録日時: 2015年2月09日(月) 17:54

  • (PostNo.297778)

Re: コマンド・NBTの質問トピック

投稿記事by ookiikuma » 2017年3月11日(土) 15:46

midorinohito さんが書きました:特定のポーションを飲んだら出力するというのを作りたいのですが、うまくいきません、バージョン1.11.2

今考えているのは特定のポーションを持っていて、そこで飲んだというのをスコアで出力して特定の効果を出すのが一つ

もう一つは特定のポーションを持っていて、空瓶に持ち替えた(のんだと想定)のを検知で特定の効果を出す

これだとかなりごり押しなのでどうにかできないのでしょうか...
回答お待ちしています

特定のポーションに通常ではつけることの出来ない効果をつけ、その効果が付いたのを検知すればよいのではないでしょうか。
たとえば不運や幸運の高レベル等が使いやすいのでは。
コマンドを並程度に触ってる準コマンドー。人狼とかアスレとかLootTable生成機とか作った。
5000兆円欲しい!
ookiikuma
ID:eeb2bce0
金掘り
 
記事: 369
登録日時: 2015年2月09日(月) 17:54

  • (PostNo.297781)

Re: コマンド・NBTの質問トピック

投稿記事by midorinohito » 2017年3月11日(土) 16:38

ookiikuma さんが書きました:
midorinohito さんが書きました:特定のポーションを飲んだら出力するというのを作りたいのですが、うまくいきません、バージョン1.11.2

今考えているのは特定のポーションを持っていて、そこで飲んだというのをスコアで出力して特定の効果を出すのが一つ

もう一つは特定のポーションを持っていて、空瓶に持ち替えた(のんだと想定)のを検知で特定の効果を出す

これだとかなりごり押しなのでどうにかできないのでしょうか...
回答お待ちしています

特定のポーションに通常ではつけることの出来ない効果をつけ、その効果が付いたのを検知すればよいのではないでしょうか。
たとえば不運や幸運の高レベル等が使いやすいのでは。


なるほど、思いつきませんでした。
おかげで出来ました。
有難うございました
画像
midorinohito
ID:3d388869
石炭掘り
 
記事: 195
登録日時: 2016年9月07日(水) 19:29
お住まい: あなたの後ろ

  • (PostNo.297783)

Re: コマンド・NBTの質問トピック

投稿記事by 折りたたみー » 2017年3月11日(土) 16:59

バージョン1.11.2で、Fireball(ガストの火の玉)を透明にすることはできないでしょうか?
透明化のタグやeffectコマンドなど、色々試してみましたがうまくいきません…
やり方があれば、よろしくお願いします。
折りたたみー
ID:269466a8
 

1つ前へ次へ

Return to 質問:プレイ全般

x