Skocz do zawartości
  • 0

Nie działający niby sandfarmer


PaDagiusz
 Udostępnij

Pytanie

Próbuję stworzyć skrypt dzięki któremu po położeniu bloku całe powietrze co się pod nim znajduje zmieniło się w piasek. Nie chcę by to tworzyło piasek po sam bedrock tak jak jest to standardowo.

Po załadowaniu skryptu nie ma błędu, ale sam skrypt nie działa.

on script load:
        register new shaped recipe for sand named "&a&lSandFarmer" using sand, sand, sand, sand, dirt, sand, sand, sand, sand
on place of sand:
    if player's tool is sand named "&a&lSandFarmer":
        loop blocks under event-block:
            if loop-block is not air:
                stop
            set loop-block to sand

 

Odnośnik do komentarza
Udostępnij na innych stronach

13 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Teraz, PaDagiusz napisał:

Próbuję stworzyć skrypt dzięki któremu po położeniu bloku całe powietrze co się pod nim znajduje zmieniło się w piasek. Nie chcę by to tworzyło piasek po sam bedrock tak jak jest to standardowo.

Po załadowaniu skryptu nie ma błędu, ale sam skrypt nie działa.

Dlatego, że event-block wchodzi w skład wszystkich bloków pod event-block. Wiem, dziwnie to brzmi, ale musisz sprawdzać czy 'y-loc of loop-block' nie jest równy 'y-loc of event-block'.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

Dlatego, że event-block wchodzi w skład wszystkich bloków pod event-block. Wiem, dziwnie to brzmi, ale musisz sprawdzać czy 'y-loc of loop-block' nie jest równy 'y-loc of event-block'.

Gdy zmieniam "not air" na "dirt" to działa i stawia piasek do momentu aż napotka na swojej drodze klocek dirta. Więc chyba 'y-loc' jest okej.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, PaDagiusz napisał:

Gdy zmieniam "not air" na "dirt" to działa i stawia piasek do momentu aż napotka na swojej drodze klocek dirta. Więc chyba 'y-loc' jest okej.

Ale zaraz, zaraz. Twój obecny kod działa w ten sposób, że pętla działa tak długo aż nie napotka innego bloku niż powietrze. W skrócie, twój "sand farmer" zamienia jedynie powietrze na piasek.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

próbowałeś:

Cytat

 

jeśli loop-block to powietrze:

   ustaw loop-block na piasek

jeśli nie:

    stop

 

Przy założeniu że chcesz żeby powietrze się zamieniało do czasu napotkania jakiegoś bloku (tak wywnioskowałem po 2 zdaniu)

12 minut temu, PaDagiusz napisał:

całe powietrze co się pod nim znajduje zmieniło się w piasek. Nie chcę by to tworzyło piasek po sam bedrock

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Kormic napisał:

Ale zaraz, zaraz. Twój obecny kod działa w ten sposób, że pętla działa tak długo aż nie napotka innego bloku niż powietrze. W skrócie, twój "sand farmer" zamienia jedynie powietrze na piasek.

Tak. W taki sposób ma działać. Gram sobie na prywatnym serwerze gdzie przydałby się taki "sand farmer" aby oczyścić fragment oceanu z wody lub zapełnić pisakiem dziurę. Nie chcę tworzyć pisaku do samego bedrocka. W teorii skrypt powienien zmieniać powietrzę w piasek ale tego nie robi. Nie jestem w stanie stwierdzić czemu. Dodatkowo skript spami mi czymś w konsoli serwera.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1
Teraz, PaDagiusz napisał:

Tak. W taki sposób ma działać. Gram sobie na prywatnym serwerze gdzie przydałby się taki "sand farmer" aby oczyścić fragment oceanu z wody lub zapełnić pisakiem dziurę. Nie chcę tworzyć pisaku do samego bedrocka. W teorii skrypt powienien zmieniać powietrzę w piasek ale tego nie robi. Nie jestem w stanie stwierdzić czemu. Dodatkowo skript spami mi czymś w konsoli serwera.

W takim razie pokaż czym tak spami w konsoli.

Co do twojego kodu, musisz użyć takiego warunku na początku pętli, aby pozbyć się problemu.

y-loc of event-block is not y-loc of loop-block

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Usunąłem te startowe skrypty które są wyłączone i spamu już nie ma.

3 minuty temu, Kormic napisał:

Co do twojego kodu, musisz użyć takiego warunku na początku pętli, aby pozbyć się problemu.

y-loc of event-block is not y-loc of loop-block

W którym dokładnie miejscu mam to wkleić?

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

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

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