#scriptで自作アイテムを長押ししてる間タグを付与し長押しを辞めた時にタグを消すことはできますか?

1 messages · Page 1 of 1 (latest)

hasty prism
#

script使い始めたばっかりで書き方もよくわかっていないので
わかる方詳しく教えていただきたいです

surreal jasper
#

ScriptAPIはJavascriptで記述します

基本を抑えておけばできるようにはなりますが
Javascriptの基本は知っているでしょうか

hasty prism
#

一応スニークするとタグをつけるや、アイテムを使用でタグをつけるなど簡単な事はできましたが
他の人のコードを参考して書いただけなので応用になるとわからずです😭

surreal jasper
#

自作アイテムをチャージ可能にしておくと、 ItemStartUseやItemStopUseが発火します

#

使い始めたタイミングでタグを付けて辞めたタイミングでタグを消すことで再現できます

hasty prism
#

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");
}

});

#

これで大丈夫でしょうか!?

woven stratus
#

横から失礼します

    "use_duration": 10000,
    "movement_modifier": 1
},```
をチャージ可能にしたいアイテムのjsonのcomponentsに追加する必要があります
これがないと右クリ長押しを検知できないはずです

use_durationはチャージ後にやりたいことがなければ長めでいいと思います
movement_modifierで長押し中の移動速度を減速できます(0 ~ 1)

欠点として、長押ししている際は走るのをやめると右クリを離すまで走ることができないので注意が必要です

コードには問題は見当たりませんが
player.addTagやplayer.removeTagを使うといいかもしれませんね
surreal jasper