だいぶ前に公開した「手に持って右クリックすると何か起こるアイテム」のコマンドを、バージョン1.9以上向けに、マルチプレイでも使えるように改良しました。以前作ってみてうまくいかなかった方も、今回はコマンドブロックを並べてコマンドをコピペして動力を伝えるだけで使えるようになります。
配布ワールドで"魔法"を使うアイテムを作ってみたり、サーバーでテレポートするためのアイテムを作ったりなど、色々な使い方ができます。この機会にオリジナルのアイテムを作ってみませんか。
※この記事は、「【Minecraft】手に持って右クリックすると何かが起こるアイテムの作り方 [コマンド解説 for1.8]」という記事の内容を書き直したものです。
右クリックすると何か起こるアイテムとは。色々なイベントを設定できます
こちらが今回作る「手に持って右クリックする」アイテム。どんな種類のアイテムでも大丈夫ですし、名前や説明文も自由に設定できます。
このアイテムを手に持って、カチッと右クリックすればイベントが起動します。ここで何を実行するかは自由で、いくらでも拡張できます。例えば次のようなアイテムが考えられますね。
- 右クリックするとロビーにテレポートするアイテム
- 右クリックするとMobを召喚できる"魔法の杖"
- 右クリックで音を鳴らせる"笛"
- 右クリックで近くのMobに雷を落とす"魔法の杖"
このアイテム、RPG風の配布ワールドで"魔法を使う"といった仕掛けにピッタリだと思うんです。本を使って発動させるという手もありますが、マップ製作者の皆さんなら"杖"や"笛"などよりRPGらしいアイテムを充実させたいですよね。
何より私が自慢したいのはこれ。右クリックするアイテムを新しく追加する際、いちいち回路を作る必要がなく、2つのコマンドを追加するだけでいいんです。(右クリック時のイベントが1つの場合。複数イベントを実行するなら増えます)
そして以前解説した装置ではできませんでしたが、ついにマルチプレイでも使えるようになりました! それぞれのプレイヤーが同じ/違うアイテムを同時に使うこともできます。
しかし、この装置にも欠点があります。実は透明な"村人"をプレイヤーの場所に召喚しているので、右クリックするアイテムを持っている間はクリエイティブモードでもゾンビが擦り寄ってくるんです。(村人とゾンビを同じチームに参加させれば解決できますが、それだとゾンビをチームに入れる装置などと干渉してややこしいことになりますし、そもそもゾンビが近寄ってきたら剣に持ち替えるよな、ってことで放置)
次のページでは、装置の作り方と各コマンドの仕組み等を解説します >>
装置の作り方とコマンドの仕組み等を解説
[2016年5月25日追記] バージョン1.8で作ることは可能ですが、コマンドブロックの配置とチャンクの境目や方角が関わってくるなど、あまりに条件が複雑で余計混乱を招きかねないのと、私のサポートが手一杯ということでバージョン1.8向けの解説は削除させて頂きました。ですので以下の解説はバージョン1.9以上用なのでご注意下さい。
動作に必要なスコアボードとチームとアイテムの用意
ここからは、装置を動かすのに必要なスコアボードの準備やアイテムの入手について解説していきます。
- 右クリックするアイテムの仕掛けを動かすのに共通で必要なオブジェクトを作成
- /scoreboard objectives add hasClickItem dummy
/scoreboard objectives add hasVillager dummy
/scoreboard objectives add clicked stat.talkedToVillager
次に、動作に必ず必要な「チーム」を作成します。PvP等に影響することはありませんのでご安心下さい。
- 右クリックするアイテムの仕掛けを動かすのに共通で必要な"チーム"を作成し設定する
- /scoreboard teams add noCollision
/scoreboard teams option noCollision collisionRule never
▲この「collisionRule never」が何を意味しているかといいますと、バージョン1.9ではMobやプレイヤーが接触した際にお互いを押してしまうので、それをOFFにするコマンドなんです。詳しい解説はこちらの記事へどうぞ。
次に、右クリックするためのアイテムを入手しましょう。MCStackerを使って作成します。
- Giveコマンドも生成できる最強コマンド生成ツール「MCStacker」
- http://mcstacker.bimbimma.com/
▲MCStackerにアクセスしたら、「Command Type」を「Give」にして、プレイヤー名に「@p」と入力します(Nearest Playerでもいい)。アイテムIDを入力してアイテムの種類を決め、名前と説明文を必ず設定して下さい。
生成されたコマンドを使って、アイテムを入手します。このアイテムの名前、説明文、ID(F3+Hで確認できます)を手掛かりに仕掛けが動くので、これらを変更した際はコマンドを色々手直しする必要がありますのでご注意下さい。
各コマンドの書き方と仕組みの解説
こちらがバージョン1.9での回路の全体図です。北から順番に、スコアリセットとアイテムの登録、共通の処理、右クリック時のイベントをそれぞれ設定するコマンドブロックの回路を配置していきます。スクショには「北」とか書いてますが方角は関係ありませんのでご安心下さい。
スコアのリセットとアイテム登録の部分のコマンド
「1」「2」「3」のコマンドブロックを並べて、(並べる方角は何でもいい)それぞれモードを設定して中身を入力します。
「1」のコマンド |
RepeatUnconditional(無条件)Needs Redstone(レッドストーン動力が必要) |
/scoreboard players set @a hasClickItem 0
スコアボード「hasClickItem」の値は、特に何もなければ全員「0」にセットされます。 |
「2」のコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/execute @a[score_clicked_min=1] ~ ~ ~ scoreboard players set @a clicked 0
スコアボード「clicked」の値が1になった人は「0」にセットされます。 |
「3」のコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/scoreboard players set @a hasClickItem 1 {SelectedItem:{id:"アイテムID",tag:{display:{Name:"名前",Lore:["説明文"]}}}}
ID、名前、説明文全てが合致するアイテムを手に持ったプレイヤーの「hasClickItem」を、「1」にセットします。この「ID」には、必ず「minecraft:」を付けて下さい!
例:/scoreboard players set @a hasClickItem 1 {SelectedItem:{id:"minecraft:diamond",tag:{display:{Name:"魔法のダイヤモンド",Lore:["手に持って右クリックします"]}}}} |
全アイテムで共通の処理をするためのコマンド
先程設置したユニットの南に、5つのコマンドブロックを並べてモードを設定、コマンドを入力します。
「4」のコマンド |
RepeatUnconditional(無条件)Needs Redstone(レッドストーン動力が必要) |
/execute @a[score_hasVillager=0,score_hasClickItem_min=1] ~ ~ ~ summon Villager ~ ~ ~ {Team:"noCollision",CustomName:"ClickMan",Silent:1b,NoAI:1b,Profession:0,Offers:{},ActiveEffects:[{Id:14,Amplifier:1,Duration:100000000,ShowParticles:0b}]}
「hasVillager」が0で、「hasClickItem」の値が1以上、つまり何らかの右クリックするアイテムを持っているプレイヤーの場所に「ClickMan」という消音で透明な村人を召喚します。右クリックしても何も起きないよう、Offers:{}で取引を消しています。
さらにTeam:"noCollision"を付けることで、接触時の跳ね返りを予め無効化しておいた「noCollison」チームに参加させた状態で召喚しています。 |
「5」のコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/execute @e[type=Villager,name=ClickMan] ~ ~ ~ scoreboard players set @p hasVillager 1
プレイヤーの場所に召喚された村人が、その場のプレイヤーの「hasVillager」を「1」にセットします。こうすることで、既に村人を召喚済みの人にはそれ以上村人を与えないようにしています。 |
「6」のコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/execute @a[score_hasClickItem_min=1] ~ ~ ~ tp @e[type=Villager,name=ClickMan,c=1] @p
何らかの右クリックするアイテムを持っている人の場所に、召喚された村人が背後霊のようについてきます。 |
「7」のコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/execute @a[score_hasClickItem=0] ~ ~ ~ tp @e[type=Villager,name=ClickMan,c=1,r=1] ~ ~-300 ~
右クリックするアイテムを持たなくなったらhasClickItemの数値は「0」になります。するとくっついていた村人は奈落へ真っ逆さま。 |
「8」のコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/scoreboard players set @a[score_hasClickItem=0] hasVillager 0
「5」と同様に右クリックするアイテムを持たなくなったら、hasVillagerの値も「0」にします。これで再び右クリックするアイテムを持った時に、 村人を召喚できるわけです。 |
アイテムを右クリックした際の効果を設定するコマンド
さらに南に3つコマンドブロックを並べます。これは右クリック時のイベントを設定するコマンドなので、適宜個数を変えて下さい。
「9」のコマンド |
RepeatUnconditional(無条件)Needs Redstone(レッドストーン動力が必要) |
/execute @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~ ~ particle explode ~-1 ~-1 ~-1 1 1 1 1.0 1000
particleコマンドで煙を出すのですが、この時「score_hasClickItem_min=1,score_hasClickItem=1」とすれば、「hasClickItemが1以上、1以下」のプレイヤーをターゲットにしてコマンドを実行できます。
「3」のコマンドブロックで「特定の名前/説明文のダイヤを持っていたらhasClickItemは1にする」と決めたので、"1"を条件にする=あのダイヤモンドを持っている人、という意味になります。 |
「10」のコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/title @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] times 5 15 5
titleコマンドで文章を表示するので、事前に表示時間を設定しています。
こちらもお好みで書き換えて下さい。とにかく「hasClickItem」が「1」のコマンドで設定した任意の数値と一致して、さらに「clicked」が1以上のプレイヤーをターゲットに実行すれば何でもOKです。 |
「11」のコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/title @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] title {"text":"Clicked!","color":"red","bold":"true"}
titleコマンドで文章を表示しています。 |
とにかく、右クリックした際に実行するコマンドのターゲットとして
@a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1]
を指定すればいいのです。例えばgiveコマンドでしたら
/give @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] diamond_sword 1 0 ...
って感じです。
ちゃんとコマンドブロックを全て置いたのに動かない場合は、レッドストーンブロックを置き直したり、レバーをONにし直したりすれば動き出します。もしそれでも動かない場合は、コマンドブロックを接続した向きや、モード(Needs Redstone(レッドストーン動力が必要)とAlways Active(常時実行)に注意!)を確認して下さい。
アイテムの種類を追加する際の手順。とっても簡単です
今回の仕掛けでは、コマンドブロックの塊を3つに分けて設置しました。何故ひとまとめにしてはいけないかといいますと、「右クリックするアイテムの種類を増やす際に最小限の作業で済ますため」です。アイテムの種類を増やす具体的な手順を解説します。
1種類目と同じように、MCStakcerでアイテムの種類/名前/説明文を決めてコマンドを作り、入手します。
次に、最初に作成した「スコアリセット&アイテム登録ユニット」の先っぽに新しいコマンドブロックをくっつけます。(向きに注意!)そして以下のコマンドを入力して下さい。
追加アイテムのスコアを設定するコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/scoreboard players set @a hasClickItem 任意の数値 {SelectedItem:{id:"2つめのアイテムのID",tag:{display:{Name:"2つめのアイテムの名前",Lore:["2つめのアイテムの説明文"]}}}}
先程作成した2つめのアイテムを手に持ったプレイヤーの「hasClickItem」を、任意の数値(1以上)にセットします。(「ID」には、必ず「minecraft:」を付けて下さい)
▲「任意の数値」とはこういうことです。右クリックの判定の際に、「hasClickItemが○以上○以下なら...」という条件で判断するので、各アイテムを持った際にhasClickItemの数値がバラバラになればいいのです。
例:/scoreboard players set @a hasClickItem 2 {SelectedItem:{id:"minecraft:gold_ingot",tag:{display:{Name:"2つめの右クリックするアイテム",Lore:["手に持って右クリックします"]}}}} |
続いて追加アイテムを持って右クリックした際のイベントを設定します。一番南に設置してあるイベント設定ユニットにコマブロを追加して下さい。(これも向きに注意!)
追加アイテムの右クリック時のイベントを設定するコマンド |
ChainUnconditional(無条件)Always Active(常時実行) |
/title @a[score_hasClickItem_min=先程設定した数値,score_hasClickItem=先程設定した数値,score_clicked_min=1] title {"text":"Clicked 2nd item!","color":"green","bold":"true"}
先程、2つめのアイテムを持った際のhasClickItemの数値を設定しましたね。それを手掛かりに、ここでは「2以上2以下」なので2種類目のアイテムを持っていて、かつ右クリックした人をターゲットに実行しています。 |
図にまとめるとこんな感じ。「アイテム登録ユニット」のコマンドでセットしたhasClickItemの数値に応じて、イベントの実行条件も「○以上○以下」とすることで「○○のアイテムを持っている人が右クリックしたらこうする」という風に処理しています。
右クリックするアイテムの種類を増やしたい場合は、「スコアリセット&アイテム登録」ユニットと「右クリックイベント設定」ユニットにコマンドブロックを追加していくだけです。各処理部分を分離させたおかげで、いちいち装置を作りなおさなくて済むんです。
いかがでしたか。SQRTdude氏の動画を見て「村人と取引する実績で右クリックを判定すれば良いのか!」と知って、あれから1年。私もコマンドをどんどん勉強して、ついにはオリジナルの装置を完成させることができました。Twitterで私の端ない質問に答えてくださるフォロワーの皆様、毎度毎度本当に情報ありがとうございます。
今回解説した装置が、少しでも多くの方のお役に立てたら光栄です。是非自作の配布ワールドや、サーバーでコマンドをうまく活用してみてください。それでは次回のコマンド解説記事もお楽しみに。
記事の内容が最新のものと異なる場合があります。ご了承ください。
アイテムを右クリックしたら自分にポーション効果が付与されるというのを作りたいのですが、座標をどうすればいいかわかりません
この記事にもありますが http://exr-nap.sakura.ne.jp/www.napoan.com/right-click-item/3/
executeというコマンドでできます
/execute @a[score_村人クリックスコア_min=1] ~ ~ ~ /effect @a[r=0]
で動くんじゃないでしょうかね。
9、11、12
右クリック時のイベントを設定するコマンドとして、以下を入力します。
/effect @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] 効果ID 時間 レベル
▲持つアイテムに応じてhasClickItemの値は変化させるので、このコマンド内の「score_hasClickItem_min=○,score_hasClickItem=○」の数値も適宜変更して下さい。
コマンドを設定するコツとして、座標とかは考えずにとにかく「hasClickItemが○以上○以下でclickedが1以上の人をターゲットにする」ことを忘れないで下さい。
クリエイティブでもゾンビ来るとか怖いなぁ・・・。
そんな時こそトラップ使ってゾンビを閉じ込めて遊ぶって事が簡単にできるけど。
何をどうやっても「データタグが一致しません」の一点張りなのですが
コマンド
/scoreboard players set @a hasClickItem 1 {SelectedItem:{id:”minecraft:nether_star”}}
コマンドは常時実行されるので、手に持っていない状態でコマンドブロックを開くと「一致しません」になります。
/scoreboard objectives setdisplay sidebar hasClickItem
でhasClickItemの値を画面に表示させてみると動いているのか丸わかりです。
なんか俺のコメ無視されてるみたいだけど1.8の説明の画像のことだよ?早めの対応で損することはないと思うよ。
あらそういうことだったんですか! すぐ修正します、ご指摘ありがとうございます
もう少し詳しく言って頂けたら助かります
クールタイム(1回使ったら一定時間使えない時間)を付与あるいは設定することはできますか?
tpコマンドができない! 未知のコマンドって言われてるのがダメなのかな。
未知のコマンドって言われたコマンド↓
/execute @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~ ~ particle explode ~-1 ~-1 ~-1 1 1 1 1.0 1000
/title @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] times 5 15 5
あと、/give @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] diamond_sword 1 0 …のtp版作ったら、
You must specify which player you wish to perform this action on.て言われたんですけどどういう意味ですか?教えて下さい!
まずはクールタイム用のスコアボードを作成します。
/scoreboard objectives add coolTime dummy
右クリック時の効果を設定するコマンドを編集し、「coolTimeが0以下」という条件を追加します。
例: /give @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1,score_coolTime=0] diamond
↑ターゲットに「,score_coolTime=0」を追記して下さい。
右クリック時の効果を決めるユニットに、以下のコマンドを入れたコマブロを追加します。
/scoreboard players remove @a[score_coolTime_min=1] 1
↑coolTimeの数値が1以上なら減らします。一秒に20減ります。
その隣に、以下のコマンドを入れたコマブロを追加します。
/scoreboard players set @a[score_hasClickItem_min=1,score_clicked_min=1,score_coolTime=0] coolTime ○○
↑右クリックした際にcoolTimeを○○にセットします。○○÷20 がクールタイムの秒数になるので、例えば10秒なら200ですね。
未知のコマンド、というのは条件が合ってない時に出ることが多いので、無視して下さい。右クリックして何か起こすことができればそれでOKです。装置が正常に動かない場合は、ユニット同士の位置関係(方角)、fillクロックが動いているか、スコアボードが作成できているかを再確認してください。
tpコマンドについてですが、検証してみたところ
/tp @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~10 ~
で正常に動きました。
エンティティに対してのテレポートも検証しましたが、
/tp @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] @e[type=ArmorStand,name=Test]
▲Testという名前のアマスタへのテレポなのですが、正常に動きました。
とにかく /tp @a[省略] x y z(またはセレクタ) と書けば大丈夫なはずです。
向きも確かめ書いてある通りに作ってみましたが反応しません
スコアボードをsidebarにし確認したところclickedが追加されていないようです
どうしたらいいですか?
すいません すきんを変えようとするとOops, unknown username or password. If you are logging in with a Mojang account make sure to use your e-mail address as usernameとでてきてログインできませんどうすればいいですか?
いや、「そのアイテム持った状態で開いても」という意味です
言葉足らずでサーセン
1.9で。
何をどうやったとしても3番のコマンドブロックが動きません
この設定であってる筈なのですが
村人さんをクリックしても何も起こらない上にclickedの値が微動だにしません
私もできませんでした。clicked抜くと反応してるのでclickedだけがおかしいと思います
clickedを抜くと常に右クリックしてることになるんですが…
装置の位置関係、方角をもう一度お確かめ下さい。私も何度か反応しなくなりましたが、全て装置の位置関係が原因でした。
バージョンは1.8/1.9どちらでしょうか? レッドストーンブロックなどの信号がちゃんと入力されているか、1.9ならチェインコマンドブロックが「Always Active」になっているかなどお確かめ下さい。clickedは常に0にセットするので目に見えないほど短い一瞬だけ1になります。
Mojangアカウントのメアドとパスワードでログインして下さい。パスワードを忘れた場合は下の「forget password」などと書いてある所をクリックすれば再設定できます。
マルチでこの装置を作りましたが、人数が2人以上だとアイテムを手に持つ→村人が目の前にテレポートして死ぬ
となります。
ご指摘ありがとうございます。村人を奈落へ落とすコマンドを修正しました。多分大丈夫なはずです
複数のチャンクにまたがって装置を設置すると動かないという事を今更発見しました。右クリックしても反応しない、という方はデバッグモードでチャンクの境目を確認して、MCEdit等で境目を避けるように装置を動かしてみてください。説明不足で申し訳ありませんでした。
コマンドで動く足場の作り方を教えてください
右クリックでエンダ―パールを投げるというイベントはどういうコマンドにすればよろしいですか?
チャンクも跨ってないし、説明どおりにしたけど何も反応してくれない・・・
clicked 1にはなっているんだけどなぁ
右クリックした際のイベントを設定するコマンドはどのようになっていますか? 教えて頂ければ助かります。また、右クリックした際のイベントを設定するコマンドブロックを他のコマブロより南東に置いてください。(チャンクの跨ぎにも注意)
うーん、エンダーパールをプレイヤーに与える、ということはできますが向いている方向に投げるのはよく分からないです…
右クリックでエンダーパールを与える▼
/give @a[score_hasClickItem_min=○,score_hasClickItem=○,score_clicked_min=1] minecraft:ender_pearl 1 0
コマンドブロックも跨いでいません。
コマンドブロックも跨いでいません。
またコマンドブロックもチャンクを跨いでいません。
またコマンドブロックもチャンクを跨いでいません。
/give @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] diamond_sword 1 0 ←記事のとおりです。
チャンクの跨ぎだけでなく、コマンドに原因があって動かない場合もありますので、とりあえず右クリックした際のイベントを設定するコマンドを教えて頂けないでしょうか。
最後に起こるイベントの対象をアイテムを持っている人「以外」に動作させるにはどうすればいいでしょうか?例えば『「木の棒」を右クリックすると木の棒を持っているプレーヤー「以外」のすべてのエンティティの動作を遅くする』という場合どのように引数の指定をすればいいですか?
どうしても出来ないという方は
/scoreboard players set @a clicked 0
を削除し、
例えば
/execute @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~ ~ summon ArmorStand ~ ~ ~
の次のブロックに
/execute @a[score_clicked_min=1] ~ ~ ~ scoreboard players set @a clicked 0
と置くと、成功するかもしれません。
エンチャントしたアイテムを選択できるようになりませんか?
hasClickItemが0の時にとすれば出来ると思いますよ
「木の棒」を持っている人のhasClickItemが”1″になる設定だった場合、エフェクトを付与する対象を「hasClickItemが0以下の人とhasClickItemが2以上の人」にする必要があるので、イベントを設定するコマンドを2つ用意する必要があります。
/execute @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~ ~ effect @a[score_hasClickItem=0] 2 1 10
と
/execute @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~ ~ effect @a[score_hasClickItem_min=2] 2 1 10
です。
例えば「木の棒を持つとhasClickItemが”3″になるように設定した」場合、
/execute @a[score_hasClickItem_min=3,score_hasClickItem=3,score_clicked_min=1] ~ ~ ~ effect @a[score_hasClickItem=2] 2 1 10
と
/execute @a[score_hasClickItem_min=3,score_hasClickItem=3,score_clicked_min=1] ~ ~ ~ effect @a[score_hasClickItem_min=4] 2 1 10
になりますね。とにかく右クリックするアイテムに対応した「hasClickItem」以外の値のプレイヤーをターゲットにすればいいのです。
村人が張り付くところまではできているようなのですが、最後のイベントのモジュールが上手く働きません。どうやら、スコアのclickedが0のままで右クリックしても変化してないようなのです。チャンクの問題や配置などは確認しました。もし解決策がありましたら教えていただけますでしょうか。
以前コメントに書いたのでそれを見てください( ̄^ ̄)ゞ
それでできると思いますよ
返信ありがとうございます。/scoreboard players set @a clicked 0のコマンドブロックを削除し、スクショの9番のコマンドブロックの後に
/execute @a[score_clicked_min=1] ~ ~ ~ scoreboard players set @a clicked 0と入力したコマンドブロックを配置するということでよろしいのでしょうか。
もしかしたら誤って理解しているかもしれませんが、とりあえずこの方法でできました。ありがとうございました。
そういうことです。
特定バージョンのバグなのか知りませんが、その通りにやっても出来ない環境があるようですね。
因みに2つ目のアイテムを作ってもできなかった場合はまた書き換える必要が出てきます。
試してみたらそちらのほうが安定して動いているようです、ありがとうございます。
しかし、記事内の作り方のままでも「リセット→hasClickItemセット→村人召喚→clicked検知→リセット」…という順序で実行されるので、わざわざコマンドブロックの位置を変える必要はないと思うのですが…
コマンドについては、記事内の「/scoreboard players set @a clicked 0」のコマンドを「/execute @a[score_clicked_min=1] ~ ~ ~ scoreboard players set @a clicked 0」に置き換えました。
【お知らせ】
記事内の「/scoreboard players set @a clicked 0」というコマンドを「/execute @a[score_clicked_min=1] ~ ~ ~ scoreboard players set @a clicked 0」に変えました。こちらのほうが安定して動くようです。
バージョン1.8/1.9ともに「2」のコマンドを置換お願いします。
そこに書いてやった場合、自分の環境ではどうも動作しなかったので後に置くという方法で説明させていただきました。
勿論チャンクや向き等確認済みでです。
後、2つ目のアイテムを作った場合も記事通りに置くと、村人が現れなかったため、/scoreboard players set @a hasClickItem 2 …と書いてやっています。
返信ありがとうございます。
できました!
コメントへの対応がとても早くて素晴らしいと思います。
応援しています頑張ってください。
同じく成功しました。
ありがとうございました!
バージョンは何でしょうか? 私は記事完成後に何度もワールド新規作成から装置完成、アイテム追加まで自分でテストしまくっているので記事のままのコマンドで動くはずなのですが…
それだと他の種類の右クリックするアイテムを持っている人に効かなくなってしまうのですが…
ですね。管理人様が正しい説明を詳しくしていたので訂正をしなかったのですが、申し訳ないです。
1.8 forge 11.14.1.1334を使っています。
【お詫びとお知らせ】
どうやら図のようにチャンクの境目をわざと跨がせないと動かないようです。右クリック時のイベントを設定するコマンドブロックは他と違うチャンクに、しかしそのfillクロックだけは他と同じチャンクにはみ出るように設置してみてください。
ブキットサーバーだと上手くいかなかったりしますか?
ClickManが召喚した場所に滞在して、何回もアイテムを持ち替えるとそこら中にClickManが浮いてるという事態になってるんですけど…
clicked が 増えないです。たぶん村人と話すとスコアが増えるコマンドが反応していないのかな?普通の村人とでも試したのですが増えなかったです。 バージョンは1.9(スナップショットではありません)
すいません、右クリックしてもなにも動作しないのですが・・
どうしたらいいですか?
右クリックして目の前で爆発する剣って作れますか?
【お知らせ】
大変申し訳無いのですが、バージョン1.8向けの解説を削除させて頂きました。
チャンクの境目や方角など、装置作成の条件があまりに複雑で余計混乱を招きかねないのと、私自身が十分にサポートできる自身がないのが理由です。
当ブログの今後のコマンド解説記事は、基本的にバージョン1.9以上向けになる予定なので、何卒ご了承下さい。
右クリックしたら雷が召喚されるというコマンドを作りたかったのですが11のコマンドの部分を /summon @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] LightningBolt に変えてみたのですが、Unable to summon object と出てくるのですが、いったい何が悪いのでしょうか?
自己解決しました、すいません
右クリックしたら、「ドラゴンボール」みたいに気弾がでるアイテムって作れますか
サーバーでやったらログの吐き出しが間に合わずデータが破損しました
ログを出さない方法はありますか?
説明不足申し訳ありません!
/gamerule logAdminCommands false
でコマンドのログ出力を無効化できるはずです
/execute @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~ ~ particle explode ~-1 ~-1 ~-1 1 1 1 1.0 1000 を2種類目でつかいたいのですがどうすればいいですか?
すみません/execute @a[score_hasClickItem_min=2,score_hasClickItem=2,score_clicked_min=1] ~ ~ ~ /entitydata @e[r=3,type=!Villager] で、魔法みたいなコマンド2個目できました
1.10.2のSpigotサーバーなのですが、装置が反応しません。
右クリックするアイテムにカラーコードを使ったのが原因でしょうか?
すみません。落下などで村人のみ倒れてしまうんですが、(例えばクリエでアイテムを持つ。→ゾンビ等が来る→村人を殴る↘アッ(察し))対処方法はありますか?
村人召喚コマンドを改変して無敵村人を召喚させれば解決できますよ!
剣とかにも魔法つけられるようになります(剣で殴ると村人にダメージが行ってしまう、、、w)
@a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1]
の部分の「score_hasClickItem_min=1」と「score_hasClickItem=1」の
2つの部分の1を2に変えればできます(ちなみにアイテム設定のとこも同様)
説明わかりづらかったらすみません
経験値を消費して実行するようにしたいのですが、ターゲットを
@a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1]
にすると経験値が減らなくなってしまいます
/xp -10L @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1]
上記が問題のコマンドです。
ご返答お待ちしております。
ありがとうございます。原理はわかっていましたが、他の方も同じでしたか、やって見ます!
今度は経験値が10ある場合その経験値を消費して右クリックして作動するアイテムの作り方を紹介してほしいです!
連続してつかえないのは仕様ですか?
もしできるのならば 連続して使えるようにしたいです!
2つも質問してすみません
走りながら使えるようにはできませんか?
質問です
右クリックをしたときに「特定のブロック」を置くことはできました!ただ、mobを召喚したいのですが、「特定のブロック」のコマンドを打った場所にmobを召喚するコマンドを使っても召喚できません。Summonコマンドです。なので何番のコマンドブロックのコマンドにSummonコマンドを打てばいいか教えてください!(できればどのコマンドブロックのコマンドの間か詳しく教えてください)長文失礼しました。あと長い質問ですいません。
すいません文がおかしかったので直しますと
Summonコマンドを使って右クリックしたらmobが出るようにしたいのですが、
どこのコマンドにSummonコマンドを打てばいいですか?
質問です!
右クリックをしたら爆発するコマンドを教えてください!
爆発する場所はどこでもいいです
あのー右クリックしたらmobがスポーンするコマンドを作りたいのですが、
できれば作り方を教えてくれませんか?
/execute で指定してからですね。
これ使えば「「シフト+右クリック」で透明アマスタを削除→召喚して
「右クリック」でアマスタまでワープみたいな」のができそうw。
1.10.2のマルチで右クリックしても、何も起きないのですが….
あと質問があります。
dyeなどのもので赤の染料を指定したいのですが
/scoreboard players set @a hasClickItem 1 {SelectedItem:{id:”minecraft:dye”,tag:{display:{Name:”ヒール”,Lore:[“HPを回復する魔法:ヒールを起動”,”使用MP10″]}}}}のどこに追加すればいいのでしょうか…
イベント設定部分のコマンドは
/execute @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~ ~ effect @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] 10 1 4
と/playsound minecraft:entity.player.burp voice @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1]
と/execute @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~ ~ scoreboard players remove @p[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1,r=0] MP 10です。
解決策があればお教えください
/scoreboard players set @a hasClickItem 1 {SelectedItem:{id:”minecraft:dye”,Damage:1s,tag:{display:{Name:”ヒール”,Lore:[“HPを回復する魔法:ヒールを起動”,”使用MP10″]}}}}
▲赤の染料はデータ値:1なのでDamage:1sを追記します。これだけです
素早い反応有難うございます。そうすればいいのですね
わがままですがイベント部分のも教えてくださるとうれしいです
イベント部分は変える必要はありません。イベントが起動するきっかけの対象のアイテムさえ変えればいいので
えっと、この状態で右クリックしても回復しないのですが….
どこが悪いのでしょうか
右クリックで効果を発動させた際、経験値を消費するようにしたいのですが、xpコマンドをどこに配置すればいいのかがわかりません。どうすれば良いでしょうか。
/xp -5L @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1]
▲これを常時実行すれば右クリック時に5レベル減ります。Lを消すと細かい経験値を減らせます。ハイフンを消せば経験値を増やすことも出来ます。
指定したアイテムを持っても自分の場所に来ないんですがどうすればいいですか?
上記のやり方でダイヤモンドにテレポート機能を付けれることができました。
出来ればそのご使用したアイテムを破壊(壊したい)のですがどのようにすればよろしいでしょうか?
このコマンドで、向いている方向に~~する。のようなことはできますか?
できるとしたら解説お願いします!
このコマンドは1.11.2でもできますでしょうか?
私は1.11.2でうまくできなくて・・・
村人召喚や、クリックで1にはなってるようなのですが、
イベントがうまく作動しないです・・・
チェーンでテレポートのコマンドの次に置いてアイテムを消すコマンドを入れればできると思います。
投稿してから日が経ってるので既に出来ていたらすみません。
もしかしたら、1.11でのID変更で動かないのかもしれません。
村人のIDの部分を1.11の新IDに変えてしてみてはいかがでしょうか。
これ、村人ではなくて左手にニンジン付きの棒をもつことでも右クリック検知できますよね。右手に持つアイテムは右クリックに対応してないものに限定されますが、ニンジン付きに棒を左手に持つという条件のおかげで、わざわざ専用のアイテムなどを用意しなくて済むので、通常のサバイバルに魔法のような機能を実装したいときに重宝してます。
6ヶ月前のコメに失礼します。
マルチではありませんが1.10.2vanillaにて検証してみたので報告です。
質問されている方で無くともこの症状で悩んでいる方に向けてですので(居るかわかりませんが)ご了承ください。
最初の文にあるコマンドを使用して組んだ所何も起きませんでしたが、”2″のコマンドブロックを”11″の後ろに移動させ、”3″を”2″の位置に移動させることで直ります。
ただし、発動アイテム追加の際には先程”11″の後ろに置いたコマブロを本来”11″の追加するコマブロの後ろに移動させなくてはなりません。(これは未検証なため、推測です。間違っていたらすみません。)
▼以下補足
・MP消費の際に現在MPの最低値を設定しないと負の値になります。(無限に発動できます。) 回避例:[score_MP_min=10]
・村人「ClickMan」召喚時に耐性のポーションLv5を常時発動させた方がいいです。検証した所、20回1ブロック分のジャンプをすると村人が死に、再度召喚させるにはアイテムを持ち替えなくてはなりません。(ゾンビの場合も同様です。)
・ちなみに今回の解消法の解説としては、恐らく”9″(最初のイベントコマブロ)が発動される前にclickedが”2″によってリセットされていたからです。解説の画像には方角は関係ないとのことなので方角による解消は無いものかと思います。未検証ですが。
未検証部分が多くてすみません。
長文、大変失礼致しました。
制限時間のやり方教えてください!!
当たり判定って無くせないんですか?
もしどうやってもできないという方はレッドストーンブロックを置く順番をさんの写真で南側から順番に置いていくと正常に動作しました。
僕は1.12.1でやったんですけど効果コマンドが実行さないです・・・
右クリックしたら雷を落とす設定なのですが、、、
どうしても出来ませんどうしたらいいでしょうか???
よろしくお願いいたします。
出来るだけ
早くお願いします!!
summon コマンドが分かりません
多分あなたが悩んでいるとこは9、10,11当たりではないでしょうか?
もし9,10,11辺りで詰まっているなら、execute @a[score_hasClickItem_min=1,score_hasClickItem=1,score_clicked_min=1] ~ ~ ~ summon LightningBolt ~-1 ~-1 ~-1 1 1 1 1.0 1000とコマンドで打って試してみてください。
/setblock に応用できますか
クリックしたら何も表示されない。前はできたのに…
Lを消すと減らすことはできなかったはずですよ?