Skocz do zawartości
  • 0

Teleportacja i loopowanie


black26

Pytanie

Witam. Mam problem z.. Wykrywaniem bloku. W Zamiarze mam: Po zabiciu moba nazwanego itp. Zresp nowego moba po czym teleportuj go na randomowe koordy ustalone wcześniej. Wszystko pięknie działa po za .. no właśnie po zrespieniu moba wcina go w domki, ziemie,ściany.. Wadliwy kawałek wstawiam poniżej.


                
On death:
        loop 100 times:
            if {_923::%victim%} is not set:
                set {_923::%victim%} to 1
            if name of victim is "&7&o%{nazwa.%{_923::%victim%}%}%":
                clear drops
                wait 1 seconds

                loop blocks in radius 2 around {_loc::new}:
                    if loop-blocks are air:
                        if block under block under loop-block is not air:
                            spawn {mob} at location of victim
                            set name of last spawned entity to colored "%{nazwa.%{_923::%victim%}%}%"
                            set the last spawned entity's max health to {health.%{_923::%victim%}%}
                            heal last spawned entity
                            teleport last spawned entity to {_loc::new}
                            stop

Najzabawniejsze jest w tym to iż w 80% przypadków respi poprawnie tzn. Dopóty nie znajdzie  miejsca nie respi w ogóle.. Martwi mnie to ze jednak często odradza się w ziemi.

#ps

Wycięty jest fragment ustawianie koordów  {_loc::new} czy też ustawianie armora i inne z powodu zbędnego wydłużania tematu. (tym bardziej ze to działa poprawnie)

Odnośnik do komentarza
https://skript.pl/temat/18064-teleportacja-i-loopowanie/
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Zamień {_loc::new} na {{_x}, {_y}, {_z} i wówczas zapętl spawn zmniejszając y aż do otrzymania niepowietrznego bloku.

Ponadto już lepiej, żeby respił się konkretnie na tych koordynatach, bo takie zapętlanie bloków spowoduje teleportacje osobno na każdy z tych bloków i wrażenie przemieszczania się tego zombiaka w odstępach kilkutickowych
 

Odnośnik do komentarza
https://skript.pl/temat/18064-teleportacja-i-loopowanie/#findComment-123472
Udostępnij na innych stronach

  • 0
1 minutę temu, PoweredDragon napisał:

Zamień {_loc::new} na {{_x}, {_y}, {_z} i wówczas zapętl spawn zmniejszając y aż do otrzymania niepowietrznego bloku.

Ponadto już lepiej, żeby respił się konkretnie na tych koordynatach, bo takie zapętlanie bloków spowoduje teleportacje osobno na każdy z tych bloków i wrażenie przemieszczania się tego zombiaka w odstępach kilkutickowych
 

Ale nie zapętla do bloków ponieważ sprawdza loopowane blocki ale teleportuje wciąż na koordynat {loc} a nie na loop-block a w {loc} wcześniej ustala pojedyncze koordynaty, mimo to dzięki ; )

Ps. Zapętlić spawn w jaki sposób? Czy da się powrócić podczas wykonywanie eventu do akcji przypisanej powyżej? Czy wypisywać na elsach resp i tak w ciągle przedłużając skrypt dwukrotnie za każdym razem?

Odnośnik do komentarza
https://skript.pl/temat/18064-teleportacja-i-loopowanie/#findComment-123473
Udostępnij na innych stronach

  • 0

Zresp go raz na koordach {_x}, {_y}, {_z} (przy czym {_y} = 256 po czym zrób
 

loop 256 times:
  block under last spawned entity is air:
    set {_y} to {_y}-1
    teleport last spawned entity to {_x}, {_y}, {_z}

i automatycznie przeteleportuje go na pierwszy solidny blok :P

Odnośnik do komentarza
https://skript.pl/temat/18064-teleportacja-i-loopowanie/#findComment-123474
Udostępnij na innych stronach

  • 0

Spróbowałem zrobić coś na podobnej zasadzie do tego co mówiłeś.


                loop 50 times:
                    set {_block} to block on {_x::%victim%}, {_fad::%victim%}, {_z::%victim%}:
                        if {_block} is air:
                            set {_fad::%victim%} to {_fad::%victim%}-1
                        if {_block} is not air:
                            set {_fad::%victim%} to {_fad::%victim%}+2
                            set {_loc::new} to location at {_x::%victim%}, {_fad::%victim%}, {_z::%victim%}

tylko błąd mam w set {_block} to block on {_x::%victim%}, {_fad::%victim%}, {_z::%victim%}:

ps.

Moba nie można teleportowac w sposób :

block under last spawned entity is air

ponieważ on respi się w tym samym miejscu co umarł a później go teleportuje ;) gdybym tak owo zrobił teleportowało by go 256 razy :D

Odnośnik do komentarza
https://skript.pl/temat/18064-teleportacja-i-loopowanie/#findComment-123475
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ę...