Skocz do zawartości
  • 0

Problem z variables


SkrytyZiomus
 Udostępnij

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
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
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
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
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
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
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.

 Udostępnij

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

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