Skocz do zawartości
  • 0

Itemy w magazynie nie zapisują się


Sledziu

Pytanie

Witam, używam pluginu Skript 2.5.3 by Matocolotoe oraz 1.8.8 Spigota.

Mój problem polega na tym, że wrzucam itemy do magazynu, a po ponownym otwarciu nie wyświetlają się one w gui (przepadają).

command /magazyn [<text>]:
	trigger:
		if {lv::%player%} >= 50:
			if arg 1 is set:
				if arg 1 is "1":
					if player has permission "magazyn.-":
						open chest inventory with 6 rows named "&6Magazyn &8(&7%player%&8)" to player
						wait 4 tick
						loop {backpack.%player%::*}:
							set slot loop-index parsed as integer of player to loop-value
						send "&e&lMAGAZYN &8» &fOtworzyles magazyn!"
						stop
					else:
						send "&e&lMAGAZYN &8» &fNie masz permisji!"
						stop
			else:
				send "&e&lMAGAZYN &8» &fPoprawne uzycie &7/magazyn (1,2,3)" to player
				stop
		else:
			send "&e&lMAGAZYN &8» &7Aby moc uzywac magazynu pierwszego, musisz posiadac 50 poziom!" to player
			stop
 
 
 
 
 
on inventory close:
	if name of player's current inventory is "&6Magazyn &8(&7%player%&8)":
		wait 2 tick
		set {_i} to 0
		loop 54 times:
			set slot {_i} of player to {backpack.%player%::%{_i}%}
			add 1 to {_i}

 

Odnośnik do komentarza
Udostępnij na innych stronach

15 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
1 minutę temu, Sledziu napisał:

Witam, używam pluginu Skript 2.5.3 by Matocolotoe oraz 1.8.8 Spigota.

Mój problem polega na tym, że wrzucam itemy do magazynu, a po ponownym otwarciu nie wyświetlają się one w gui (przepadają).

Wynika to czysto z twojego błędu, mianowicie w zły sposób odniosłeś się do skrzynki, którą widzi gracz oraz dodałeś 'wait 2 tick' przed zapisem, które nie powinno tam w ogóle być, gdyż już nie ma możliwości przechwycenia co tam było w tej skrzynce.

1. W linijkach ustawiających sloty (i je zapisujących) zamień 'of player' na 'of player's current inventory'.

2. W evencie 'on inventory close' usuń te wcześniej wspomniane 'wait 2 tick', gdyż niemożliwy po odczekaniu jest zapis zawartości tej skrzynki.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Poprawiłem na takie coś i dalej nie działa. Itemy nie zapisują się.

command /magazyn [<text>]:
	trigger:
		if {lv::%player%} >= 50:
			if arg 1 is set:
				if arg 1 is "1":
					if player has permission "magazyn.-":
						open chest inventory with 6 rows named "&6Magazyn &8(&7%player%&8)" to player
						wait 2 tick
						loop {backpack.%player%::*}:
							set slot loop-index parsed as integer of player's current inventory to loop-value
						send "&e&lMAGAZYN &8» &fOtworzyles magazyn!"
						stop
					else:
						send "&e&lMAGAZYN &8» &fNie masz permisji!"
						stop
			else:
				send "&e&lMAGAZYN &8» &fPoprawne uzycie &7/magazyn (1,2,3)" to player
				stop
		else:
			send "&e&lMAGAZYN &8» &7Aby moc uzywac magazynu pierwszego, musisz posiadac 50 poziom!" to player
			stop
 
 
 
 
 
on inventory close:
	if name of player's current inventory is "&6Magazyn &8(&7%player%&8)":
		set {_i} to 0
		loop 53 times:
			set slot {_i} of player's current inventory to {backpack.%player%::%{_i}%}
			add 1 to {_i}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Sledziu napisał:

Poprawiłem na takie coś i dalej nie działa. Itemy nie zapisują się.

Zapomniałem o tym napisać.

Zauważ, że przy zapisie ustawiasz graczowi sloty na zawartość listy, a ty masz ustawiać zawartość listy na slot {_i} ekwipunku gracza.

# Źle:
set slot... to {zmienna}

# Dobrze:
set {zmienna} to slot...

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Znalazłem prawdopodobnie problem, mianowicie nie zapisują się itemy przy evencie on inventory close. Gdy dam event on inventory click itemy zapisują się prawidłowo. Tylko, że w tym drugim muszę kliknąć na puste pole bo inaczej nie zapisuje się. Kolejna sytuacja, gdy wrzucam tam itemy trzymając shift (też się nie zapisują). Proszę o dalszą pomoc.

 

on inventory close:
	if name of player's current inventory is "&6Magazyn &8(&7%player%&8)":
		set {_i} to 0
		loop 53 times:
			set {backpack.%player%::%{_i}%} to player's current inventory's slot {_i}
			add 1 to {_i}

 

 

Ewentualnie jeśli nic nie da się zrobić to czy da się jakoś zwrócić wszystkie wrzucone itemy do eq gracza po zamknięciu GUI jeśli przykładowo nie kliknie przycisku "Zapisz"

 

CountingDogs

Łączę posty.

Notatka dodana przez CountingDogs

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
15 minut temu, Sledziu napisał:

