Skocz do zawartości
  • 0

Problem z variables


Pytanie

Witam, posiadam skipt 2.2 fixes v10 spigot 1.8.8 <-- serwer, mam problem z variables mianowicie kod:

on inventory click:
	if "%inventory name of player's current inventory%" is "1":
		cancel event
		if inventory type of clicked inventory is "CHEST":
			if "%clicked slot%" is "0":
				if {dx::%player%} contains "wylaczony":
					set {dx::%player%} to "on"
				else:    
					set {dx::%player%} to "of"

i gdy gracz klika np. przez pare sekund ciagle w slot 0 to powstaje takie cos w variables:

dx::Marek, string, 800CC2A76357796C61637A6F6E79
dx::Marek, string, 800BC2A732576C61637A6F6E79
dx::Marek, string, 800CC2A76357796C61637A6F6E79
dx::Marek, string, 800BC2A732576C61637A6F6E79
dx::Marek, string, 800CC2A76357796C61637A6F6E79
dx::Marek, string, 800BC2A732576C61637A6F6E79
dx::Marek, string, 800CC2A76357796C61637A6F6E79
dx::Marek, string, 800BC2A732576C61637A6F6E79
dx::Marek, string, 800CC2A76357796C61637A6F6E79
dx::Marek, string, 800BC2A732576C61637A6F6E79
dx::Marek, string, 800CC2A76357796C61637A6F6E79
dx::Marek, string, 800BC2A732576C61637A6F6E79
dx::Marek, string, 800CC2A76357796C61637A6F6E79
dx::Marek, string, 800BC2A732576C61637A6F6E79
dx::Marek, string, 800CC2A76357796C61637A6F6E79
dx::Marek, string, 800BC2A732576C61637A6F6E79

i gdy bedzie np. 50 osob to robic jednoczesnie to strasznie zaspamuje variables czy jest mozliwosc zrobienia by to sie czyscilo jakos lub bylo w jednej lini? moze w yaml lepiej to zrobic? to jest genertalnie skrypt na drop ze stone a bardziej na wylaczanie dropu dropu z jablek.

Odnośnik do komentarza
https://skript.pl/temat/43314-problem-z-variables/
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Godzinę temu, SkrytyZiomus napisał:

gdy gracz klika np. przez pare sekund ciagle w slot 0 to powstaje takie cos w variables:

To z pewnością nie jest normalne zachowanie zmiennych globalnych w Skript'cie. Zapisują się u ciebie widocznie z dużym opóźnieniem. Nie wiem czy to wynika z tego, że to jest stara wersja Skripta, może sam Skript jest błędnie skonfigurowany.

Godzinę temu, SkrytyZiomus napisał:

Witam, posiadam skipt 2.2 fixes v10 spigot 1.8.8

Czy próbowałeś ponownie pobierać Skripta, usuwając przy tym folder Skript po starszej wersji?

Godzinę temu, SkrytyZiomus napisał:

czy jest mozliwosc zrobienia by to sie czyscilo jakos lub bylo w jednej lini?

Mógłbyś stworzyć skrypt (np. za pomocą SkUtilities), który co jakiś czas czyściłby plik ze zmiennymi lub w nieco bardziej zaawansowanej wersji - sprawdzałby czy zmienne zapisane w pliku się powtarzają, jeżeli tak, to usuwa zbędne duplikaty. Co do zapisywania w linii, nie, nie da się.

Godzinę temu, SkrytyZiomus napisał:

moze w yaml lepiej to zrobic?

Nie, zdecydowanie nie. YAML nie jest językiem przeznaczonym dla baz danych, a już na pewno nie robiłbym tego w Skript'cie. Jego cechą jest czytelność, co znajduje zastosowanie w plikach konfiguracyjnych i niewiele ponad to.

Podsumowując, szczerze po raz pierwszy spotykam się, aby ktoś miał taki problem ze zmiennymi globalnymi w Skript. Może to wynika z twojego fetyszu pilnowania tego pliku jak oka w głowie (owszem, warto co jakiś czas zerkać co tam się dzieje, ale bez przesady... u niektórych te pliki zajmują nawet kilka gigabajtów i żyją z tym). Może to wynika z tego, że mało kto dba o coś takiego jak poprawność zapisu zmiennych globalnych.

Jeżeli poza wymianą Skripta szukasz innego rozwiązania, możesz w każdym tworzonym przez ciebie GUI w Skript sprawdzać czy różnica między ostatnim kliknięciem a teraz wynosi przykładowo ponad 1 sekundę. Jeżeli wynosi mniej, anulujesz event.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/43314-problem-z-variables/#findComment-270976
Udostępnij na innych stronach

  • 0
3 godziny temu, SkrytyZiomus napisał:

skipt 2.2 fixes v10 spigot 1.8.8

Czemu ludzie wciąż siedzą na tak starej wersji? Połowa rzeczy tam nie działa i jest masa błędów...

3 godziny temu, SkrytyZiomus napisał:

moze w yaml lepiej to zrobic

definitywnie nie

 

Spróbuj użyć zmiennej typu boolean - ustawiasz {dx::%player%} na true (nie "true" itp.), np.

set {dx::%player%} to true
if {dx::%player%} is false:
set {dx::%player%} to false 

Chociaż zamiast ustawiać na false nie wiem czy nie lepszym pomysłem nie będzie usunięcie zmiennej:

delete {dx::%player%} 

a potem sprawdzanie czy zmienna nie jest ustawiona zamiast "of" lub false ;)

if {dx::%player%} is not set:

 

Odnośnik do komentarza
https://skript.pl/temat/43314-problem-z-variables/#findComment-270993
Udostępnij na innych stronach

  • 0
Teraz, SkrytyZiomus napisał:

1.8.8 jest spoko:P

Taka spoko, że ma wiele braków w API względem chociażby 1.12. Gdybyś był na wersji 1.12.2+, tego wątku by nie było. Jeżeli wahasz się przed przesiadką na nowszą wersję ze względu na PvP, są pluginy specjalnie przystosowane do tego (przykładowo OldCombatMechanics).

Odnośnik do komentarza
https://skript.pl/temat/43314-problem-z-variables/#findComment-271074
Udostępnij na innych stronach

  • 0
36 minut temu, SkrytyZiomus napisał:

1.8.8 jest spoko:P

Jeśli lubisz gdy ci ktoś crashuje serwer, kopiuje przedmioty cheatuje lub dołącza na serwer bez nicku, to tak, 1.8.8 jest spoko.

 

Co do tematu: Pobierz skripta 2.5 od Matocolotoe, pamiętaj o usunięciu folderu Skript.

Edytowane przez Helios1993
Odnośnik do komentarza
https://skript.pl/temat/43314-problem-z-variables/#findComment-271077
Udostępnij na innych stronach

  • 0
31 minut temu, Helios1993 napisał:

Jeśli lubisz gdy ci ktoś crashuje serwer, kopiuje przedmioty cheatuje lub dołącza na serwer bez nicku, to tak, 1.8.8 jest spoko.

 

Co do tematu: Pobierz skripta 2.5 od Matocolotoe, pamiętaj o usunięciu folderu Skript.

/offtop: jak dołączyć na serwer niby bez nicku?

 

Przesiadka na nowszą wersję jest wręcz wymaga do poprawnego działania serwera...

Edytowane przez CoFFeIN04
Odnośnik do komentarza
https://skript.pl/temat/43314-problem-z-variables/#findComment-271080
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ę...