Skocz do zawartości
  • 0

Skrypt na scoreboard


Morlineq

Pytanie

No więc tak, chce na moim serwerze {1.16.3) napisać skrypt który umożliwi scoreboard, który każdy gracz będzie mógł sobie indywidualnie wyłączyć, kod wygląda tak:

 

set {sb::%player%} to false

command /sb [<text>]:
	trigger:
		if arg 1 is not set:
			send "&8 >> &c&lPoprawne uzycie: &6/sb <on/off>&c&l!"
		if arg 1 is set:
			if arg 1 is "on":
				set {sb::%player%} to true
			if arg 1 is "off":
				set {sb::%player%} to false
				stop
	
if {sb::%player%} is true:
	every 5 seconds:
		loop player:
			wipe loop-player's sidebar
			set name of sidebar of loop-player to "NAZWA SCOREBOARDA"
			set score "&aNick: &7%loop-player%" in sidebar of loop-player to 15
			set score "&aTWOJE DODATKI 14" in sidebar of loop-player to 14
			set score "&aTWOJE DODATKI 13" in sidebar of loop-player to 13
			set score "&aTWOJE DODATKI 12" in sidebar of loop-player to 12
			set score "&aTWOJE DODATKI 11" in sidebar of loop-player to 11
			set score "&aTWOJE DODATKI 10" in sidebar of loop-player to 10
			set score "&aTWOJE DODATKI 9" in sidebar of loop-player to 9
			set score "&aTWOJE DODATKI 8" in sidebar of loop-player to 8
			set score "&aTWOJE DODATKI 7" in sidebar of loop-player to 7
			set score "&aTWOJE DODATKI 6" in sidebar of loop-player to 6
			set score "&aTWOJE DODATKI 5" in sidebar of loop-player to 5
			set score "&aTWOJE DODATKI 4" in sidebar of loop-player to 4
			set score "&aTWOJE DODATKI 3" in sidebar of loop-player to 3
			set score "&aTWOJE DODATKI 2" in sidebar of loop-player to 2
			set score "&aTWOJE DODATKI 1" in sidebar of loop-player to 1

oraz wyskakuję mi błąd że 1 i 17 linijka są nieprawidłowe, pomocy!

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/
Udostępnij na innych stronach

18 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
5 minut temu, Morlineq napisał:

No więc tak, chce na moim serwerze {1.16.3) napisać skrypt który umożliwi scoreboard, który każdy gracz będzie mógł sobie indywidualnie wyłączyć, kod wygląda tak:

A więc uwagi ode mnie:

1. Nie podałeś specyfikacji serwera, więc możliwe, że nawet po naniesieniu poprawek nadal nie będzie coś działać, gdyż nie będę w stanie dostosować odpowiednio skryptu do wymagań twojego serwera.

2. W linijce nr 1 jest błąd, gdyż tworzenie skryptów polega na tworzeniu ich za pomocą triggerów/eventów/periodicali oraz tym podobnych. Ty natomiast wrzuciłeś luźno ustawianie zmiennej. Skąd serwer ma wiedzieć kiedy ustawić tę zmienną? Skąd serwer ma wiedzieć kim jest %player% w nazwie zmiennej? Jeżeli już to powinieneś wrzucić ustawianie tej zmiennej do sekcji 'variables'

variables:
	{sb::%player%} = false

3. W linijce 14. jest ten sam błąd co w punkcie 2.

4. Linijka 15. podobnie. Linijka 14 i 15 jeżeli już to powinny być zamienione miejscami.

5. W linijce 16. czym ma być niby 'loop player'?

6. Co do tworzenia scoreboardów w Skript, lepiej do tego wykorzystać specjalnie do tego przystosowane pluginy.

Zanim zabierzesz się za pisanie skryptów, zajrzyj do poradników i dokumentacji, dzięki temu nie będziesz musiał niepotrzebnie tworzyć wątków na forum.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266100
Udostępnij na innych stronach

  • 0
Gość Usunięty#29721

1. Nie rób skryptu na scoreboard, lepiej użyc pluginu.

2.Ciekawi mnie co to jest za event.

if {zmienna} is true:
	every 5 seconds:

EDIT: 

Teraz, Morlineq napisał:

Jeżeli zmienna jest ustawiona na true (wcześniej próbowałem z 1 i 0 a nie true i false) którą ustawiasz wcześniej komendą, jeżeli jest ona ustawiona na true, scoreboard się wyświetla, jeżeli na false to nie.