Znalazłem prawdopodobnie problem, mianowicie nie zapisują się itemy przy evencie on inventory close. Gdy dam event on inventory click itemy zapisują się prawidłowo. Tylko, że w tym drugim muszę kliknąć na puste pole bo inaczej nie zapisuje się. Kolejna sytuacja, gdy wrzucam tam itemy trzymając shift (też się nie zapisują). Proszę o dalszą pomoc.

1. Powinieneś zapisywać 54 sloty, nie 53.

2. Podaj proszę:

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

  • 0

1. 1.8.8
2. Spigot 1.8.8
3. 2.5.3 by Matocolotoe
4.
- TuSke 1.8.2-Pikachu-Patch-3
- WildSkript 1.8
- skDragon 0.14.0
- SkStuff 1.6.4.1
- skript-reflect 2.2.1
- Skellet 1.9.6b
- SharpSk 1.6.3
- skRayFall 1.9.23

Brak błędów w konsoli 

Brak błędów na serwerze


 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
7 minut temu, Sledziu napisał:

Skrypt nie przechodzi dalej przez tą linijkę:


if the name of player's current inventory contains "&6Magazyn &8(&7%player%&8)":

 

Spróbuj bez wszystkich dodatków do Skripta. WildSkript jest stary, niewspierany i często powoduje problemy.

Spróbuj również skopiować nazwę z otwierania GUI, aby upewnić się, że nie ma jakiejś literówki, bądź dziwnego znaku.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
4 minuty temu, Kormic napisał:

Spróbuj bez wszystkich dodatków do Skripta. WildSkript jest stary, niewspierany i często powoduje problemy.

Spróbuj również skopiować nazwę z otwierania GUI, aby upewnić się, że nie ma jakiejś literówki, bądź dziwnego znaku.

Właśnie próbowałem tak jak napisałeś ale wszystko zostaje bez zmian. Zauważyłem, że wszystko działa w eventach, które mogę wywoływać podczas gdy owe GUI jest otwarte. 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Sledziu napisał:

Właśnie próbowałem tak jak napisałeś ale wszystko zostaje bez zmian. Zauważyłem, że wszystko działa w eventach, które mogę wywoływać podczas gdy owe GUI jest otwarte. 

W takim razie przed sprawdzaniem nazwy GUI w 'on inventory close' wyślij ją na czacie.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Dodałem sobie taką zmienną {test.%player%}, która będzie ustawiana na true podczas otwierania GUI oraz przy zamykaniu jest sprawdzane czy jest ona na true (... kod ...) i potem daje ją na false, ale i tak nie chce działać. Tak jakby nie zapamiętywało tego ostatnio zamkniętego inventory.

10 minut temu, Kormic napisał:

W takim razie przed sprawdzaniem nazwy GUI w 'on inventory close' wyślij ją na czacie.

Wszystko się ładnie wyświetla ale dalej nie zapisuje

command /magazyn [<text>]:
	trigger:
		if {lv::%player%} >= 50:
			if arg 1 is set:
				if arg 1 is "1":
					if player has permission "magazyn.-":
						set {notest.%player%} to true
						broadcast "%{notest.%player%}%"
						open chest inventory with 6 rows named "&6Magazyn &8(&7%player%&8)" to player
						set {testowa} to name of player's current inventory
						wait 2 tick
						loop {backpack.%player%::*}:
							set slot loop-index parsed as integer of player's current inventory to loop-value
 
 
 
 
 
on inventory close:
	broadcast "%{testowa}%"
	if name of player's current inventory is "%{testowa}%":
		set {_i} to 0
		loop 54 times:
			set {backpack.%player%::%{_i}%} to player's current inventory's slot {_i}
			add 1 to {_i}

 

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

  • 0
1 minutę temu, Sledziu napisał:

Dodałem sobie taką zmienną {test.%player%}, która będzie ustawiana na true podczas otwierania GUI oraz przy zamykaniu jest sprawdzane czy jest ona na true (... kod ...) i potem daje ją na false, ale i tak nie chce działać. Tak jakby nie zapamiętywało tego ostatnio zamkniętego inventory.

11 minut temu, Kormic napisał:

W takim razie przed sprawdzaniem nazwy GUI w 'on inventory close' wyślij ją na czacie.

Wszystko się ładnie wyświetla ale dalej nie zapisuje

Nie ma żadnych błędów w konsoli? Nic?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

Nie ma żadnych błędów w konsoli? Nic?

Właśnie nic tam nie ma, składnia powinna być poprawna i ten fakt, że testowałem to na wiele sposobów. Jeśli znasz jakiś plugin albo skrypt (który nie wymaga SkQuery bo nie chce tego dodatku uzywac) to możesz podesłać. Zależy mi głównie na tym, żebym mógł otworzyć sobie kilka stron takiego magazynu i miał jakąś możliwość zaglądania do magazynów innych.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, Sledziu napisał:

Właśnie nic tam nie ma, składnia powinna być poprawna i ten fakt, że testowałem to na wiele sposobów. Jeśli znasz jakiś plugin albo skrypt (który nie wymaga SkQuery bo nie chce tego dodatku uzywac) to możesz podesłać. Zależy mi głównie na tym, żebym mógł otworzyć sobie kilka stron takiego magazynu i miał jakąś możliwość zaglądania do magazynów innych.

Możesz użyć tego.

Mimo wszystko najprościej byłoby zaktualizować wersję serwera, aby nie trzeba było się borykać z takimi problemami.

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