特定スロットにおけるアイテム設置の禁止

インベントリ内で特定のスロットに、特定のアイテム以外置けなくしたいのですが 『アイテム設置をキャンセル』する方法が分かりません inventory clickをキャンセルするだけでは置いただけ置いて外せなくなったので どなたか方法を教えていただきたいです sk 2.5.3
15 Replies
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
click typeで分岐や
puzzle
puzzle9mo ago
数字キーでのスワップだったりオフハンドとのスワップだったり色々考慮しないといけないのあって大変だよね
Tsukineko(月雲)
もしかして every 5 tick とかで、そのスロット確認して 違うアイテムがあったらドロップとかのほうが早い…? ・やりたこと アイテムを拾ったとき 特定アイテム以外がslot 10に入るのをcancelしたい (バックパックアイテムをバックパックスロット以外に入れたくない) ・やってみたこと 拾った瞬間slot 10に入っていたら インベントリの空きスロットに移動させるコードを書いた
on pickup:
wait 1 tick
slot 10 of player's inventory is not getBackPack() #backpackアイテムを取得する関数
slot 10 of player's inventory is not air
set {_item} to slot 10 of player's inventory to air
set {_amount} to item amount of player's inventory to air
set slot 10 of player's inventory to air
loop 36 times:
set {_flag} to true if loop-number -1 <= 8
set {_flag} to true if loop-number -1 >= 11
{_flag} is true
slot loop-number -1 of player's inventory is air
set slot loop-number -1 of player's inventory {_item}
exit 1 sections
on pickup:
wait 1 tick
slot 10 of player's inventory is not getBackPack() #backpackアイテムを取得する関数
slot 10 of player's inventory is not air
set {_item} to slot 10 of player's inventory to air
set {_amount} to item amount of player's inventory to air
set slot 10 of player's inventory to air
loop 36 times:
set {_flag} to true if loop-number -1 <= 8
set {_flag} to true if loop-number -1 >= 11
{_flag} is true
slot loop-number -1 of player's inventory is air
set slot loop-number -1 of player's inventory {_item}
exit 1 sections
テスト状況:インベントリを埋め尽くし、slot 10以外に入らないようにして、stone以外を拾った 結果:空きがないと消える。対策としてset slot 10~ではなく、その場にdropしようかと考えたが、拾って落としてを繰り返すためちょっとまずい これって他にいい方法ありますかね…
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
waitする前に、アイテム拾った場合slot10に入るかどうか検証して 入るならcancelするなり10+nにsetするなり
Tsukineko(月雲)
airがある場所で比較すればいいですかね
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
slot9がairか否かじゃないか ただスタック可能なアイテムだった場合同じアイテムを64n個未満で所持してるかも確かめないといけない
puzzle
puzzle9mo ago
普段ガラス板で塞いでおいて該当アイテム拾ったときにアイテムをちゃんと入れるみたいな方式の方がいいかもしれない…?
Tsukineko(月雲)
やっぱそれしかないですかねえ… それするとシフトクリックで対応アイテム設置できなくて困ってるんですよ… アイテム識別に関することなのでこのまま質問させてもらいます named "~"されたアイテムは name of itemで名前が取得できますが バニラ状態のアイテムは英語名しか取得できません 日本語名をそのまま取得する方法はありますか?
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
これだとインベントリ全部埋まってる時にどうするか問題があるかと思って
Tsukineko(月雲)
まあ…拾えないだけだからまだましかな…
puzzle
puzzle9mo ago
バックアップアイテムって複数種類あるのかそれとも決まった1種類専用のスロットなのか 1種類だけならスタック数0のアイテム作れないかなぁとか思ったり(今も作れるのか知らんけど)
Tsukineko(月雲)
すませんばっくぱっくです( できるんですか、、、?
puzzle
puzzle9mo ago
埋まってるときもなんか広いそう拾いそうなタイミングでイベントなかったっけ?
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
んーー 少なくとも俺は記憶にないな ありそうな気はしなくもない
yukkina
yukkina9mo ago
0~8も確認せんと。
Want results from more Discord servers?
Add your server
More Posts
effect付与'apply potion of resistance 1 without particles to player for 1 second'を実行すると14秒の耐性が付きます。1秒と指定しているのにprojectileに任意の情報を付与したいprojectileを発射した場所の座標と、projectileがhitした場所の座標の二点間の距離を出して、その距離によって場合分けして色々イベントを起こしたい(離れているほどダメージが上がるとか)top10ランキングをつくりたいリスト変数内の数値をUUIDと紐づけたまま降順に並び替えたいDiscord BOT開発に推奨されるアドオンvixio?DiSky? フォーラム機能弄るのがメイン(post/edit) 私は過去にvixioを使ったことがあるんだけど、正直もう覚えてないので新しいアドオンでもいいなと。 今のトレンドというか、make shootで出したアーマースタンドをカスタマイズしたい``` make player shoot an armor stand at speed 1 set {_e} to last spawned entity add "{Invisible:1b,Aダメージeffectについてskript 最新 ```damage player by 15``` 初心者からの質問です(_-) ダメージは基本これで与えてるのですが、これだとプレイヤーが攻撃した判定にならないですよね。プレvector lengthについてちょっとした質問わりと初歩的な質問なんですが vector(矢印)の先っぽの座標をとるとき set {_loc} to {vectorの開始地点の座標} ~ {_vector} でやると思うんですが  {_ve数字からその数字に該当するブロックのrawnameを取得したい半ブロックの件と同じ動画 https://www.youtube.com/watch?v=vbZPv5aW9SQ&ab_channel=Air 1:39~ //gmask <block> を実行したSkellettのLib's Disguise構文SkriptでLib's Disguiseの構文がSkellettにあるのですが 使おうとするとエラーが出ます Skellettのバージョンは1.9.11、Skriptのバージョンは2.6.3です二つ重なった半ブロックを片方だけ壊したいhttps://www.youtube.com/watch?v=vbZPv5aW9SQ&ab_channel=Air 0:58~ double slab を壊したときに、ブロックの上の方を壊したらb