#scriptで自作アイテムを長押ししてる間タグを付与し長押しを辞めた時にタグを消すことはできますか?
1 messages · Page 1 of 1 (latest)
ScriptAPIはJavascriptで記述します
基本を抑えておけばできるようにはなりますが
Javascriptの基本は知っているでしょうか
一応スニークするとタグをつけるや、アイテムを使用でタグをつけるなど簡単な事はできましたが
他の人のコードを参考して書いただけなので応用になるとわからずです😭
自作アイテムをチャージ可能にしておくと、 ItemStartUseやItemStopUseが発火します
使い始めたタイミングでタグを付けて辞めたタイミングでタグを消すことで再現できます
world.afterEvents.itemStartUse.subscribe(ev => {
const player = ev.source;
const itemStack = ev.itemStack;
if (itemStack.typeId === "test:use") {
player.runCommand("tag @s add use_test");
}
});
world.afterEvents.itemStopUse.subscribe(ev => {
const player = ev.source;
const itemStack = ev.itemStack;
if (itemStack.typeId === "test:use") {
player.runCommand("tag @s remove use_test");
}
});
これで大丈夫でしょうか!?
横から失礼します
"use_duration": 10000,
"movement_modifier": 1
},```
をチャージ可能にしたいアイテムのjsonのcomponentsに追加する必要があります
これがないと右クリ長押しを検知できないはずです
use_durationはチャージ後にやりたいことがなければ長めでいいと思います
movement_modifierで長押し中の移動速度を減速できます(0 ~ 1)
欠点として、長押ししている際は走るのをやめると右クリを離すまで走ることができないので注意が必要です
コードには問題は見当たりませんが
player.addTagやplayer.removeTagを使うといいかもしれませんね
コマンドは基本的に最終手段として使うことをおすすめします
例えばまだScriptAPIでは実装できずコマンドを使う必要があったりするものや、
逆にScriptAPIよりもコマンドのほうが無難であったりするものはコマンドを使う感じです