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

変数でオプションの変数を指定したい 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
Tsukineko(月雲)
根本的解決にはなってないけど on load: set {TEMP} to ~ で、options自体使わない方針じゃダメなん?
ゆきあ
ゆきあ11mo ago
全部セットしたりif文の長文で解決はできるんですけど、メンテナンスの観点から、ファンクションで呼び出して処理したいんです。
Tsukineko(月雲)
なるほど…すまんoptions普段使わんから俺は分からん…
ゆきあ
ゆきあ11mo ago
optionsじゃなくてもいいんですけど、ソースの画面で『ID、パーミンション、グループ名』なんかをまとめておいて、その一つをファンクションで引き出して使うみたいなのが理想なんです。何かいい方法ありましたら教えてください。 作りたいモノとしては、紙ブロックのloreなんかにID書いといて、右クリックで紙アイテム消費して、任意のパーミッションが得られるというものです。 例えばflyっていうloreの紙を使ったら内部でflyのloreを取り出して、あらかじめflyにfly.useみたいなpermをoptionsを参照して取得して付与するみたいな感じです。そのIDとPermの組み合わせが全部optionsに書いてあって、処理はfunctionで一元化したい感じです。
Yeahn
Yeahn11mo ago
optionsに integer代入はできないので function内部取り込みは無理そう
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
send "{@%{_text}%}" to {_p} って動きませんか? あ出来ないのか
Yeahn
Yeahn11mo 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
Yeahn11mo ago
やってみたけどできなかった
No description
Yeahn
Yeahn11mo ago
No description
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
opt ってなんや
Yeahn
Yeahn11mo ago
No description
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
evaluateで動かんまじ んあ〜これ evaluate実行される前にoptionsの処理されるのか
Yeahn
Yeahn11mo ago
正直言って何よりも先にoptions優先されるから展開無理そうなんだよね
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
set {_a} to "@"
evaluate "send ""{%{_a}%%{_arg-1}%}"""
set {_a} to "@"
evaluate "send ""{%{_a}%%{_arg-1}%}"""
だとどうなる?
Yeahn
Yeahn11mo ago
%{_arg-1}%とは
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
あ何してんだ 直して試してみてくれ
Yeahn
Yeahn11mo ago
展開されずに出てきたぞ
No description
Yeahn
Yeahn11mo 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%} みたいな処理が必要かも どうですかね
Tsukineko(月雲)
もうおとなしく 一次関数に代入して その関数使えば…?
yukkina
yukkina11mo ago
これが正解すぎる
ゆきあ
ゆきあ11mo ago
ありがとうございます。variables:を使ってみます。
Want results from more Discord servers?
Add your server
More Posts
発光前提: マイクラバージョン1.20.1(最新版) アドオンを使って特定のプレイヤーにしか 表示されない発光を作りたいです 使い方はミニゲームでチームメンバーだけを発光させたり観戦者が状況を掴みやすくブロックが火だった場合に置き換えたい``` loop all blocks in radius 7 around player: if block above loチャットに入力された数字だけを取得したいチャットに数字しか打てなくする、またはチャットに含まれる数字以外の文字を検知することはできますか?譲渡コマンドの脆弱性を解決したい```skript command /gift <player> <number>: trigger: if {gold::%player's uuid%} >= arg-2:クラフトしたあとにloreを編集できない``` on craft: item is sword or axe set the 1st line of item's lore to "&6aaa" ``` クラフトしたときに武同じイベントの優先順位SkbeeとSkript本体で全く同じ名前のイベントがある時は どっちのイベントが優先されて呼び出されますか?morkazSKのglow with colorが使えない```make player glow with color "NONE" for all players``` で、docsにはglowが消えると書いてありましたが、消えませんでした エラーはありまプレイヤーのネームプレートを変えたいこれを変えたいです prefixなどではなく、そのものを変えたいです mundoSK以外でのやり方があれば教えてほしいです制御できるリコイルの作成``` function addRotate(target: player, yaw: number, pitch: number): execute console command "tp command "/comannd"の応用でコマブロの条件付きのようなものがないかcommand "/comannd"で実行するコマンドが実行されたら次のコードが実行されて、コマンドが実行されなかったら次のコードが実行されないみたいなことってできませんか?