猿とその他によるブログ。 将来見返してニヤニヤする用です。つまり日記

2018/04/14

skript入門その3

今回こそskriptのコードを書いていきましょう!

1. .skファイルの作成
コードを書くといってもどこに書くのかと。こうなるわけです。
鯖ファイルのpluginファイルの中のskriptファイルの中のscriptファイルを開きましょう。ここに~~.skというファイルを作ってみましょう。拡張子をskにするのを気を付けましょう。



ファイルが作れたらテキストエディタで開いてみましょう。テキストエディタはなんでも構いません。最悪メモ帳でも構いませんが、流石に書きにくいのでテキストエディタを使うことをお勧めします。筆者のお勧めはnotepad++とAtomです。

2. skriptの基本形
skriptには基本形が二つあって、すべてはそれの応用です。
まず一個目

<トリガー>:
    <条件>
    <動作>



はいこれ。基本形その1。
skriptにおいて最重要項目なんですけど、条件と動作の左にある空白はタブ一個です。これはその通りに書かないと動作しないので気を付けましょう。:の次の行はタブを一個追加して書き出しです。

じゃあ解説。
トリガー。イベントとも言います。これは前回説明したskunityにあるeventsです。on rightclickとか。on rightclick:と書くと、プレイヤーが右クリックしたときに以下の動作をする。という意味です。

次の条件ってやつは、トリガーが発動した後に条件を追加して動作をするかどうかを判断できます。
たとえばif player's tool is a hoe:。これはプレイヤーのツール(持っているアイテム)が桑であれば以下の動作を実行するという意味です。
条件はif ~~:が原型ですが、~~:、また、~~だけで書くこともできます。
:を付ける場合は次の行のタブを忘れないように注意しましょう。
ここに書くものは、skunityのconditionsで見ることができます。また、対象を判別する条件を書きたい場合は、(クリックしたブロックが土かどうか判断したいなど)expressionsとtypesをに書いてあります。
クリックしたブロックが土かどうか判断する場合は、
if event-block is a dirt: またはif clicked block is a dirt:と書くことができます。event-blockはそのイベントで対象のブロック(右クリックのイベントだとクリックされたブロック)を指しています。

最後に動作。これはマイクラ内にどのような動作をするかを書くところです。
例えばプレイヤーを回復させるなど。この場合はheal the player by 5。
これはskunityのeventsに一覧が載っています。

次に二個目の原型。


command /<コマンドの名前> [<引数>]:
    trigger:
        <条件>
        <動作>

これはコマンドを追加する原型です。といってもイベントがコマンド入力に代わるだけです。

コマンドの名前は自由です。好きなものでやってみましょう。

次に引数ですが、これは任意です。また、複数設定することもできます。
引数を設定することで、コマンド内で変数として使うことができます。
引数を複数設定する場合は一行目に


command /command コマンド名 引数1 引数2 [引数3]...:

という風に書きます。
引数3が[]に囲まれてるのは、この引数は任意ということです。つまりこのコマンドを実行するとき、引数を2個指定しても、3個指定しても動きます。

3. 変数について
プログラムを書く過程で、必須になってくるのが変数です。
skriptでは変数は{}で囲んで表します。{x}、{ga}などどんな名前でもよいです。

変数には三つ種類があり、普通の変数、一時変数、リスト変数です。
普通の変数は{x}のようなものです。この変数はずっと保存され続け、ほかのskファイルでも使えます。
一時変数は{_x}のように、名前の最初に_を付けます。この変数は、最初に定義した(変数を作った)時の処理がおわると消えます。鯖のデータを重くしないためにほかの処理で使うことのない変数は一時変数を使うことを意識しましょう。
リスト変数は一つの変数に複数の値を保存できます。{x::*}のように名前の最後に::*をつけます。

変数を作るときは、コード内で


{test} = 0
{_test} = 1
{_test::*} = "あ", "い"

のように書きます。{_test::*}は一時的なリスト変数で、処理が終わると消えるリスト変数も作ることがあります。
リスト変数には , で区切って複数の値を設定できます。どの変数でも、文字を設定する場合は""で囲むことを覚えておきましょう。
リスト変数には、add "う" to {_test::*}のように書くことで要素を追加することができます。

普通の変数と一時変数は数字を代入していると、+-*/^=などの記号を使って四則演算ができます。

また、変数は文字列として代入できます。何言ってるかわからんと思うので次を見て見ましょう。

{_a} = "aaa"
{_bb%{_a}%} = "bba"

こう書くことで二つ目の変数の名前は{_bbaaa}と言うことになります。この書き方をskriptではよく使うので覚えておきましょう。

また、他のいろんなものも%%で囲むことによって文字列として代入できます。
%player%などのように書くと、その処理ごとの対象のプレイヤーの名前を入れてくれます。これによってプレイヤーごとのデーターを管理できるわけです。

んじゃ今回はここまで。

その2はコチラ
Share:

0 コメント:

コメントを投稿