Aha czyli najpierw mam sprawdzać zmienną a potem użyć eventu? Okej, dzięki za radę.

Edytowane przez nof
Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266101
Udostępnij na innych stronach

  • 0
45 minut temu, Kormic napisał:

A więc uwagi ode mnie:

1. Nie podałeś specyfikacji serwera, więc możliwe, że nawet po naniesieniu poprawek nadal nie będzie coś działać, gdyż nie będę w stanie dostosować odpowiednio skryptu do wymagań twojego serwera.

2. W linijce nr 1 jest błąd, gdyż tworzenie skryptów polega na tworzeniu ich za pomocą triggerów/eventów/periodicali oraz tym podobnych. Ty natomiast wrzuciłeś luźno ustawianie zmiennej. Skąd serwer ma wiedzieć kiedy ustawić tę zmienną? Skąd serwer ma wiedzieć kim jest %player% w nazwie zmiennej?

3. W linijce 14. jest ten sam błąd co w punkcie 2.

4. Linijka 15. podobnie. Linijka 14 i 15 jeżeli już to powinny być zamienione miejscami.

5. W linijce 16. czym ma być niby 'loop player'?

6. Co do tworzenia scoreboardów w Skript, lepiej do tego wykorzystać specjalnie do tego przystosowane pluginy.

Zanim zabierzesz się za pisanie skryptów, zajrzyj do poradników i dokumentacji, dzięki temu nie będziesz musiał niepotrzebnie tworzyć wątków na forum.

Czego nie rozumiesz w linijce 16?
Normalnie jest "loop all players" ja zrobiłem "loop player"

Serwer jest na paper spigocie, mam pluginy takie jak Skript, SkUtilities, SkQuery oraz SkRayFall

Linijke 1 poprawiłem ponieważ zrobiłem "on join:" na początku i koniec.

Linijka 14 i 15 powinny być zamienione miejscami? W linijce 14 jest tylko TAB odstępu...

 

42 minuty temu, nof napisał:

Nie rób skryptu na scoreboard, lepiej użyc pluginu.

https://www.spigotmc.org/resources/realscoreboard-1-13-to-1-16-3.22928/
https://www.spigotmc.org/resources/scoreboard.14754/

EDIT: @Kormic jak Ty tak szybko piszesz?!

Wiesz, chodzi mi o to aby każdy gracz mógł indywidualnie sobie włączyć i wyłączyć scoreboard, wątpie że coś takiego jest w pluginie.

 

42 minuty temu, nof napisał:

1. Nie rób skryptu na scoreboard, lepiej użyc pluginu.

2.Ciekawi mnie co to jest za event.



if {zmienna} is true:
	every 5 seconds:

 

Jeżeli zmienna jest ustawiona na true (wcześniej próbowałem z 1 i 0 a nie true i false) którą ustawiasz wcześniej komendą, jeżeli jest ona ustawiona na true, scoreboard się wyświetla, jeżeli na false to nie.

CountingDogs

Łączę posty.

Notatka dodana przez CountingDogs

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266102
Udostępnij na innych stronach

  • 0
Teraz, Morlineq napisał:

Jeżeli zmienna jest ustawiona na true (wcześniej próbowałem z 1 i 0 a nie true i false) którą ustawiasz wcześniej komendą, jeżeli jest ona ustawiona na true, scoreboard się wyświetla, jeżeli na false to nie.

Po treści wcześniejszej twojej odpowiedzi wygląda na to, że jesteś jednym z tych skrypterów z przerostem ambicji. Przeczytaj jeszcze raz moje porady, dokładniej punkt 2.

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266105
Udostępnij na innych stronach

  • 0
Teraz, Kormic napisał:

Po treści wcześniejszej twojej odpowiedzi wygląda na to, że jesteś jednym z tych skrypterów z przerostem ambicji. Przeczytaj jeszcze raz moje porady, dokładniej punkt 2.

Nie jestem wogóle skrypterem, nie umiem pisać skryptów, to nie moja bajka, ale dzięki za pomoc, mogłabyś przerobić ten skrypt poprostu tak żeby działał?

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266106
Udostępnij na innych stronach

  • 0
Teraz, Morlineq napisał:

Nie jestem wogóle skrypterem, nie umiem pisać skryptów, to nie moja bajka, ale dzięki za pomoc

