【Skript】変数入門編/setとかaddとかremove【Minecraft】


はじめに

とにかく簡潔に解説します。
詳しい解説が欲しかったら英語で検索すればいくらでも出てくるので、頑張ってください。

【環境】
Minecraft 1.12
Spigot
Skript 2.3.7

変数とは

変わる数です。
例えば、変数「HP」は今は『100』を指しているとします。
しかしその後、「HP」の値を30減らすような文を書くと、
変数「HP」は『70』を指すようになります。
これにより数や文字を保存しておくことができます。

変数とset文

set {variable} to 0
set {text-variable} to "aiueo"

Skriptでは、「これは変数だ」と示すために
{ }で変数名をくくって表記します。

上の文では「variable」という変数に『0』という数、
下の文では「text-variable」という変数に『aiueo』という文字列を設定しています。

上の文のとおり、
set (対象) to (セットする値)
で対象に値をセットすることができます。

*set文を使用するとき対象は変数だけに限らず、

set player's health to 10
#プレイヤーの体力を10に設定

こんな使い方も可能です。

add文やremove文など

addは増やします。

add 1 to {var}

add (増やす値) to (対象)
です。setとは違い、対象が後に来ます。注意してください

removeは減らします。

remove 1 from {var}

remove (減らす値) from (対象)
to ですらないので注意してください。
(基本的に英語準拠なので当然ですが)

ちなみに

add -1 to {var}

もちろん-1をaddすれば1引かれます。*0+(-1)=-1
当然-1をremoveしたら1増えます。*0-(-1)=1

setでも

set {var} to {var}+1

変数「var」の値を「var」の値より1増やします。
つまり、1をaddしているのと同じになります。
addとかremoveとかの書き方でこんがらがる人は
全部setで統一してもいいかも。

変数のクリア(clear文)

clear.sk
on rightclick:
 set {number} to 1234
 clear {number}
 message {number}

clear は変数自体を消し去ります。
clear (対象)
この場合、一度1234を変数「number」に設定しましたが、
clearでそれを消し去っているので、最終的に「number」の中身は虚無になります。
ちなみに、虚無をmessageで表示しようとした時は、

チャット欄
<none>

と表示されます。

ローカル変数

local_variable.sk
on rightclick:
 add 1 to {_rightclick}
 message {_rightclick}

ローカル変数はそのイベント内だけで使用される変数です。
{_(変数名)}
のように変数名の前にアンダーバーを入れるとローカル変数になります。
ローカル変数は、そこから外に出たりイベントが終わったりするとクリアされます。
上のスクリプトでは、何度クリックしても『1』としか表示されません。
*add 1 をしてもイベントが発生すると0に戻るため、何回やっても0+1

public_variable.sk
on rightclick:
 add 1 to {rightclick}
 message {rightclick}

これをローカル変数でなくするとちゃんと加算されていきます。

おわりに

変数はSkriptを書くのには必須です。
まだまだ変数は奥が深いですが、とりあえず基礎の基礎は覚えておきましょう。