PaperMC:1.21.1
Skript 2.10.2
皆さんこんにちはRiRi.Incの代表取締役社長のりゅうと申します!
皆さん一度は思ったことありませんか?
『SkriptでチェストGUI作りたいなって』
ね?一度はありますよね?
ということで順に説明していきます!
ソースコードはこんな感じです。コピーして使ってください
command /item:
trigger:
open chest inventory with 2 row named "表示する名前" to player
set {_i} to 0
それでは順に解説していきます。
今回は/itemと入力したときにそのプレイヤーにチェストGUIを表示するスクリプトです
command /item は/itemを実行したときというものです。
そしてtrigger:はそれを/itemを実行したときにする処理です。
open chest inventory with 2 row named "表示する名前" to player
で実行したプレイヤーにチェストを表示しますここの赤く表示されている数字は表示するチェストの段数です。この場合だと2段表示されます
注意してほしいのが『つまり100とかでもできるってこと?』いいえ違います6段(ラージチェストのサイズ)が上限ですのでそれ以上はできません。残念ですね。
set {_i} to 0
は_iという変数を作ってそこに0を代入してリセットしています。『これ何?』ってなるかもしれませんが後でわかります。
今回はチェストGUIでアイテムを押したときにそのアイテムを与えるスクリプトを作っていきます!
まずはソースコード
command /item:
trigger:
open chest inventory with 2 row named "&a&l欲しいアイテムをクリックしてください" to player
set {_i} to 0
loop 54 times
add 1 to {_i}
set slot 2 of player's current inventory to cooked beef named "ステーキ"
set slot 17 of player's current inventory to barrier named "閉じる"
set slot 3 of player's current inventory to firework rocket named "ロケット花火"
set slot 4 of player's current inventory to ender chest named "エンダーチェスト"
set slot 5 of player's current inventory to elytra named "エリトラ"
set slot 6 of player's current inventory to shulker box named "シュルカーボックス"
on inventory click:
name of clicked inventory is "&a&l欲しいアイテムをクリックしてください"
cancel event
if event-item is cooked beef named "ステーキ":
give 64 of cooked beef to player
if event-item is barrier named "閉じる":
close player's inventory
if event-item is firework rocket named "ロケット花火":
give 64 of firework rocket to player
if event-item is ender chest named "エンダーチェスト":
give 16 of ender chest to player
if event-item is elytra named "エリトラ":
give elytra of mending 1 to player
if event-item is shulker box named "シュルカーボックス":
give 1 of shulker box to player
コードが長いのでちょっと行間を詰めたところで上から見ていきましょう!
まずこの
set {_i} to 0
loop 54 times
add 1 to {_i}
はそれより下のものを順に実行しています。ちなみにこれ二段の場合は18スロットしかないので18回繰り返せばいいはずです
set slot 番号 of player's current inventory to 表示するもの "名前"
でチェストにアイテムを配置します
番号はどこのスロットかで右から0 1 2 3..とあります
表示するものは表示したいものですマイクラのidは使えませんのでお気をつけてくださいね!
その下
on inventory click:
はインベントリがクリックされたときなにをするかです
if event-item is cooked beef named "ステーキ":
はステーキがクリックされたときという意味です
注意点としてさっき設定した名前とここについている名前が一致しないとエラーになりますので覚えておいてください
その下
give 64 of cooked beef to player
はステーキがクリックされたとき"ステーキを与えるです"
Skriptのコマンドですねこれでプレイヤーに与えています。
本記事に間違いがあっても一切責任は負いかねますのでご注意を!
でも一応今回のコマンドは低スペ鯖にて導入されているやつなので問題はないと思います
それでは!