コマンドブロックを使用した爆発する矢の作成について

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

コマンドブロックを使用した爆発する矢の作成について

投稿記事by SUMANN » 2017年8月06日(日) 05:05

コマンドブロックを使用し爆発する矢を作成したのですが、一射目の矢が地面に刺さった瞬間に二射目の矢を放つと二射目の矢が放たれた瞬間に爆発してしまいます。
ネット上やフォーラムで検索しても爆発する矢の作成法しか出てこず、同じような質問すら見当たりませんでした。
地面に刺さった矢だけが爆発するようにはできないでしょうか、ご助力お願いします。

使用バージョン:1.12
使用環境:バニラ
使用コマンド
① /testfor @e[type=Arrow] {inGround:true}
② /execute @e[type=Arrow] ~ ~ ~ summon tnt ~ ~ ~ {Fuse:0}
③  /kill @e[type=Arrow] {inGround:true}
使用方法
リピート、無条件、動力が必要に設定したコマンドブロックを設置し①を入力
→出力先にチェーン、条件付き、常時実行に設定したコマンドブロックを設置し②を入力
→出力先にチェーン、条件付き、常時実行に設定したコマンドブロックを設置し③を入力
→一つ目のコマンドブロックの隣にレッドストーンブロックを設置する
SUMANN
ID:856aec0f
 

  • (PostNo.305865)

Re: コマンドブロックを使用した爆発する矢の作成について

投稿記事by SUMANN » 2017年8月06日(日) 05:45

追記:シングルプレイです、失礼しました。
SUMANN
ID:856aec0f
 

  • (PostNo.305876)

Re: コマンドブロックを使用した爆発する矢の作成について

投稿記事by Hira04 » 2017年8月06日(日) 13:48

失敗の原因は「地面に刺さった矢が合った場合、「矢」の位置にtntを召喚する」という動作をしているため、
tnt召喚時の区別が「矢」でしかなくそこに状態の区別が無いのが原因です。
解決案としてはtagの仕様を提案します(今回はExprodeという名前のtagを例として使用。実装時は任意です)
  1. リピート : 「地面に刺さった矢」にExprodeというタグを付与
    コード: 全て選択
    scoreboard players tag @e[type=arrow] add Exprode {inGround:1b}
  2. 上記に常時実行チェイン : 「矢であり、かつExprodeというタグをもつもの」を対象にtntを召喚
    コード: 全て選択
    execute @e[tag=Exprode,type=arrow] ~ ~ ~ summon minecraft:tnt ~ ~ ~ {Fuse:0s}
  3. 上記に常時実行チェイン : 「矢であり、かつExprodeというタグをもつもの」をkill
    コード: 全て選択
    kill @e[tag=Exprode,type=arrow]
検証勢を見守る勢
コマンド難しいです…
JSONのエスケープは手打ち勢には厳しい…
アバター
Hira04
ID:97b7fdcf
石掘り
 
記事: 83
登録日時: 2016年6月29日(水) 16:48
お住まい: biome 127

  • (PostNo.305889)

Re: コマンドブロックを使用した爆発する矢の作成について

投稿記事by SUMANN » 2017年8月06日(日) 17:28

> Hira04様

ご回答ありがとうございます
無事に動作しました!コマンドまで記載していただき本当にありがとうございました。
SUMANN
ID:856aec0f
 


Return to 質問:プレイ全般

x