Skocz do zawartości
  • 0

Lista graczy


shaqupl1

Pytanie

14 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
3 minuty temu, shaqupl1 napisał:

Siema, potrzebuje skrypt, który będzie zapisywał ludzi do listy
/zapisz ->  zapisuje osobę która wpisała komendę do listy.
a następnie za pomocą komendy np /wypisz 1 wypisuje nick 1 osoby z listy na czacie.

Proszę.

command /zapisz:
	executable by: players
	trigger:
		add player to {listaGraczy::*}
		
command /wypisz [<integer=1>]:
	trigger:
		send "&a%arg 1% element listy graczy to %{listaGraczy::%arg 1%} ? ""&7Brak""%" to sender

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
16 godzin temu, Kormic napisał:

Proszę.


command /zapisz:
	executable by: players
	trigger:
		add player to {listaGraczy::*}
		
command /wypisz [<integer=1>]:
	trigger:
		send "&a%arg 1% element listy graczy to %{listaGraczy::%arg 1%} ? ""&7Brak""%" to sender

 

Dziękuje, oczywiście działa jak zawsze. Jeszcze mam pytanie odnośnie listy. Wczoraj dodałem skrypt na serwer. Do listy zapisało się parę osób. Dzisiaj kiedy sprawdziłem listę, osób z wczoraj na niej nie było, są tylko ci, którzy zapisali się dzisiaj. To jakiś błąd?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, shaqupl1 napisał:

Dziękuje, oczywiście działa jak zawsze. Jeszcze mam pytanie odnośnie listy. Wczoraj dodałem skrypt na serwer. Do listy zapisało się parę osób. Dzisiaj kiedy sprawdziłem listę, osób z wczoraj na niej nie było, są tylko ci, którzy zapisali się dzisiaj. To jakiś błąd?

Nie powinno tak być. Może jednak coś omyłkowo wyczyściłeś.

Spróbuj jeszcze dzisiaj i jak będzie dalej problem, podaj proszę:

  • wersję serwera
  • silnik serwera
  • wersję Skripta
  • listę dodatków do Skripta
  • błędy przy przeładowaniu skryptu
  • błędy w konsoli
  • config Skripta
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Kormic napisał:

Nie powinno tak być. Może jednak coś omyłkowo wyczyściłeś.

Spróbuj jeszcze dzisiaj i jak będzie dalej problem, podaj proszę:

  • wersję serwera
  • silnik serwera
  • wersję Skripta
  • listę dodatków do Skripta
  • błędy przy przeładowaniu skryptu
  • błędy w konsoli
  • config Skripta

 

