Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Skryt do poprawienia


Rekomendowane odpowiedzi

Opublikowano

http://pastebin.com/mmZgjbKx

Co jest źle w tym skrypcie ?

Ma powstać:

+ Skórzany hełm

+ O nazwie &2Szmaragdowy helm

+ Koloru zielonego

+ Z enchantami: ochrona 10, niezniszczalność 10, oddychanie pod wodą 10

+ Z efektami: widzenie w ciemności

+ Przywołanie komendą /eset helm i craftingiem

+ Po zdjęciu hełmu, efekt ma zniknąć.

Wypiszcie mi wszystkie popełnione błędy oraz wyślijcie poprawioną wersję.

IP: mcity.com.pl | 1.16.3

https://mcity.com.pl > Strona serwera MCity

logo.png

Opublikowano

Zakładając temat to ty powinieneś podać błędy, które wyświetliły Ci się podczas załadowania skryptu, ale na pierwsze oko widzę, że dodawanie craftingu jest źle zrobione, znaczy nazwy są nieprawidłowe.

 

register new shaped recipe for leather helmet named "&2Szmaragdowy helm" using emerald_block, emerald_block, emerald_block, emerald_block, nether_star, emerald_block, ender_eye, water_bucket, ender_eye

Tu błąd.

Zamiast "emerald_block" powinno być "emerald block", tak samo z "nether_stat" - "nether star", "water_bucker" - "water bucket" i "ender_eye" - "ender eye".

 

Na dodatek, to:

 

every 1 second:
        loop all players:
                if helmet of loop-player is leather helmet named "&2Szmaragdowy helm":
                        apply night vision to the loop-player for 20 seconds
                else:
                       remove night vision from loop-player

Jest częścią kodu, która laguje, ponieważ co sekunde nadaje wszystkim ten efekt.

Wystarczy zrobić co 20 sekund, jeżeli efekt się już kończy.

 

 

Co do tej komendy:

 

command /eset helm:
        trigger:
                player has permissions "eset.helm":
                        give player a leather helmet of unbreaking 10 and Respiration 10 and protection 10 named "&2Szmaragdowy helm"
                else:
                        send "&cNie masz permisji!"
Opublikowano

Dzięki. Poprawiłbyś za mnie ten błąd z nadawaniem efektu ? Nie rozumiem dokońca jak to ma być zrobione. Crafting sam poprawię.

---------------

every 1 second:

loop all

players:

if helmet of

loop-player is

leather helmet

named "&2

Szmaragdowy helm

":

apply

night vision to

the loop-player

for 20 seconds

else:

remove

night vision

from loop-player

---------------

Rozumiem, że w tym elemencie mam "every 1 second:", zmienić na every 20 second" ?

IP: mcity.com.pl | 1.16.3

https://mcity.com.pl > Strona serwera MCity

logo.png

Opublikowano

loop all

players:

if helmet of

loop-player is

leather helmet

named "&2

Szmaragdowy helm

":

apply

night vision to

the loop-player

for 999999 seconds

else:

remove

night vision

from loop-player

--------------

Czyli może być w ten sposób ? Ustawiłem te 999999 sekund i usunąłem to "every 1 seconds" na początku.

IP: mcity.com.pl | 1.16.3

https://mcity.com.pl > Strona serwera MCity

logo.png

Opublikowano

Ogólnie to nie ma wydarzenia na zdjęcie/założenie zbroi, do tego tylko plugin. Lecz możesz to zrobić sprawdzając przy wielu interakcjach, typu zalogowanie sie, wylogowanie się, czy gram ma na sobie taki hełm. Jeżeli ma - nadaje efekt, jeżeli nie ma - zabiera efekt.

Opublikowano

Znalazłem coś takiego: "wait 2 seconds". Może to by można było wykorzystać, zamiast: "every 1 second" ?

Dało by to efekt widzenia w ciemności tylko raz po dwóch sekundach od założenia hełmu. (chyba).

Znalazłem coś takiego: "wait 2 seconds". Może to by można było wykorzystać, zamiast: "every 1 second" ?

Dało by to efekt widzenia w ciemności tylko raz po dwóch sekundach od założenia hełmu. (chyba).

IP: mcity.com.pl | 1.16.3

https://mcity.com.pl > Strona serwera MCity

logo.png

Opublikowano

@adamdino123 "wait x seconds" nie jest wydarzeniem, dlatego nie możesz tego zastąpić.

Przykładowe użycie wait x seconds:

 

on command "/spawn":
    wait 2 seconds
    send "Teleportowano na spawn."
    stop

Po dwóch sekundach do gracza przyjdzie wiadomość.

 

Niestety nie można tego użyć jako wydarzenie.

Opublikowano

"wait 2 seconds" to tylko takie opóźnienie. Czyli skrypt się zatrzymuje w danym miejscu na dwie sekundy. Jeśli chcesz pozbyć się tych lagów to spróbuj zamiast "every 1 second" dać jakieś wydarzenie od zmiany ekwipunku i wtedy sprawdzasz czy ten ktoś ma hełm na sobie.

 

