Skocz do zawartości
  • 0

Skrypt na odnalezienie itemów w regionach


Pytanie

Witam, potrzebuję pomocy z tym skryptem. Jak wpiszę arg, który jest w skrzynce lub nie ma to otrzymuję wiadomść "[Skript] The script 'chests.sk' infinitely (or excessively) repeated itself!"

command find <item>:
	trigger:
		loop all blocks in region "eska" and "dom":
			if loop-block is chest or hopper or trapped chest:
				loop all items in the inventory of loop-block:
					if loop-block's inventory contain arg-1:
						if loop-block is in region "eska":
							broadcast "it is with amount %amount of items in loop-block's inventory%"
							exit this loop
						if loop-block is in region "dom":
							broadcast "here too"
							stop
					else:
						broadcast "%items in inventory of loop-block%"

Żadnych błędów, zbyt skomplikowane do wyjaśnienia według mnie. Wersja Skript 2.5, Minecraft 1.16.3

Odnośnik do komentarza
https://skript.pl/temat/41880-skrypt-na-odnalezienie-item%C3%B3w-w-regionach/
Udostępnij na innych stronach

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
6 godzin temu, Misio12320 napisał:

Witam, potrzebuję pomocy z tym skryptem. Jak wpiszę arg, który jest w skrzynce lub nie ma to otrzymuję wiadomść "[Skript] The script 'chests.sk' infinitely (or excessively) repeated itself!"


command find <item>:
	trigger:
		loop all blocks in region "eska" and "dom":
			if loop-block is chest or hopper or trapped chest:
				loop all items in the inventory of loop-block:
					if loop-block's inventory contain arg-1:
						if loop-block is in region "eska":
							broadcast "it is with amount %amount of items in loop-block's inventory%"
							exit this loop
						if loop-block is in region "dom":
							broadcast "here too"
							stop
					else:
						broadcast "%items in inventory of loop-block%"

Żadnych błędów, zbyt skomplikowane do wyjaśnienia według mnie. Wersja Skript 2.5, Minecraft 1.16.3

Zauważ, że niepotrzebnie zapętlasz itemy w danej skrzynce lub lejku. Wyrzuć tę pętlę, znacznie odciążysz skrypt. Pamiętaj również, aby regiony "eska" i "dom" nie były zbyt wielkie.

Odnośnik do komentarza
https://skript.pl/temat/41880-skrypt-na-odnalezienie-item%C3%B3w-w-regionach/#findComment-262532
Udostępnij na innych stronach

  • 0
14 godzin temu, Kormic napisał:

Zauważ, że niepotrzebnie zapętlasz itemy w danej skrzynce lub lejku. Wyrzuć tę pętlę, znacznie odciążysz skrypt. Pamiętaj również, aby regiony "eska" i "dom" nie były zbyt wielkie.

Dziękuję za pomoc. Poprawiłem kod. Wygląda teraz tak:

command find <item>:
	trigger:
		loop all blocks in region "eska" and "dom":
			if loop-block is chest or hopper or trapped chest:
				if loop-block is in region "dom":
					if loop-block's inventory contains arg:
						broadcast "here %amount of items in loop-block's inventory%"
				if loop-block is in region "eska":
					if loop-block's inventory contain arg:
						broadcast "it is with amount %amount of items in loop-block's inventory%"

Wysyła blędne odpowiedzi, ponieważ nie wlicza więcej niż 1 item tzn. jeżeli w skrzyni są 2 te same przedmioty i 1 z nich ma więcej niż 1 to skrypt liczy to jako 2, a nie 3. 

Odnośnik do komentarza
https://skript.pl/temat/41880-skrypt-na-odnalezienie-item%C3%B3w-w-regionach/#findComment-262602
Udostępnij na innych stronach

  • 0
19 godzin temu, Misio12320 napisał:

Dziękuję za pomoc. Poprawiłem kod. Wygląda teraz tak:


command find <item>:
	trigger:
		loop all blocks in region "eska" and "dom":
			if loop-block is chest or hopper or trapped chest:
				if loop-block is in region "dom":
					if loop-block's inventory contains arg:
						broadcast "here %amount of items in loop-block's inventory%"
				if loop-block is in region "eska":
					if loop-block's inventory contain arg:
						broadcast "it is with amount %amount of items in loop-block's inventory%"

Wysyła blędne odpowiedzi, ponieważ nie wlicza więcej niż 1 item tzn. jeżeli w skrzyni są 2 te same przedmioty i 1 z nich ma więcej niż 1 to skrypt liczy to jako 2, a nie 3. 

Dobra, pobawiłem się z tym chwilę i przychodzę z działającym skryptem. Należało użyć wyrażenia 'item amount of items in loop-block's inventory' i zsumować to za pomocą funkcji sum(), gdyż te wyrażenie zwraca liczbę.

Oto skrypt:

command find <item>:
	trigger:
		loop all blocks in region "eska" and "dom":
			if loop-block is chest or hopper or trapped chest:
				if loop-block is in region "dom":
					if loop-block's inventory contains arg-1:
						broadcast "here %sum(item amount of items in loop-block's inventory)%"
				else if loop-block is in region "eska":
					if loop-block's inventory contain arg-1:
						broadcast "it is with amount %sum(item amount of items in loop-block's inventory)%"

 

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/41880-skrypt-na-odnalezienie-item%C3%B3w-w-regionach/#findComment-262615
Udostępnij na innych stronach

  • 0

Dzięki! Postaram się jakoś oddwdzięczyć. (...)

 

7 godzin temu, Kormic napisał:

zsumować to za pomocą funkcji sum(), gdyż te wyrażenie zwraca listę.

no własnie.. skomplikowane jakieś, ja bym nigdy nie dał rady tego ogarnąć. Ciekawe czy w skript docs takie coś jest. Przeglądałem i tego nie znalazłem pf.

 

EDIT. @Kormic niestety nie działa dalej, wykrywa wszystko dobrze oblicza, ale w skrzyni obok już nie wykrywa. W sensie są 2 skrzynie oddzielone w 1 regionie i 1 z nich ma swój wyższy priorytet, a druga nie istnieje tak dziwnie. 

Edytowane przez Misio12320
Odnośnik do komentarza
https://skript.pl/temat/41880-skrypt-na-odnalezienie-item%C3%B3w-w-regionach/#findComment-262668
Udostępnij na innych stronach

  • 0
11 godzin temu, Misio12320 napisał:

Dzięki! Postaram się jakoś oddwdzięczyć. (...)

 

no własnie.. skomplikowane jakieś, ja bym nigdy nie dał rady tego ogarnąć. Ciekawe czy w skript docs takie coś jest. Przeglądałem i tego nie znalazłem pf.

 

EDIT. @Kormic niestety nie działa dalej, wykrywa wszystko dobrze oblicza, ale w skrzyni obok już nie wykrywa. W sensie są 2 skrzynie oddzielone w 1 regionie i 1 z nich ma swój wyższy priorytet, a druga nie istnieje tak dziwnie. 

W takim wypadku musisz próbować różnych rzeczy. Spróbuj loopować bloki tylko w regionie z wyższym priorytetem, daj im równy priorytet, próbuj wszystkiego co ci tylko przyjdzie do głowy.

Odnośnik do komentarza
https://skript.pl/temat/41880-skrypt-na-odnalezienie-item%C3%B3w-w-regionach/#findComment-262685
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ę...