Skocz do zawartości
  • 0

Pomoc ze skryptem


nitolar

Pytanie

Witam ostatnio wystartowałem z pisaniem skryptu na teleportowanie gracza gdy przekroczy konkretne koordynaty y ma go przenieść na wyższe kordy y i po dotknięciu ziemi on nie umrze a zostanie mu pół serduszka lecz niestety stanąłem w martwym punkcie ponieważ nie wiem co robię nie tak i skrypt wywala mi cały czas błąd.

uHGdghF.png

Tak wygląda skrypt :

every 1 second in "world":
    loop all players:
        if y-coordinate of loop-player is between -1 and -4:
            set loop-player y-coordinate to 100

Oraz nie wiem jak to zrobić by gracz nie dostawał obrażeń po dotknięciu ziemi i potem zmieniło mu ilość zdrowia na pół serduszka.

Odnośnik do komentarza
Udostępnij na innych stronach

10 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Teraz, nitolar napisał:

Witam ostatnio wystartowałem z pisaniem skryptu na teleportowanie gracza gdy przekroczy konkretne koordynaty y ma go przenieść na wyższe kordy y i po dotknięciu ziemi on nie umrze a zostanie mu pół serduszka lecz niestety stanąłem w martwym punkcie ponieważ nie wiem co robię nie tak i skrypt wywala mi cały czas błąd.

W ostatniej linijce zapomniałeś dodać "'s" po 'loop-player'.

Teraz, nitolar napisał:

Oraz nie wiem jak to zrobić by gracz nie dostawał obrażeń po dotknięciu ziemi i potem zmieniło mu ilość zdrowia na pół serduszka.

Przed ustawianiem koordynatu Y gracza zapisz mu zmienną globalną, którą będziesz sprawdzał w evencie 'on damage'. Jeżeli 'damage cause' to 'fall', sprawdzasz czy zmienna jest ustawiona. Jeżeli tak, anulujesz event i czyścisz zmienną.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

W ostatniej linijce zapomniałeś dodać "'s" po 'loop-player'.

Przed ustawianiem koordynatu Y gracza zapisz mu zmienną globalną, którą będziesz sprawdzał w evencie 'on damage'. Jeżeli 'damage cause' to 'fall', sprawdzasz czy zmienna jest ustawiona. Jeżeli tak, anulujesz event i czyścisz zmienną.

dobra sprawdzę i dam znać czy działa :D

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Zrobiłem tak jak powiedziałeś

every 1 second in "world":
    loop all players:
        if y-coordinate of loop-player is between -1 and -4:
            set {nodamage} to 1
            set loop-player's y-coordinate to 100

on damage:
    if damage cause is fall:
        if {nodamage} is set:
            cancel event
            clear {nodamage}

Ale dalej wyskakuje błąd:

8lm0yUJ.png

@Kormic

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, nitolar napisał:

Ale dalej wyskakuje błąd:

No tak... w takim razie teleportuj gracza na 100 kratkę zamiast ustawiać jego koordynat Y.

teleport player to location at (player's x-loc, 100, player's z-loc) in player's world

Nie powinieneś ustawiać ogólnej zmiennej globalnej. Powinieneś ją przypisać danemu graczowi (np. {noDamage::%player%}).

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

  • 0
8 minut temu, Kormic napisał:

No tak... w takim razie teleportuj gracza na 100 kratkę zamiast ustawiać jego koordynat Y.


teleport player to location at (player's x-loc, 100, player's z-loc) in player's world

Nie powinieneś ustawiać ogólnej zmiennej globalnej. Powinieneś ją przypisać danemu graczowi (np. {noDamage::%player%}).

Zrobiłem tak:

every 1 second in "world":
    loop all players:
        if y-coordinate of loop-player is between -1 and -4:
            set {noDamage::%loop-player%} to 1
            teleport player to location at (player's x-loc, 100, player's z-loc) in player's world

on damage:
    if damage cause is fall:
        if {noDamage} is set:
            cancel event
            clear {noDamage}

Ale dalej wyskakuje błąd z teleportacją:

eQgQp4v.png

Może potrzebuje jakiegoś addona do skripta

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
15 minut temu, Kormic napisał:

Dlatego, że użyłeś playera w pętli 'loop all players'. Zastąp w tej linijce każdego playera z loop-playerem.

Zrobiłem tak jak powiedziałeś:

every 1 second in "world":
    loop player:
        if y-coordinate of loop-player is between -1 and -4:
            set {noDamage::%loop-player%} to 1
            teleport player to location at (player's x-loc, 100, player's z-loc) in player's world

Ale teraz błąd wyskakuje w drugiej linijce:

STKKDuR.png

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, Kormic napisał:

Nie zrobiłeś tak jak powiedziałem. Miałeś zamienić wszystkie 'player' na 'loop-player' w tej błędnej linijce z teleportacją.

Źle przeczytałem sr. Poprawiłem tak:

teleport loop-player to location at (loop-player's x-loc, 100, loop-player's z-loc) in loop-player's world

I wszystko działa i nie wyskakuje żaden błąd.

TEMAT DO ZAMKNIĘCIA

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