変数を詳しく知りたいです
scriptを昨日知って変数かよく分からなかったので詳しく教えて欲しいです!
私からも質問はします
304 Replies
変数ってのは データを入れて置ける名前付きの箱みたいなものです
例えば
9872365087みたいなくそデカい数字や
Playerそのもののデータ などを
{変数名} または {_変数名} だけで簡単に扱うことが出来ます
変数の作り方は把握してますか
してないですね...
変数ってのは、俺の記憶だとざっくり3種類あります
要は箱の種類です
なるほど
いっこめ
{変数名} であらわされるタイプ
同じファイル内で共通で使えます
とかで変数を作ると
したばあい、0が表示されます
ごめん今VALO中 説明ガバ
ちょっとまってね
www
はい
send {変数} to player
は何してるかわかる?
わからないですね..
メッセージを送ろうとしてるぐらいしか
playerに{変数}の中身を送信してる
送信されたplayerはチャット欄で{変数}の中身が送られてくる
nbt...?
あー
NBTとは切り離して考えよう
OK
わかる、気持ちすごくわかる
ww
{}は、名札とかの紙の部分だと思っていい
要するに文章?
紙っていうか 箱か
箱にHENSUって名前を付ける -> {HENSU}
じゃあ、その箱に中身を入れるにはどうするか
set {HENSU} to 中身
こうすることで今{HENSU}
には中身
に該当するものが入ってる
例えばset {HENSU} to 114514
ってすると、いちいち114514って数字を使わずとも
代わりに{HENSU}
を使えば114514
として扱われるなるほど
これ一見そんなメリットないように見えるよね
入れてるものが小さいから
でも
{HENSU}
は大概のものが突っ込めるのだ
例えばいいよ来いよ1919野獣臭いオナニー見ろよ
とかいうきしょくて長い文章を、
特定のプレイヤーのちゃっとらんにおくるとする
仮にそのままやると
send "いいよ来いよ1919野獣臭いオナニー見ろよ" to player
とかいう、もうくそ長くて面倒な文章になる
でもset {HENSU} to "いいよ来いよ1919野獣臭いオナニー見ろよ"
すれば
コンパクトになるなるほど
まとめてるのか
何度でも使いまわせる
それを使えば
コマンドの省略もできるってことですか?
(コマンドなんか使わずskriptだけで実装できるから多分使わないけど)できるね
こっから一時変数、リスト変数、一時リスト変数を説明するのか、、頑張れ
scriptコマンド..
プログラムって言うのか
とりあいず 変数とリスト変数を学べれば大丈夫です!
全部やらないと意味ない(白目
全部やるんだよあくしろよ
多分おぬしの言うことは
みたいに、そのプログラム自体を省略できるか
ってこと?
そうです
それは、変数じゃない 関数
関数..w新しいの出てきたな
大丈夫、カップラーメンくらいの速度でゆっくりやっていこう
ww
3分やんけ
あれ..
日にち 変わったw
w
日付変わりましたね
ちなみに【グローバル関数】の概念を教えるために【イベント (on ~)】も教えないといけないとかいうバグ
あー。。
俺は今、この人と心中する覚悟で教えてるぜ(白目
リスト変数のために
loopを覚え
add remove, set。。。
そこからさらに「リスト変数がskriptの場合実はリストじゃなくてむしろ辞書変数」ということも教える
なんか申し訳ないんだが
大丈夫??今日寝れないよ??
いや大丈夫、俺もこうやって先輩方を過労死させてきた
せや、サンプルコードから教えればええんや
先祖代々で草
せや、skの記事かくか。
@古野月雲 まぁがんばってください。期待してます。
@yeahn
ちょっとみてこれ、skriptの基礎がすべて(?)詰まったサンプルコード
なんか紛れ込んでるよww
うーん下ネタ以外は完璧じゃないかな
しゃあねえだろ下ネタが一番定着すんだよ
あとplayer とp 逆
マジだ草
謎の違和感はそれか
いいか神月氏
これは冗談でもなんでもなく、このスクリプトがすべて理解できれば
めっちゃ上達したことになる

むしろ
こうか
それするなら
variables: をつけて
さらに上達
訳分からんw
詰め込みすぎると脳みそ破裂するやろw
それぐらいがちょうどいい (?)
草
まあとりあえず、↑の奴だけ開設するわ
おれもromってるんでお願いしまーす
まず何が起きるかだけ説明するお
鯖内にいるプレイヤーがジャンプすると
チャット欄に『ちんちん』と送られてくる
以上
ん?狂ってんな
???
何を言ってるかわかんねえだろ
でもがちなんだ
ちなみにこれ
役割を大きく3つにわけられるんだけど
分け方わかる?勘で
なんの役割か はどうでもいいから
勘?!w
全体を3つに分けてみて
on load:
function SendTNTN(p: player):
on player jump:
完璧
今この瞬間
説明時間が30分くらい減った
www
それでもまだ道のりは長いぞ
( ᐛ )

なんかひねくれてるけどそれでいいや
w
プログラムっていったらskファイルの内容すべて含んだ言い方が多い気がするよん
そうなんよなぁ
んで
のそれぞれの説明
バカが出た
まずそんなものはないけどね
on load:
こいつはあるテンプレに基づいて書かれてる
on なになに:
で、「なになにが起きたときに:以降の処理をするよ!」って意味
だから
で、おちんちんしたときに処理が行われる
なるほど(?)
loadの意味は分かる?
server reloadの事?
うーんちょっと惜しい
すごい無理やりな意味だけど
loadって【読み込み】だと思ってもらっていい
server loadは「鯖を読み込む」
on load:
は「このskriptファイルが読み込まれた時」って意味なるほど
※鯖じゃねえぞ
だから理論上は 一番最初に動く
ちょっと惜しいっていうか多分鯖読み込むときにskも読み込まれるから発火するとおもうよ
それをいうと、サバ読み込みなしのコマンドでのskrtip reloadの説明がむずく
/sk reload FILE の説明で詰む
/sk reload ○○.sk でsk再読み込みだっけ?
そっそそお
サバきどうのときは自動でreload allされてると説明しよう
on load:
のまとめ
ファイルが読み込まれると動くぞ!
読み込まれればなんでも動くぞ!
鯖再起動とかでも、ファイルがもう一度読み込まれるから、どちらにしろ動くぞ!
じゃあこいつは何に使うかって
「とりあえず一番最初に動かしたい奴はここに入れとけ」
(暴論)なるほど
例えばゲームにおける姫ぷ狙いのやつとか、最初に「おんなです!」っていうやろ
あとあと「女です!」は遅いやろ?
ソウダネ
※実際のコードとはかけ離れたくそジョークです
ではあらためて、サンプルコードをご覧いただこう
直さんの?wwwwま、まぁいっか
いいんだよ伝われば
これは何をしていると思う・
?
※豆知識※ちなみにskはファイルを名前順に読み込むので、ほんとに一番早くロードさせたい場合は0.skなどにすると良き。
読み込んだら HENSUという変数の中身に "ちんちん" と言う文字を入れている
これをやると「ファイルを超えた変数の共有」も可能
そゆことー
じゃあつぎ
なるほど〜
これね、
on
じゃないねfunction
だね分からん
すげーざっくりいうと
で、
名前
を使えば処理
の部分が自動で行われる
さっきon loadの話したやん・
on jump:
の意味わかる?わかる
on walk:
の意味わかる?わからん
walkの意味わかる?
分からん
歩くや(
英 1
要は「なんでもいいけどとりあえず 歩く という動作が行われた時」に実行される
例えば
on player walk:
プレイヤーが歩いたときに実行される
on player jump:
わかるね・わかる
send {HENSU} to player
なにがおこるかわかる?
その変数に入っている文字が
実行したプレイヤーに送信される
そうだね、厳密には
playerにちんちんが送信される
ねこの下り終わったらあけてください つまりfunctionは先に説明書渡しといて、あとからこれやれ!!!って言ってるんですよ
じゃあ、プレイヤーがジャンプしたときも歩いた時も「ちんちん」って送信するには
どうすればいいとおもう?
こうすればいいのわかる?
わかる
以前にこんなの作った

でもこれさ、ぶっちゃけおんなじこと何度も書いてて美しくないよね?
うん、まぁ
そこで!
という、関数を作ります
関数とは動作をテンプレ化してくれるものです
なんとこの関数をつかえば
これですみます
これがわからん
それを説明していくよ
たとえばお俺がおぬしに「三回回ってワンと吠えなさい」って命令するじゃん
はい..w
ことあるごとにそれを命令したい
でもそのたびに「三回回ってワンと吠えなさい」っていうのめんどい
じゃあどうするか
「三回回ってワンと吠える」という動作を「A」と名付けます
そうすれば
Aしなさい だけで済む
省略語みたいな?
そっそ
変数も 言ってしまえば省略じゃん?内容物の
それを動作(処理)でも同じことが出来る
でも処理ってぶっちゃけ、書くこと多いじゃん
そうだね
set {HENSU} to なになに~
で済まんのよ
じゃあどうするか
ってやっちゃったんだよね
改めてこれを見てみよう
send {HENSU} to player
を SendTNTNって名付けてるの
わかりそ?わかった
でもここで気が付くことない?
なんかちょっとちがくない?
違う
playerが{_p}になってるよね
p: playerがよくわかんない
うん
それがplayerと{_p}にかかわる
なるほど
例えば「AはBを殴りなさい」ってのをPunchって名付けるとするじゃん
はい
じゃあ、その「Punch」をつかって
「BはAを殴りなさい」ってやるとする
殴る人 殴られる人 がだれかを指定しないと成り立たないってわかる?
わかる
これあるじゃん
うん
なにげなくつかってる sendの「player」
これ実は
on player walk: on player jump:で
ちゃんと「playerがだれか」って決まってるからこうできてるんだよね
なるほど
でも関数(function)でplayerを使うとする
player おま誰、、、?
そしたら実行元がfunctionだから
実行されないってことか
そゆこと
じゃあそれをどう解決するか
on 何々:
「おれのplayerをSendTNTN君がつかいまわせばええんや!!」???
on player walk:
君が だれかわかっている「player」を持ってるってわかる?
on player walk: の中では player がだれかわかるんよ
walkしたplayerだよ
わかりそ?わかった
じゃあ、functionに「playerは○○だよー」って教えてあげれば
無事にfunctionが使えるってのもわかる?
わかる
じゃあどう教えるか
こうします
SendTNTNの( )に、playerが入ってるね。。。?
入ってる
あらためてfunctionを見る
(p: player)
ってのがある
結論から言うと
(変数名: 変数に入るデータの種類)
ですなるほど
変数って
{変数名}
だったっしょうん
functionの中で
{p}
っぽいあつあるくね?ある
_p
{_p}
がある
{_p} と {p}なんかちがうね違う
さらに結論から言うと
{p}ってしちゃうと、functionの外で{p}を使った場合
そのままfunctionでの{p}がつかわれちゃいます
それは、どういうことだ?
何言ってるかわかんねえか
on loadに戻ろう
あるくとplayerにtntnが送信される
が、仮に {H} -> {_H} にするとどうなるか
なんと、playerはどれだけ歩いてもtntnが送信されません
変数名の前に「_」を付けると
on load:とon player walk: の間にある 次元の壁を越えられないんです
なるほど?
そゆこと
ってすればtntnがおくられる
なるほど
:がついたら
そこから先は別次元なんよ
functionに戻ろう
functionにも:がついてるやん?
{p}ではなく{_p}とすることで
functionの外の{p}、{_p}とごっちゃにならないようにしてるんよ
なるほど
すげー簡単に言うと
{HENSU}はずっと使えます
{_HENSU}はその時しか使えません
なるほど
functionにおける p はfunctionの中でしか使わないので
{_p}
成程
ちなみに
ってなるよ
(変数の名前: 変数に入れるデータのタイプ)
変数の名前は_を入れなくてもいいのか
そゆこと
あくまで{_名前}
ちなみにこの段階で当初の目的の「変数の理解」は大概できたんだけど
変数だけ説明しきる のと 俺のサンプルコード全部解説
どっちがいい?
えっとね
知りたいことがあって
おん
それでいい?
ええよ
正直俺もさっさと彼女に抱き着いて寝たい
変数を使って
タグみたいに利用したいんだけど
w
タグみたいに使用したい、、、
というと?
Minecraftのタグみたいに利用したい
Tag?
具体的にどういう風に使いたいん・
プレイヤーごとに何かの情報を保存したいってこと?
そうです
あー
@mirageeeeeeeeeeeeeeeeeeeeeeeeeee
set {%uuid of player%.HENSU} to 000
でいいよねMinecraftで言えば 1人がタグA
もう1人がタグBみたいな
とりあえず最初はそれでいいと思う
具体的な解説と
とりあえず使い方 どっちがいい?
後々使いやすいのはリスト変数だから出来れば最終的にはそれを知って欲しいかな
具体的でお願いします
応用もしたいので
変数名には、なんと プレイヤーの名前やIDもつかえます
リスト変数を知りたいんですがね
じゃあリストで行こう
リスト変数!!
!!
{変数名::何番目の要素か}
{_変数名::何番目の要素か}
ノ二種類
いわずもがな ずっと使えるやつ と 一時的な奴
今回は多分前者
例えばLISTって名前のリスト変数の4番目のは
{LIST::4}
※リストの番号は0, 1, 2 と、0から始まります
すげー雑だけどここまでわかる?
分かる
で、これ
いっけん数字で管理してるように見えるジャン
ウン
恐ろしいことに違うんだよね
1っていうもじれつで管理してる
{LIST::4}は{LIST}の4番目じゃない
❓❓❓
LIST::4 っていう名前の変数
名前なのか
ちょっと特殊だけどね
だから
{変数名::player}でもできるんです
UUIDってわかる?
わかる
なら話は早い
playerのuuidは
uuid of playerで取得できる
なるほど?
{List::%uuid of player%}
なんと::の後は数字以外も入ります
(??????)
数字の代わりにUUIDぶち込んでください
たとえば、on joinっていう、サバに参加したときに動く奴がある
鯖に参加した人全員に、listを使った固有の変数を作る
歩くたびに、固有の変数の中身をチャットに送信する
これで、サバに参加した人は、歩くたびにチャットに0って送られる
わかる?
わかる
多分これでいける
他知りたいことは?
なるほど...w
Minecraftのタグを
感知するみたいの無いの?
マインクラフトに本来存在するTagの中身を取得するってこと?
そう
結論から言うと
おぬしが思ってる以上にむずいジャンルっすね
@mirageeeeeeeeeeeeeeeeeeeeeeeeeee
スゥッ
w
タスケテエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエエ
Im sleeping now
ok GG
wwww
っていうか
全部skriptで管理できるので、わざわざtagなんて言う不便なもの使わないでください
以上
skbeeで出来ると思うけど
確かにSkriptとコマンドの併用はおすすめしない
ちなみに変数が数十万個単位で増えると5分ごとに鯖がラグくなります
その場合は変数をDBに登録することで軽量化するという対処法があります
2年後くらいにぶつかると思うのでその時また来てください
www
分かりました
2年後...
ちなみに俺もまだぶつかってません(白目
生きてるかなw
※通常有り得ないです
tagは
用途によっては便利なので
一概に使うなとは
言えない
akon神がそう言ってるので場合によって使い分けてください
w
私はコマンドを知らないのでtagについての理解が無いです
akon神は控えめに言って神です
tagは単純に文字列のリストをentityに
持たせられるだけ
私がやりたいのは
ランダムで全員に別のタグをつけて
そのタグが着いてる人をskで感知させて
それに対応した文字を表記させたい
ってかこのサバのほとんどの人が俺以上の神々なので、わきまえて下さい
首を垂れて服従せよ
鯖落としたあとも保持されんのそれ
ez
例えばmobにmetadataでtrue/falseを持たせたりしたいとき
omg
これをtagにすると永続化させられたりします
はーん
じっさいuuid of entityから変数作ってboolean突っ込んで
毎回参照するより便利なん?
それに
nbtに保存されてるので
entityが死ねば
次元 違う話ししてんなぁ
一緒に消えてくれます
あぁ^~便利
tagって
on deathやevery 1 tickでチェックしなくていいんですねえ
tag "" of nbt of ○○
のやつ?
素敵
それは
nbtのキー
NBTマジでわからん
tagはまた別にあんの
全部skで済むじゃん
Tags:["tagA", "tagB"]みたいな感じで
保存されてます
nbtの中に
ミラげがいってるのはnbtの中の項目の話
nbtはminecraftで使われてるjsonの拡張みたいなもn
数値型がjsonと違って区別されてるし、バイナリデータになってる
便利だ(確信

nbtとパケット対してよく分かってないんだよな
パケットは一生わからん
でもパケット極めたら神になれるってのはわかる
だれか0から教えてパケット
んで変数の話どこまでいったんやっけ
Playerの関節自由自在にいじり回したい
多分やりたいことは実装できるレベルまでおわった
マーダーミステリみたいなことがしたいんやろランダムでそれぞれのプレイヤーにターゲットが設定される
そう
みどろんぱご存知なら話早い
はい今日からエスパー名乗ります
w
ちなみにこれはどうなん?
知ってるの?
ざっくり
ざっくりね
ルールブックは履修済み
ォ
それなら分かるな
えぇとね今
名札 攻略本 水晶玉は作ったんだけど
それをプレイヤーに右クリックした時に
そいつに例えばAと言うタグ?変数?
が付いていれば何カードとか表示させるみたいな
これ

この???の所をタグ?変数?を使って
表記を変えたりしたい
Ez
今こんなんなのよw

おんb
アイテムで無理やり分けてるんかな
そう
俺の知ってる限りでは
ターゲットを殺しつつ
アイテムを集めてく なんだけど
あってる?
あってる
タグをぶつけて表示される『???』は
そいつのターゲット?
それとも探索物?
水色が 捜索 赤が標的 緑が 所持カード
いや、とりあえず
具体的な実装内容をまとめといてくれ
俺はこれから彼女とイチャコラして寝る
w
すまねえ
おっけ
今日ようやく実家から帰ってきたんだ
まとめとく
たのんだ
www
ちょっと私も疲れた
明日まとめる
Unknown User•3y ago
Message Not Public
Sign In & Join Server To View
👍
おはようございます
えぇと、疲れました
クロスサーバーバグっちゃって
直してたら疲れてました
お、おう
まとめました
とりあいずこんな感じ
Unknown User•3y ago
Message Not Public
Sign In & Join Server To View
@koishityan || ではなく ``` で囲めますか?
Unknown User•3y ago
Message Not Public
Sign In & Join Server To View
ABCDEFGHIJKLMNOPQRSTUVWXYZを設定して
""でsplitすればいいんじゃないかな?
Unknown User•3y ago
Message Not Public
Sign In & Join Server To View

Unknown User•3y ago
Message Not Public
Sign In & Join Server To View
stringから数字抽出する時はそれ使うんやで
Unknown User•3y ago
Message Not Public
Sign In & Join Server To View
sk 2.5.2ならcharacter atってのがあんだけどね
おけです
一応作れるんですか?
作れます
これは言える。作れます。
みどろんぱ知らんから何も出来ね
役職の実装やり始めるのに気合がいる
なるほど
みどろんぱは能力とかカードとかバフとか能力のパラメータとかをすべて変数で管理しようとすると馬鹿みたいに変数多くなるから、事前にどのデータをどの形式で管理するか決めて処理の重さとの兼ね合いで関数なりタグなりattribute?なりも活用したほうがいいと思います
アイテムもめっちゃ多いので大変です
能力を除いたすべてのシステムが出来たとしても、殺人や警察、強欲が標的等の配布プログラムをぶっ壊しに来ます
がんばってください
頑張ります