#持ち物をform
1 messages · Page 1 of 1 (latest)
私が思い付くものだと、
const itemStack = <Player>.getComponent("minecraft:inventory").container.getItem(スロット番号);
でinventoryコンポーネントからItemStack取得してform.button(itemStack.typeId);
スロット番号を増やしながら反復処理していけばいけると思います!ざっくりですが
あ、でも何もなかった時はitemStackにundefinedが入るので、
if (itemStack) form.button(itemStack.typeId);
みたいにすると問題ないと思います
プレイヤーのcontainer数をforで回すのも手
これ入れるとbuttonがないって言われます;;
別にbutton追加したら解決しました
つまりどういうことですか
まじすか。
確かActinFormは一つもボタンをセットしなかったらエラー吐くのでインベントリーが全て空の場合はそうなりそうですね
空ではないのにそうなったなら、どこかがおかしいのかもしれませんが
おそらくですが
const { inventorySize } = <player>.getComponent("minecraft:inventory");
でインベントリのサイズ(スロットの数)を取得して、
for (let i = 0; i < inventorySize; i += 1){
//処理
}
という風に反復処理できるってことだと思うます(本人ではないので合ってるかは分からない)
なるほど
おっと、
思うます → 思います
-# リプライメンションされてるんだが(
const { container } = <Player>.getComponent('inventory');
for (let i = 0; i < container.size; i++) {
const item = container.getItem(i);
if (!item) continue;
//item.typeId等が使える
}
こう書けますね
なるほど。ありがとうございます。