【Skript講座 第二回 入門編】イベントの使い方

Skript講座
田中直人

今回から実際にコードを書きながらSkriptの作り方を紹介していくよ。

山本明果梨

初回ではどんなコードを書いていくのですか?

田中直人

今回は何かしらのイベントが発生したら任意の処理をするというものをやっていくよ。

山本明果梨

よろしくお願いします。

イベントとは

イベントというのはプレイヤーがブロックを壊した時や設置した時,ダメージを受けた時など特定の動きをプレイヤーやモブ,サーバーなどがした場合に発生するものです。

イベントの使い方

on イベント名: 
	# ここに処理を追加

前述したイベントをもとに紹介していくと

on break: # ブロックを壊した時
	# ここに処理を追加
on place: # ブロックを設置時
	# ここに処理を追加
on damage: # ダメージを受けたとき
	# ここに処理を追加

このような書き方になります。

作ったSkriptファイルの読み込み方

ファイルを編集して上書き保存したらコンソールにてskript reload scriptsというコマンドを実行しましょう。

[21:43:21 INFO]: [Skript] Reloading all scripts...
[21:43:21 INFO]: All scripts loaded without errors.
[21:43:21 INFO]: Loaded 1 script with a total of 1 trigger and 0 commands in 0.01 seconds
[21:43:21 INFO]: [Skript] Successfully reloaded all scripts. (129ms)

するとこのようなログが流れてきます。

最後の行にSuccessfully reloadedと書かれているようにリロードに成功したことが表示されています。

処理の書き方

イベントの書き方は少し応用もできるのですが入門編では紹介しません。

それよりも重要になっていく処理の書き方を紹介していきます

イベントの取り消し

on break: # ブロックを壊した時
	cancel event

イベントの中にcancel eventと記入するだけです。

イベントをブロックを壊した時にしているのでブロックの破壊を禁止できます。

イベントをon damage:on place:にすればそれらのイベントでも利用できます。

条件を指定する

イベントの直下にcancel eventと記入してしまうとすべての条件でイベントがキャンセルしてしまうので基本的には間に条件を指定してあげましょう。

多言語でプログラミングをしているとif文にはなじみがあると思いますがSkriptではif文を使わなくても条件文が書けます。(今後の記事で別途if文の紹介をします。)

on break: # ブロックを壊した時
	player's gamemode is not creative # プレイヤーのゲームモードがクリエイティブでない
	cancel event

cancel eventの直前にplayer's gamemode is not creativeという日本語訳で「プレイヤーのゲームモードがクリエイティブでない」という文章を追加してみましょう。

他にも壊したブロックを判断して破壊を禁止することも可能です。

on break: # ブロックを壊した時
	event-block is stone # 破壊したブロックが焼き石である
	cancel event

event-blockというのはon breakイベントが発生した時に破壊されたブロックのことです。

余談になってしまいますが,event-playerというものもあり,前述したplayer's gamemode...というコードがevent-player's gamemode...と書くこともできます。

山本明果梨

イベントを使えばいろいろなことができそうですね。

田中直人

そうだね。イベントと条件の組み合わせで作れるものは無限大になるね。

次回は自作コマンドの作り方を紹介するよ。

講座について

当講座で紹介したソースコードはGitHubにて公開されています。

GitHubページはコチラです。

この記事を書いた人

Minecraftでミニゲーム企画を開催しているMonsterLifeServerの運営で開発やYouTubeに投稿する動画の編集などをしています。

元々はコマンドでミニゲーム企画を開催していましたが限界を感じてSkriptを使い始めました。
そこから5つほど企画を作り,バグなどの原因でプラグインの勉強を始めました。

本格的な開発者歴自体は4年ぐらいです。Skript以外ではHTML,CSS,JavaScript,PHP,Python,MySQL,Cなどを使てシステム設計をしています。

仕事でも似たようなことをしています。

monster2408をフォローする

コメント