1
0

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 5 years have passed since last update.

Minecraft Skript 基礎編 Part.2

Last updated at Posted at 2019-04-29

#アーグメントについて・・・
無理やり日本語にしてみましたが、正式にはargumentと書き、Skriptではargと略すことが可能です。

まあ、何に使うのかというとコマンドです。

きっとMinecraftをやっている人でよくコマンドを使う方はわかると思いますが、/give @a stone 5とすれば石をすべてのプレイヤーに5つ渡すというコマンドです。

そしてこの中にargumentは含まれています。

それは@a stone 5です。

まあ、単純に言えば/giveなどの主体部分のあとの部分がargumentです。

そしてカスタムコマンドにもこれはできます。

デフォルトコマンドだとわかりずらいかもですが、よくプラグインなどで、コマンドの主体はすべて同じというものを見かけませんか?

じつはそれをSkriptでもできるのです。

test.sk
command /test <text>:
    trigger:
        if arg-1 is "close":
            execute console command "/whitelist on"
            loop all players:
                if loop-player is not an op:
                    kick the loop-player due to "サーバーが非公開になりました"
            send "サーバーを非公開にしました" to player
            stop
        if arg-1 is "open":
            execute console command "/whitelist off"
            send "サーバーを公開しました" to player
            stop
        else:
            send "&cそのようなコマンドは存在しません" to player

はい、IFELSEを使って、コマンドを増やしました。

今回追加したコマンドは/test close/test openです。
/test closeは以前紹介したコードですし、/test openはホワリスを解除して、メッセージを流してるだけなので説明はいりませんね。

ここで理解していただきたいのは、arg-1という部分です。

このarg-1はargumentのことでこのコマンドでいうと<text>の部分ですね。
まあ、それ以外argumentはないのですが・・・

ってって何?って方が多いのではないでしょうか?

コマンドにargumentは追加したいときは<~~~>を追加すると覚えていてください。

<~~~>

このように記した理由なんですが、すべてにしてもいいのですが、それだとコードを見ただけで理解しにくいんです。

argumentにはのほかに、、・・・などなど。あらゆる形式があります。

例えば、カウントアップコマンドを作ってみましょう。

test.sk
command /cu <int>:
	permission: skript.admin
	trigger:
		loop arg-1 times:
			if loop-number is arg-1:
				send "%loop-number%" to player
				execute console command "/playsound entity.enderdragon.ambient master %player% ~ ~ ~ 1 0.7 1"
			else:
				send "%loop-number%" to player
				execute console command "/playsound entity.experience_orb.pickup master %player% ~ ~ ~ 1 0.5 1"
				wait 1 seconds

はい。
また新しいもの出しちゃったけど先にについて説明します。

といいたいけど、そこまで重要じゃないので興味がある方はコチラを見てください。(変数についても書いています)

それではloop timeについて説明しましょう。

#Loop timeについて・・・
loop timeというのは「指定した回数実行しまっせ」というコード。
Skriptでの使い方はloop 5 times:のように書きます。

今回は5をarg-1として/cu 5というコマンドを実行することになり、入力した回数によってカウントする数を変えれるのです。

そして、今回はカウントアップということで数字を出さなければならないのですが、それはとても単純なんです。

それはloop-numberを使うというものです。
先ほどloop-numberでカウントアップしたように表示できるのです。
「今、何回目のループですよ~」ってね。

#waitコードについて・・・
wait 1 secondsというものがあったのを覚えていますか?

これは1秒間待つというコードです。

この他にもwait 1 tickという1tick待つというものもありますが、今は気にしなくてもいいでしょう。

これで1秒ごとにカウントアップするようになります。

execute console commandで音がでるようにしています。

実はSkriptで音を出せるのですがバグなのかうまくいかないことがあるので今回は紹介しません。

そしてカウントアップ終了時、入力した数値と同じになった場合、別の音声を流すようにしています。

##実行時の画像
image.png

次はコチラ

前はコチラ

1
0
1

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?