Skocz do zawartości
  • 0

Teleport do najbliższego bloku


Usunięty#25541

Pytanie

Chodzi o to, że napisałem komendę /back, ale jak jesteś w endzie i spadłeś do voida, to tepnie ciebie do voida i właśnie chciałem, żeby gracza tepało do najbliższego lądu, który skrypt znalazł.

Czy da się coś takiego zrobić, jeśli tak to jak?

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

12 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Teraz, Xa4inz napisał:

Chodzi o to, że napisałem komendę /back, ale jak jesteś w endzie i spadłeś do voida, to tepnie ciebie do voida i właśnie chciałem, żeby gracza tepało do najbliższego lądu, który skrypt znalazł.

Poza zapętlaniem bloków w promieniu x bloków od gracza nie ma innej możliwości. Chyba nie muszę mówić jaki wpływ na serwer będzie miała pętla:

loop blocks in radius 100 around player:

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

Poza zapętlaniem bloków w promieniu x bloków od gracza nie ma innej możliwości. Chyba nie muszę mówić jaki wpływ na serwer będzie miała pętla:


loop blocks in radius 100 around player:

 

A jak tepnąć gracza do najbliższego bloku?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, LeviBoyPL napisał:

if loop-block is not air:
	teleport player 2 blocks above loop-block
	stop

 

Error na konsoli:

Can't understand this condition/effect: teleport player 2 blocks above loop-block (commands.sk, line 72: teleport player 2 blocks above loop-block')

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, LeviBoyPL napisał:

if loop-block is not air:
	teleport player 2 blocks above loop-block
	stop

 

Z tego, co zrozumiałem, autor ma na myśli teleportację do najbliższego bloku gdy przykładowo skoczysz w przepaść. Twój skrypt w tym przypadku nie zadziała.

Teraz, Xa4inz napisał:

Error na konsoli:

Can't understand this condition/effect: teleport player 2 blocks above loop-block (commands.sk, line 72: teleport player 2 blocks above loop-block')

Ten kod masz wstawić do pętli.

Jeżeli nadal nie działa, zapewne masz starą wersję Skripta.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, Kormic napisał:

Z tego, co zrozumiałem, autor ma na myśli teleportację do najbliższego bloku gdy przykładowo skoczysz w przepaść. Twój skrypt w tym przypadku nie zadziała.

Ten kod masz wstawić do pętli.

Jeżeli nadal nie działa, zapewne masz starą wersję Skripta.

command /back <text>:
	executable by: players
	trigger:
		if arg-1 is "death":
			if {deathlocation.%uuid of player%} exist:
				loop blocks in radius 100 around {deathlocation.%uuid of player%}:
					if loop-block is not air:
						teleport player 2 blocks above loop-block
						send "<grey>Zostałeś przeteleportowany do miejsca swojej śmierci." to player
			else:
				send "<grey>Jeszcze nie umarłeś."

To jest mój kod nie wiem co mam w nim źle, mam 2.5.1 wersję skripta.

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

  • 0
Godzinę temu, Xa4inz napisał:


command /back <text>:
	executable by: players
	trigger:
		if arg-1 is "death":
			if {deathlocation.%uuid of player%} exist:
				loop blocks in radius 100 around {deathlocation.%uuid of player%}:
					if loop-block is not air:
						teleport player 2 blocks above loop-block
						send "<grey>Zostałeś przeteleportowany do miejsca swojej śmierci." to player
			else:
				send "<grey>Jeszcze nie umarłeś."

To jest mój kod nie wiem co mam w nim źle, mam 2.5.1 wersję skripta.

1. Ten skrypt przy wykonaniu zlaguje serwer co najmniej na kilkanaście sekund.

2. Co ten skrypt ma robić? Teleportować gracza do miejsca śmierci?

W takim wypadku istnieje nieco lepsze rozwiązanie. Musiałbyś u gracza co przykładowo 10 sekund sprawdzać czy jest na ziemi, jeżeli tak to zapisujesz jego lokalizację do zmiennej i przy śmierci teleportujesz go do niej.

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

  • 0
3 godziny temu, PanMaruda napisał:

any move:
 block below player is passable:
  set {back::%player%} to location of player

command back:
 trigger:
  teleport player to {back::%player%}

 

Mam zastrzeżenie do linijki nr 2. Nie powinno być przypadkiem 'is not passable'? Mam na myśli, że 'passable' oznacza przenikalny, czyli ten skrypt będzie zapisywał lokalizację jedynie w przypadku, gdy pod graczem nie będzie stałego gruntu. Albo zamieniłbym to na odwrotność, albo na warunek 'if block below player is solid'.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

Ale autor oznaczył jako najlepszą odpowiedź, więc odradzanie się w powietrzu (czy też w voidzie) chyba mu pasuje... :kappalul:

niedługo pewnie przetestuje, zobaczy że nie działa i wpadnie tutaj z problemem, więc będziesz miał okazję wysłania mu poprawnego kodu, bo raczej wątpię że przeczyta uważnie nasze wiadomości i sam poprawi sobie kod dopisując to jedno słowo w jednej linijce 🤷‍♀️

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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