変数でオプションの変数を指定したい

変数でオプションの変数を指定したい options: text1: 出したい文章 text2: 文章2 text3: 文章3 function testFunction(p: player, text: text): send "{@"{text}"}" to {p} #ここがわからない on click: set {var} to "text1" #ここでoptionのどのテキストを表示するか変数に代入 testFunction(player,{var}) ##### optionsであらかじめセットされている変数名と文章の組み合わせのうち、varに代入されているものとオプションが合致したものだけ表示される仕組みを作りたいです。
22 Replies
月猫ch
月猫ch17mo ago
根本的解決にはなってないけど on load: set {TEMP} to ~ で、options自体使わない方針じゃダメなん?
ゆきあ
ゆきあOP17mo ago
全部セットしたりif文の長文で解決はできるんですけど、メンテナンスの観点から、ファンクションで呼び出して処理したいんです。
月猫ch
月猫ch17mo ago
なるほど…すまんoptions普段使わんから俺は分からん…
ゆきあ
ゆきあOP17mo ago
optionsじゃなくてもいいんですけど、ソースの画面で『ID、パーミンション、グループ名』なんかをまとめておいて、その一つをファンクションで引き出して使うみたいなのが理想なんです。何かいい方法ありましたら教えてください。 作りたいモノとしては、紙ブロックのloreなんかにID書いといて、右クリックで紙アイテム消費して、任意のパーミッションが得られるというものです。 例えばflyっていうloreの紙を使ったら内部でflyのloreを取り出して、あらかじめflyにfly.useみたいなpermをoptionsを参照して取得して付与するみたいな感じです。そのIDとPermの組み合わせが全部optionsに書いてあって、処理はfunctionで一元化したい感じです。
Yeahn
Yeahn17mo ago
optionsに integer代入はできないので function内部取り込みは無理そう
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
send "{@%{_text}%}" to {_p} って動きませんか? あ出来ないのか
Yeahn
Yeahn17mo ago
options:
text1: 出したい文章
text2: 文章2
text3: 文章3
on click:
send "{@test1}" to player
options:
text1: 出したい文章
text2: 文章2
text3: 文章3
on click:
send "{@test1}" to player
Yeahn
Yeahn17mo ago
やってみたけどできなかった
No description
Yeahn
Yeahn17mo ago
No description
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
opt ってなんや
Yeahn
Yeahn17mo ago
No description
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
evaluateで動かんまじ んあ〜これ evaluate実行される前にoptionsの処理されるのか
Yeahn
Yeahn17mo ago
正直言って何よりも先にoptions優先されるから展開無理そうなんだよね
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
set {_a} to "@"
evaluate "send ""{%{_a}%%{_arg-1}%}"""
set {_a} to "@"
evaluate "send ""{%{_a}%%{_arg-1}%}"""
だとどうなる?
Yeahn
Yeahn17mo ago
%{_arg-1}%とは
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
あ何してんだ 直して試してみてくれ
Yeahn
Yeahn17mo ago
展開されずに出てきたぞ
No description
Yeahn
Yeahn17mo ago
んーというか この人の要望的に
variables:
{text1}: 出したい文章
{text2}: 文章2
{text3}: 文章3
function testFunction(p: player, text: text):
send "%{text%{_text}%}%" to {_p} #ここがわからない

on click:
set {var} to "text1" #ここでoptionのどのテキストを表示するか変数に代入
testFunction(player, {var})
variables:
{text1}: 出したい文章
{text2}: 文章2
{text3}: 文章3
function testFunction(p: player, text: text):
send "%{text%{_text}%}%" to {_p} #ここがわからない

on click:
set {var} to "text1" #ここでoptionのどのテキストを表示するか変数に代入
testFunction(player, {var})
これでよさげな気がするんだが まぁただ あとから変数の中身だけ変えたときに 適用されないからそこはunloadで loop numbers from 1 and 3: delete {text%loop-number%} みたいな処理が必要かも どうですかね
月猫ch
月猫ch17mo ago
もうおとなしく 一次関数に代入して その関数使えば…?
yukkina
yukkina17mo ago
これが正解すぎる
ゆきあ
ゆきあOP17mo ago
ありがとうございます。variables:を使ってみます。
Want results from more Discord servers?
Add your server