PS: Naucz się javy. Skript to największy generator lagów na świacie, a java nie jest taka straszna i ma o wieeeeeele większe możliwości więc po co się ograniczać  :P. Ciesz się że Karoliny już nie ma na tym forum bo by zaraz napisała litanię na milion stron xD

Opublikowano
Wydarzenie:
   kod

U ciebie wydarzenie to "every 1 second". Wykonuje ono kod co sekundę. Znajdź zamiast niego jakieś, które wykona kod po zmianie ekwipunku (o ile takie istnieje (w javie na pewno istnieje) xD). 

Opublikowano

Kucanie?!?! 

Są 4 wyjścia:

-pogódź się z lagami

-naucz się javy

-znajdź nazwę wydarzenia (eventu) od zmiany eq

-daj tam "every 20 seconds" i pogódź się z tym że ktoś będzie musiał poczekać 20 sekund na dostanie efektów :D

Opublikowano

To chyba dam to 20 sekund.

Ps. Da się zrobić, aby po założeniu hełmu wyświetliła się wiadomość: "Poczekaj 20 sekund na aktywacje efektu" ? Ale tylko raz, a nie co 20 sekund :D

IP: mcity.com.pl | 1.16.3

https://mcity.com.pl > Strona serwera MCity

logo.png

Opublikowano

@adamdino123 Nie da się, niestety nie ma wydarzenia na zakładanie/zdejmowanie eq. Możesz wyświetlić wiadomość, gdy gracz kliknie prawym przyciskiem myszy mając w eq ten hełm nazwany jakoś i jeżeli nie ma założonego hełmu. Wtedy owszem się wyświetli. Lecz jeżeli założy to poprzez otworzenie ekwipunku i nałożenie na slot, to nie zadziała.

Opublikowano

Ok. To uświadomie graczy o czekaniu 20 sekund. Co 20 sekund ustawię wiadomosc: "Po zalozeniu helmu nalezy poczekac 20 sekund na aktywacje efektu".

Ok. To uświadomie graczy o czekaniu 20 sekund. Co 20 sekund ustawię wiadomosc: "Po zalozeniu helmu nalezy poczekac 20 sekund na aktywacje efektu".

command /eset helm:

trigger:

player has permissions "eset.helm":

give player a leather helmet of unbreaking 10 and Respiration 10 and protection 10 named "&2Szmaragdowy helm"

else:

send "&cNie masz permisji!"

 

every 20 second:

loop all players:

if helmet of loop-player is leather helmet named "&2Szmaragdowy helm":

apply night vision to the loop-player for 999999 seconds

send "&dEfekt widzenia w ciemnosci aktywowany jest po 20 sekundach"

else:

remove night vision from loop-player

on script load:

register new shaped recipe for leather helmet named "&2Szmaragdowy helm" using emerald block, emerald block, emerald block, emerald block, nether star, emerald block, ender eye, water bucket, ender eye

----------------------

Jest coś takiego. Dodałem linijkę "send" (Pod "apply")

IP: mcity.com.pl | 1.16.3

https://mcity.com.pl > Strona serwera MCity

logo.png

Opublikowano

Rzeczywiście...

A gdybym na końcu skryptu dopisał:

----------------------

on craft:

on player craft of leather helmet named "&2Szmaragdowy helm"

send "&dGratulacje ! Zrobiłeś &2Szmaragdowy helm ! &dEfekt zostanie nadany 20 sekund po zalozeniu helmu."

IP: mcity.com.pl | 1.16.3

https://mcity.com.pl > Strona serwera MCity

logo.png

Opublikowano

@adamdino123 Po scraftowaniu przedmiotu oczywiście możesz wysłać taką wiadomość, lecz to co napisałeś jest niepoprawne.

 

on craft:
    if event-item is leather helmet:
        if name of event-item is "&2Szmaragdowy helm":
             send "&dGratulacje ! Zrobiłeś &2Szmaragdowy helm ! &dEfekt zostanie nadany 20 sekund po zalozeniu helmu."

Lecz nie do końca wiem, czy tutaj nazwa zadziała...

Co do samego efektu:

 

 

on any move:
    if player's helmet is leather helmet:
        if name of player's helmet is "&2Szmaragdowy helm":
            if player don't have night vision:
                apply night vision to player for 20 seconds

Może nie działać, ale wymaga WildSkript.

Opublikowano

Dziękuję wam bardzo za pomoc :)

Czyli to "any move..." dać zamiast every 20 second i to da ten efekt odrazu po założeniu hełmu ? Jeśli tak, to "on craft..." nie będzie potrzebne :) Wildscript oczywiście zainstaluje :)

IP: mcity.com.pl | 1.16.3

https://mcity.com.pl > Strona serwera MCity

logo.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...