[10:43:26 INFO]: [Skript] Server Version: git-Paper-416 (MC: 1.16.4)
[10:43:26 INFO]: [Skript] Skript Version: 2.5.3
[10:43:26 INFO]: [Skript] Installed Skript Addons:
[10:43:26 INFO]: [Skript]  - Skellett v1.9.11 (https://forums.skunity.com/resources/skellett.24/)
[10:43:26 INFO]: [Skript]  - skUtilities v0.9.2 (https://tim740.github.io/)
[10:43:26 INFO]: [Skript]  - skRayFall v1.9.23 (https://sk.rayfall.net/)
[10:43:26 INFO]: [Skript]  - SkQuery v4.1.4
[10:43:26 INFO]: [Skript]  - SharpSK v1.6.4
[10:43:26 INFO]: [Skript]  - SkStuff v2.2.1

- błędów nie ma.

- config: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
10 minut temu, shaqupl1 napisał:

Dziękuje, oczywiście działa jak zawsze. Jeszcze mam pytanie odnośnie listy. Wczoraj dodałem skrypt na serwer. Do listy zapisało się parę osób. Dzisiaj kiedy sprawdziłem listę, osób z wczoraj na niej nie było, są tylko ci, którzy zapisali się dzisiaj. To jakiś błąd?

czy serwer był restartowany w tym czasie? jeżeli tak to może baza danych na zmienne nie jest ustawiona i wszystkie zostały wyczyszczone

druga opcja to taka że komenda wypisz nie ma nadanej permisji więc każdy może usunąć siebie lub wszystkich graczy z listy zapisanych - może gracze się bawili

Edytowane przez PanMaruda
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, PanMaruda napisał:

czy serwer był restartowany w tym czasie? jeżeli tak to może baza danych na zmienne nie jest ustawiona i wszystkie zostały wyczyszczone

druga opcja to taka że komenda wypisz nie ma nadanej permisji więc każdy może usunąć siebie lub wszystkich graczy z listy zapisanych - może gracze się bawili

Serwer ma zaplanowany restart o 6:00 czyli był restartowany dzisiaj. Zwykły gracz nie ma permisji do ztabowania oraz wykonania komendy, które nie jest dla niego dodana do whitelisty, więc nie ma do niej dostępu. Reszta skryptów działa jak powinna i nie usuwa z nich żadnych danych. Tylko ten jeden a konkretniej ta lista graczy wyczyściła się po restarcie.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
8 minut temu, PanMaruda napisał:

druga opcja to taka że komenda wypisz nie ma nadanej permisji więc każdy może usunąć siebie lub wszystkich graczy z listy zapisanych - może gracze się bawili

a dobra nie, nieważne - nie spojrzałem dokładnie w kod i wydawało mi się że wypisywanie polega na usuwaniu gracza z listy...

 

 

co z nazwą zmiennej - jesteś pewien że nie masz innego skryptu który mógłby ją nadpisywać albo kasować?

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
23 minuty temu, PanMaruda napisał:

a dobra nie, nieważne - nie spojrzałem dokładnie w kod i wydawało mi się że wypisywanie polega na usuwaniu gracza z listy...

 

 

co z nazwą zmiennej - jesteś pewien że nie masz innego skryptu który mógłby ją nadpisywać albo kasować?

 

Gdybym używał dwóch takich samych zmiennych przy reloadzie skripta dostałbym infomacje o konflikcie. 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, shaqupl1 napisał:

Gdybym używał dwóch takich samych zmiennych przy reloadzie skripta dostałbym infomacje o konflikcie. 

nie dostałbyś bo nie byłoby żadnego konfliktu - zmienne są globalne więc każdy skrypt może modyfikować co chce i jak chce

WARN o konflikcie zmiennych może pojawić się gdy nazwę zmiennej dodajemy wyrażeniem (w tym również inną zmienną)
np. {%name of player%} będzie konfliktować z każdą zmienną

sprawdź więc swoje skrypty - bo jeżeli nie ty je pisałeś to jest to bardzo prawdopodobne - wystarczy że wciśniesz ctrl+f i wpiszesz 'listaGraczy' w każdym pliku
jeżeli gdzieś w innym skrypcie znajdziesz taką zmienną to wtedy wystarczy że zmienisz tą nazwę w NOWYM skrypcie i będzie wszystko działać

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
31 minut temu, PanMaruda napisał:

nie dostałbyś bo nie byłoby żadnego konfliktu - zmienne są globalne więc każdy skrypt może modyfikować co chce i jak chce

WARN o konflikcie zmiennych może pojawić się gdy nazwę zmiennej dodajemy wyrażeniem (w tym również inną zmienną)
np. {%name of player%} będzie konfliktować z każdą zmienną

sprawdź więc swoje skrypty - bo jeżeli nie ty je pisałeś to jest to bardzo prawdopodobne - wystarczy że wciśniesz ctrl+f i wpiszesz 'listaGraczy' w każdym pliku
jeżeli gdzieś w innym skrypcie znajdziesz taką zmienną to wtedy wystarczy że zmienisz tą nazwę w NOWYM skrypcie i będzie wszystko działać

Wszystkie skrypty pisałem samemu, nie robię kopiuj wklej na forum szukam tylko pomocy wszystkie zmienne nazywam po swojemu i na pewno nie mam duplikatów ;) 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
8 minut temu, shaqupl1 napisał:

Wszystkie skrypty pisałem samemu, nie robię kopiuj wklej na forum szukam tylko pomocy wszystkie zmienne nazywam po swojemu i na pewno nie mam duplikatów ;) 

W takim razie poobserwuj jeszcze dzisiaj jak skrypt się zachowuje i zdaj raport jutro.

Szczególnie ważne jest sprawdzenie czy lista istnieje przed i po restarcie serwera.

Z tego co widzę, używasz domyślnej bazy danych, a więc nie powinno być problemów.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
22 godziny temu, Kormic napisał:

W takim razie poobserwuj jeszcze dzisiaj jak skrypt się zachowuje i zdaj raport jutro.

Szczególnie ważne jest sprawdzenie czy lista istnieje przed i po restarcie serwera.

Z tego co widzę, używasz domyślnej bazy danych, a więc nie powinno być problemów.

Dzisiaj po restarcie lista nie wyczyściła się, nie wiem w czym był problem ale dodałem backup listy do yaml w razie czego. Mam jeszcze pytanie odnośnie pętli:
 

loop all offline players:
	if loop-value has permission "essentials.mute":
		send "&2Mute:&a%{mute.%loop-offlineplayer%}%  &6%loop-offlineplayer%"

Mam taką część skryptu która wypisuje ile razy ktoś zmutował jeżeli ma daną permisję. Problem jest w tym, że nie wypisuje mi osób, które są offline i mają permisję, wypisuje tylko tych, którzy są obecnie na serwerze i mają permisję. Jeżeli usunę if'a to wypisuje cały serwer. Jakieś pomysły ?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
7 minut temu, shaqupl1 napisał:

Dzisiaj po restarcie lista nie wyczyściła się, nie wiem w czym był problem ale dodałem backup listy do yaml w razie czego. Mam jeszcze pytanie odnośnie pętli:
 


loop all offline players:
	if loop-value has permission "essentials.mute":
		send "&2Mute:&a%{mute.%loop-offlineplayer%}%  &6%loop-offlineplayer%"

Mam taką część skryptu która wypisuje ile razy ktoś zmutował jeżeli ma daną permisję. Problem jest w tym, że nie wypisuje mi osób, które są offline i mają permisję, wypisuje tylko tych, którzy są obecnie na serwerze i mają permisję. Jeżeli usunę if'a to wypisuje cały serwer. Jakieś pomysły ?

To nie działa, gdyż nie możesz sprawdzać permisji u gracza offline.

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

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