個人の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