今回から実際にコードを書きながら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ページはコチラです。
コメント