4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Minecraft Skript 応用編 Part.6 GUIメニュー

Last updated at Posted at 2020-03-20

GUIメニューとは

ここでいうGUIメニューというのはインベントリに並んだアイテムをクリックすることで何かを実行するものです。
わたしが運営するMonsterLifeServerにもわたくしの作ったプラグインで実装されたGUIメニューはあり、添付画像のような見た目をしています。
331bdb2d.png

今回はこれをSkriptで実装するやり方を説明していきます。

さっそく書いてみよう

説明はあとです!!

完成コード
command /gui:
    trigger:
        open chest inventory with 6 row named "&a&lGUIMENU" to player
        set {_i} to 0
        set {_glass} to white glass pane named "&c&lクリック不可"
        loop 54 times:
            set slot {_i} of player's current inventory to {_glass}
            add 1 to {_i}
        set slot 13 of player's current inventory to stone named "Yeah"
        set slot 53 of player's current inventory to barrier named "閉じる"

on inventory click:
    name of clicked inventory is "&a&lGUIMENU"
    cancel event
    if event-item is stone named "Yeah":
        send "Yeah" to player
    if event-item is barrier named "閉じる":
        close player's inventory

説明

commnad /gui:trigger:の部分は説明しませんからね?
知りたい人は**Minecraft Skript 入門編 Part.3 - カスタムコマンドについて・・・**をご覧ください。

3行目
open chest inventory with 6 row named "&a&lGUIMENU" to player

これだけで&a&lGUIMENUという名前のインベントリを開くことができます。
6 rows6部分を変更することでインベントリの大きさを変更可能です。

しかし、1~6の数字以外は指定できないのでお気を付けください。

4~8行目
set {_i} to 0
set {_glass} to white glass pane named "&c&lクリック不可"
loop 54 times:
    set slot {_i} of player's current inventory to {_glass}
    add 1 to {_i}

これで開いたインベントリすべてを白色のガラスで埋めます。

9,10行目
set slot 13 of player's current inventory to stone named "Yeah"
set slot 53 of player's current inventory to barrier named "閉じる"

これで13番と53番のスロットにYeahという名前の焼き石と閉じるという名前のバリアブロックが設置されます。

スロット番号は左上から右向きに0,1,2...となっていき、9番は2列目の一番左のスロットになり同じように9,10,11...となります。

よってスロット13は二列目のど真ん中、53は最後の列の一番右となります。

12~14行目
on inventory click:
    name of clicked inventory is "&a&lGUIMENU"
    cancel event

これで&a&lGUIMENUという名前のインベントリをクリックした場合キャンセルする仕組みになっています。

15~18行目
if event-item is stone named "Yeah":
    send "Yeah" to player
if event-item is barrier named "閉じる":
    close player's inventory

そしてもしYeahという名前の焼き石をクリックした場合はチャットにYeahと表示し、閉じるという名前のバリアブロックをクリックするとインベントリを閉じるというシステムになっています。

クリックと同時にMinecraftのメニュー画面をクリックしたときになる音を鳴らしてあげることでよりいっそうGUI感を出せます。

追加1

アイテムが取れてしまうという報告を受けていますので追加させていただきます。

アイテムが取れる場合はclicked inventory event-inventoryにするだけで治るかもしれません

最後に

今では多くのサーバーがGUIシステムを採用しているように思われます。

コマンドよりも便利という点では採用されるのは当たり前なのでしょうね。

この記事が役に立ったら金を出せ。
この記事が役に立ったらとてもうれしいです。

え?お金がどうしたって?なんのことですか?

それでは次回もよろしくお願いします。

次はコチラ

前はコチラ

4
1
10

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?