LoginSignup
2
0

Minecraft Skript - 2. 変数と%%をなんとなく理解する

Last updated at Posted at 2023-08-09

前回の記事で、%player%というものが出てきました。

今回は、

  • %で囲われたplayerとは何なのか
  • %で囲うと何ができるのか
  • {_n}{list::*}といった変数とはどういう物なのか

について解説します。

この部分は説明が難しく、わかりにくいかもしれません。
なんとなく「そういうものなんだな」と理解して頂ければokです。

player%って何なの?

この、playerはSkriptの Expression と呼ばれる物の一つです。
翻訳すると、 表現 になります。
このExpressionは、イベント発生時等に値が設定されます。

if player's gamemode is survival:
    send "あなたはサバイバルモードです。" to player

これを%で囲むとどうなるかというと、このplayerに含まれた値を表示できます。
主にメッセージを送信するsendで使う事が多いと思います。

send "あなたのゲームモードは%player's gamemode%です。" to player

変数とは

このExpressionには変数というものも含まれます。
...といっても、変数の説明がまだなので分からないでしょう。

変数とは、値を{ }のようなもので保存するものです。
いくつか種類があります。

# 変数名はabcとしています。
変数          -> {abc}
一時変数      -> {_abc}
リスト変数     -> {abc::*}
一時リスト変数 -> {_abc::*}

変数とリスト変数 - {abc}, {abc::*}

サーバー内の全ての場所で使える変数です。
変数には1つの値しか入りません。
しかし、リスト変数は複数の値を入れられます。
つまり、
変数はAとBとCのどれかしか入りませんが、リスト変数であれば全て入れられるわけです。

例文 (abc.sk)

abc.sk
# 例文です
set {abc} to A               #{abc}にAをセット
set {abc::*} to A, B, and C  #{abc::*}にAとBとCをセット
add A to {abc::*}            #Aを{abc::*}に追加
remove A from {abc::*}       #Aを{abc::*}から削除
delete {abc}                 #{abc}を削除
delete {abc::}               #{abc::*}を削除

一時変数と一時リスト変数 - {_abc}, {_abc::*}

イベント内でのみで使える変数です。
変数の最初に_が付き、処理が終わった後に変数のデータが消去されます。
それ以外は変数とリスト変数と同じです。


例文

logging.sk
on join:
    set {ip.%player%} to player's ip 

参加時にプレイヤーのIP(player's ip)を{ip.%player%}に保存します。
変数名を見ると、%player%がありますね...
つまり、%player%にはプレイヤー名が代入されます。
MCIDがringo360xdなら、{ip.ringo360xd}となります。
そして、{ip.ringo360xd}にはringo360xdのIPが代入されます。
(192.168.1.100など)


loc.sk
command /saveloc:
    trigger:
        set {loc.%player%} to player's location
loc.sk
command /loadloc:
    trigger:
        teleport player to {loc.%player%}

これは、/saveloc{loc.%player%}という変数にプレイヤーの位置を保存し、
/loadlocで保存した変数の位置にテレポートするというものです。

コマンドの詳しい作り方は、また今度解説します。

今回はここまで!
良いSkriptライフを!

2
0
0

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