個人のSidebarを変更する方法

コード
every 1 second:
loop all players:
wipe loop-value's sidebar
set name of sidebar of loop-player to "&7-= < &f%loop-value% &7> =-"
set score " &eLevel&7: &f%{rpg::level::loop-value's uuid}%" in sidebar of loop-player to 5
set score " &aNext&7: &f%{_next}%" in sidebar of loop-player to 4
every 1 second:
loop all players:
wipe loop-value's sidebar
set name of sidebar of loop-player to "&7-= < &f%loop-value% &7> =-"
set score " &eLevel&7: &f%{rpg::level::loop-value's uuid}%" in sidebar of loop-player to 5
set score " &aNext&7: &f%{_next}%" in sidebar of loop-player to 4
このSkriptでAさんのSidebarはAさんのデータを、BさんのSidebarにはBさんのデータを表示したいのですが、 全員のSidebarにAさんのデータが行ってしまいました。(一人の時はちゃんとできてました) →最後に入ってきた人のデータが全員に 個人のSidebarにするにはどうすればいいですか? 履歴をあさったり調べたりしても解決法がよくわかんなかったのでおしえてください... 環境↓
19 Replies
ぐううううう
1.12.2 PlayerRealmsです。
tanoKun
tanoKun2y ago
全部 loop value を loop-player にしてみてください
ぐううううう
every 1 second:
loop all players:
wipe loop-player's sidebar
set name of sidebar of loop-player to "&7-= < &f%loop-player% &7> =-"
set score "&7&7&m-----------------" in sidebar of loop-player to 6
set score " &eLevel&7: &f%{rpg::level::loop-player's uuid}%" in sidebar of loop-player to 5
set score " &aNext&7: &f%{_next}%" in sidebar of loop-player to 4
set score "&7&m-----------------" in sidebar of loop-player to 0
every 1 second:
loop all players:
wipe loop-player's sidebar
set name of sidebar of loop-player to "&7-= < &f%loop-player% &7> =-"
set score "&7&7&m-----------------" in sidebar of loop-player to 6
set score " &eLevel&7: &f%{rpg::level::loop-player's uuid}%" in sidebar of loop-player to 5
set score " &aNext&7: &f%{_next}%" in sidebar of loop-player to 4
set score "&7&m-----------------" in sidebar of loop-player to 0
結果変わりませんでした
tanoKun
tanoKun2y ago
どこのデータが同じなの?
ぐううううう
set name of sidebar of loop-player to "&7-= < &f%loop-player% &7> =-"です
ぐううううう
SkRayFallのFastScoreboardはfalseにしてあります trueでも変わんなかったです
tanoKun
tanoKun2y ago
バージョンあってかなぁ
ぐううううう
SkriptのバージョンとSkRayFallのバージョンはいろいろ試してみましたがだめでした
Yeahn
Yeahn2y ago
SkRayFallのスコアボードは経験上 他の人のスコアボードが表示されてしまうバグがあります。 これはマジで何をしても直せなかったです。突然直ったりもします。 SkellettのStylish Scoreboardを利用してみてはどうでしょうか?
command /refresh:
trigger:
refresh(player)
function refresh(p: player):
reset stylish scoreboard of {_p}
delete stylish scoreboard named "%{_p}%"
create a new stylish scoreboard named "%{_p}%"
set title of stylish scoreboard "%{_p}%" to "&e&lSIDEBAR"
set {_color::*} to "&0" and "&1" and "&2" and "&3" and "&4" and "&5" and "&6" and "&7" and "&8" and "&9" and "&a" and "&b"
set {_a} to 1
loop {_color::*}:
create a new id based score "%{_p}%.%{_a}%" with text "%{_color::%{_a}%}%" slot {_a} for stylish scoreboard "%{_p}%"
add 1 to {_a}
set stylish scoreboard of {_p} to "%{_p}%"
every 1 tick:
loop all players:
set the text of id "%loop-player%.12" to "&7サイドバーテンプレート"
command /refresh:
trigger:
refresh(player)
function refresh(p: player):
reset stylish scoreboard of {_p}
delete stylish scoreboard named "%{_p}%"
create a new stylish scoreboard named "%{_p}%"
set title of stylish scoreboard "%{_p}%" to "&e&lSIDEBAR"
set {_color::*} to "&0" and "&1" and "&2" and "&3" and "&4" and "&5" and "&6" and "&7" and "&8" and "&9" and "&a" and "&b"
set {_a} to 1
loop {_color::*}:
create a new id based score "%{_p}%.%{_a}%" with text "%{_color::%{_a}%}%" slot {_a} for stylish scoreboard "%{_p}%"
add 1 to {_a}
set stylish scoreboard of {_p} to "%{_p}%"
every 1 tick:
loop all players:
set the text of id "%loop-player%.12" to "&7サイドバーテンプレート"
* 私作テンプレートです。ご自由にお使いください。
ぐううううう
Skellettでやってみようと思います ちなみに、Skellettのsidebarってチカチカします?
Yeahn
Yeahn2y ago
SkRayFallほどにはしませんが、少しはします。
puzzle
puzzle2y ago
リセットするからじゃないの 行変わらないなら差し替えだけで行けるから問題ないと思うんだけど どっかに関数だけで処理できるようにしたsk作ったはずなんだけど見つからん
ぐううううう
loop {_color::*}:
create a new id based score "%{_p}%.%{_a}%" with text "%{_color::%{_a}%}%" slot {_a} for stylish scoreboard "%{_p}%"
add 1 to {_a}
set stylish scoreboard of {_p} to "%{_p}%"
every 1 tick:
loop all players:
set the text of id "%loop-player%.12" to "&7サイドバーテンプレート"
loop {_color::*}:
create a new id based score "%{_p}%.%{_a}%" with text "%{_color::%{_a}%}%" slot {_a} for stylish scoreboard "%{_p}%"
add 1 to {_a}
set stylish scoreboard of {_p} to "%{_p}%"
every 1 tick:
loop all players:
set the text of id "%loop-player%.12" to "&7サイドバーテンプレート"
ここからよくわからなくなったのでSkRayFallで進めることにしました。すみません HealthBarというPLがなぜか干渉していてそれを抜いたら解決しました。(arufoさんの協力もあって) 違う方法でやってしまいましたが、相談に乗ってくれてありがとうございました!
Yeahn
Yeahn2y ago
解決したのならよかったです。 まぁ一応解説します。
1 function refresh(p: player):
2 reset stylish scoreboard of {_p}
3 delete stylish scoreboard named "%{_p}%"
4 create a new stylish scoreboard named "%{_p}%"
5 set title of stylish scoreboard "%{_p}%" to "&e&lSIDEBAR"
6 set {_color::*} to "&0" and "&1" and "&2" and "&3" and "&4" and "&5" and "&6" 7 and "&7" and "&8" and "&9" and "&a" and "&b"
7 set {_a} to 1
8 loop {_color::*}:
9 create a new id based score "%{_p}%.%{_a}%" with text "%{_color::%{_a}%}%" slot {_a} for stylish scoreboard "%{_p}%"
10 add 1 to {_a}
11 set stylish scoreboard of {_p} to "%{_p}%"
1 function refresh(p: player):
2 reset stylish scoreboard of {_p}
3 delete stylish scoreboard named "%{_p}%"
4 create a new stylish scoreboard named "%{_p}%"
5 set title of stylish scoreboard "%{_p}%" to "&e&lSIDEBAR"
6 set {_color::*} to "&0" and "&1" and "&2" and "&3" and "&4" and "&5" and "&6" 7 and "&7" and "&8" and "&9" and "&a" and "&b"
7 set {_a} to 1
8 loop {_color::*}:
9 create a new id based score "%{_p}%.%{_a}%" with text "%{_color::%{_a}%}%" slot {_a} for stylish scoreboard "%{_p}%"
10 add 1 to {_a}
11 set stylish scoreboard of {_p} to "%{_p}%"
まず第1として、update text (内容をwipeせずに更新)という方法を使うには、事前に行と内容を関連づけるIDを登録する必要があります。 また、登録する際には必ず文字列も一緒に登録しなければなりません。 そこで、マイクラから見たら見えませんが、プログラム上は文字列として認識されるカラーコードを1~12番として順番に割り振っています ( 6,7,8,9,10行目 ) ※また、ここで毎回別の色を指定しているのは同じ色だと同じ文字列と認識されてその行が消えるからです。 (逆に{color::*}の数を減らすとサイドバーの数も減る) その際に、 <プレイヤー>.<番号> というidでスコアを記録します。 every 1 tickからに関しては上のスコアを記録するために用意したidで文字列を変えるテンプレートです。
ぐううううう
loop {_color::*}:
create a new id based score "%{_p}%.%{_a}%" with text "%{_color::%{_a}%}%" slot {_a} for stylish scoreboard "%{_p}%"
add 1 to {_a}
set stylish scoreboard of {_p} to "%{_p}%"
loop {_color::*}:
create a new id based score "%{_p}%.%{_a}%" with text "%{_color::%{_a}%}%" slot {_a} for stylish scoreboard "%{_p}%"
add 1 to {_a}
set stylish scoreboard of {_p} to "%{_p}%"
で行を作って
every 1 tick:
loop all players:
set the text of id "%loop-player%.12" to "&7サイドバーテンプレート"
every 1 tick:
loop all players:
set the text of id "%loop-player%.12" to "&7サイドバーテンプレート"
でその行の文字を変えるってことですか?
Yeahn
Yeahn2y ago
そういうことです!
ぐううううう
ありがとうございます
Want results from more Discord servers?
Add your server
More Posts
スニーク速度を変更したいset the player's walk speed でどんな数値に設定してもスニーク時の速度が一定以上早くなりません... スニーク時の速度を上げる方法って何かありません?か?Vixioのコマンドが使えない同じ質問があったのですが、そこにのっていたようにしても解決しなかったので質問します vixioのバージョンは2.0.7-prです。 あとPR環境ですチャージ切りのチャージが溜まっているか確かめる方法チャージ切りのチャージがマックスまで溜まっているか溜まっていないかを検知したいです。 skript ver: 最新 ver: 1.12.2 https://cdn.discordapp.com/aloopから抜け出す方法```vb send "0" loop 10 times: if {_hoge} is not set: set {_hoge} to true exit loop send Worldeditのcylコマンドで作られたようないい感じの円を自分の周辺に設置するスクリプトloop all blocks in radius 5 block of playerを試しましたが、それは自分の周りに円ではなく球がを作りました。 それは私の望む理想の作品の姿とは程遠い。vixioを使ったdiscord commandが反応しない[環境] Minecraft Java ver 1.17.1 Skript ver 2.6.3 Vixio(fork版) 2.0.9-pre6 [内容] SkriptとVixioを使ってdiscordMOBを右クリックした時に、そのMOBの情報をチャットメッセージにして表示するon rightclick on entity: send "%entity%" という内容のコードで一度私はそれを試そうとしましたがそれは失敗に終わりました。チームを分かりやすくするskript-packetを用いて 青チームのプレイヤーが付けてる ヘルメットは青の革ヘルメット 赤チームのプレイヤーが付けてる ヘルメットは赤の革ヘルメット に自分以外のプレイヤーから見える システ文字列から文字を抜き出す[NPC] <NPCの名前> という名前のエンティティをクリックしたときに** [NPC] を含ませずに <NPCの名前> だけ **を抜き出したいのですが ```on right click: on mineが反応しないon mine: player's tool is stone pickaxe event-block is gold ore broadcast "aaa" というコードを書いたんですが、金