W takim razie pójdź za moimi poradami, aby poprawić ten skrypt, dodatkowo zwróć uwagę na ostatnie zdanie w mojej wypowiedzi.

Teraz, Morlineq napisał:

mogłabyś przerobić ten skrypt poprostu tak żeby działał?

Nie, nie mogę. Nie jestem fanem "spoonfeedingu" (oczywiście poza działem Zlecenia).

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266107
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

W takim razie pójdź za moimi poradami, aby poprawić ten skrypt, dodatkowo zwróć uwagę na ostatnie zdanie w mojej wypowiedzi.

Zrobiłem wszystko tak jak mówiłeś, zamieniłem te linijki, oraz wciąż jest błąd ;d

There's no world in a periodic event if no world is given in the event

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266108
Udostępnij na innych stronach

  • 0
Teraz, Morlineq napisał:

Zrobiłem wszystko tak jak mówiłeś, zamieniłem te linijki, oraz wciąż jest błąd ;d

There's no world in a periodic event if no world is given in the event

Zapewne użyłeś 'player' w pętli 'loop all players', ale jedynie zgaduję.

Pokaż jeszcze raz skrypt i wskaż, w której linijce jest błąd.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266109
Udostępnij na innych stronach

  • 0
Teraz, Morlineq napisał:

błąd jest tutaj

every 5 seconds:
    if {sb::%player%} is 1:

Tutaj jest błąd, gdyż użyłeś %player% w pętli 'every 5 seconds'. Jeżeli chcesz przechwycić gracza, musisz to zrobić poprzez jakąś pętlę, przykładowo 'loop all players'.

Ponowię moją prośbę. Pokaż skrypt.

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266112
Udostępnij na innych stronach

  • 0
Teraz, Kormic napisał:

Tutaj jest błąd, gdyż użyłeś %player% w pętli 'every 5 seconds'. Jeżeli chcesz przechwycić gracza, musisz to zrobić poprzez jakąś pętlę, przykładowo 'loop all players'.

Ponowię moją prośbę. Pokaż skrypt.

variables:
	{sb::%player%} = 0

command /sb [<text>]:
	trigger:
		if arg 1 is not set:
			send "&8&l >> &c&lPoprawne uzycie: &6&l/sb <on/off>&c&l!"
		if arg 1 is set:
			if arg 1 is "on":
				set {sb::%player%} to 1
			if arg 1 is "off":
				set {sb::%player%} to 0
				stop
			
every 5 seconds:
	if {sb::%player%} is 1:
		loop player:
			wipe loop-player's sidebar
			set name of sidebar of loop-player to "NAZWA SCOREBOARDA"
			set score "&aNick: &7%loop-player%" in sidebar of loop-player to 15
			set score "&aTWOJE DODATKI 14" in sidebar of loop-player to 14
			set score "&aTWOJE DODATKI 13" in sidebar of loop-player to 13
			set score "&aTWOJE DODATKI 12" in sidebar of loop-player to 12
			set score "&aTWOJE DODATKI 11" in sidebar of loop-player to 11
			set score "&aTWOJE DODATKI 10" in sidebar of loop-player to 10
			set score "&aTWOJE DODATKI 9" in sidebar of loop-player to 9
			set score "&aTWOJE DODATKI 8" in sidebar of loop-player to 8
			set score "&aTWOJE DODATKI 7" in sidebar of loop-player to 7
			set score "&aTWOJE DODATKI 6" in sidebar of loop-player to 6
			set score "&aTWOJE DODATKI 5" in sidebar of loop-player to 5
			set score "&aTWOJE DODATKI 4" in sidebar of loop-player to 4
			set score "&aTWOJE DODATKI 3" in sidebar of loop-player to 3
			set score "&aTWOJE DODATKI 2" in sidebar of loop-player to 2
			set score "&aTWOJE DODATKI 1" in sidebar of loop-player to 1

 

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266113
Udostępnij na innych stronach

  • 0

Nie ma czegoś takiego jak 'loop player'. Jeżeli chcesz zapętlić wszystkich graczy, używasz pętli 'loop all players'.

Następnie zamień 'loop all players' z linijką wyżej. Wyjaśnienie jest w mojej odpowiedzi wyżej.

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266114
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

Nie ma czegoś takiego jak 'loop player'. Jeżeli chcesz zapętlić wszystkich graczy, używasz pętli 'loop all players'.

Następnie zamień 'loop all players' z linijką wyżej. Wyjaśnienie jest w mojej odpowiedzi wyżej.

Tylko że ja nie chcę zapętlać wszystkich graczy... Chcę zapętlić tylko tych dla których zmienna jest ustawiona na 1

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266115
Udostępnij na innych stronach

  • 0
Teraz, Morlineq napisał:

Tylko że ja nie chcę zapętlać wszystkich graczy... Chcę zapętlić tylko tych dla których zmienna jest ustawiona na 1

Ehh... zaczyna mnie to powoli męczyć...

Musisz zapętlić wszystkich graczy, jeżeli chcesz jakiegoś przechwycić. W tej pętli sprawdzasz czy dany gracz (w tym przypadku %loop-player%) ma zmienną ustawioną na 1.

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266116
Udostępnij na innych stronach

  • 0
Teraz, Kormic napisał:

Ehh... zaczyna mnie to powoli męczyć...

Musisz zapętlić wszystkich graczy, jeżeli chcesz jakiegoś przechwycić. W tej pętli sprawdzasz czy dany gracz (w tym przypadku %loop-player%) ma zmienną ustawioną na 1.

No dobra, zmieniłem fragment kodu na loop all player, co mam zrobić dalej?

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266117
Udostępnij na innych stronach

  • 0
Teraz, Morlineq napisał:

No dobra, zmieniłem fragment kodu na loop all player, co mam zrobić dalej?

Prosiłbym o czytanie ze zrozumieniem, przynajmniej tego wymagam.

4 minuty temu, Kormic napisał:

Nie ma czegoś takiego jak 'loop player'. Jeżeli chcesz zapętlić wszystkich graczy, używasz pętli 'loop all players'.

Następnie zamień 'loop all players' z linijką wyżej. Wyjaśnienie jest w mojej odpowiedzi wyżej.

 

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266118
Udostępnij na innych stronach

  • 0
3 godziny temu, Kormic napisał:

Prosiłbym o czytanie ze zrozumieniem, przynajmniej tego wymagam.

 

Temat do zamknięcia, skończyłem z takim kodem który działa:
 

variables:
	{sb::%player%} = 0

command /sb [<text>]:
	trigger:
		if arg 1 is not set:
			send "&8&l >> &c&lPoprawne uzycie: &6&l/sb <on/off>&c&l!"
		if arg 1 is set:
			if arg 1 is "on":
				set {sb::%player%} to 1
				send "&8&l >> &c&lWłączyłeś scoreboard&l!"
			if arg 1 is "off":
				set {sb::%player%} to 0
				send "&8&l >> &c&lWyłączyłeś scoreboard&l!"
			
every 12 seconds:
	loop all players:
		if {sb::%loop-player%} is 1:
			wipe loop-player's sidebar
			set name of sidebar of loop-player to "NAZWA SCOREBOARDA"
			set score "&aNick: &7%loop-player%" in sidebar of loop-player to 15
			set score "&aTWOJE DODATKI 14" in sidebar of loop-player to 14
			set score "&aTWOJE DODATKI 13" in sidebar of loop-player to 13
			set score "&aTWOJE DODATKI 12" in sidebar of loop-player to 12
			set score "&aTWOJE DODATKI 11" in sidebar of loop-player to 11
			set score "&aTWOJE DODATKI 10" in sidebar of loop-player to 10
			set score "&aTWOJE DODATKI 9" in sidebar of loop-player to 9
			set score "&aTWOJE DODATKI 8" in sidebar of loop-player to 8
			set score "&aTWOJE DODATKI 7" in sidebar of loop-player to 7
			set score "&aTWOJE DODATKI 6" in sidebar of loop-player to 6
			set score "&aTWOJE DODATKI 5" in sidebar of loop-player to 5
			set score "&aTWOJE DODATKI 4" in sidebar of loop-player to 4
			set score "&aTWOJE DODATKI 3" in sidebar of loop-player to 3
			set score "&aTWOJE DODATKI 2" in sidebar of loop-player to 2
			set score "&aTWOJE DODATKI 1" in sidebar of loop-player to 1
		if {sb::%loop-player%} is 0:
			wipe loop-player's sidebar

 

Odnośnik do komentarza
https://skript.pl/temat/42445-skrypt-na-scoreboard/#findComment-266137
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...