Jaczup 22 Opublikowano 29 grudnia 2019 Udostępnij Opublikowano 29 grudnia 2019 (edytowane) Hej, tutaj KQPL to jest już mój trzeci skrypt Nad napisaniem tego skryptem siedziałem ponad godzinę. Testowane na wersji: 1.8.8. Proszę nie hejtujcie nie za bardzo... Wymagane Pluginy: - Skript, - SkQuery, - WildSkript, - SkRayFall. Dodatkowe pluginy, które są używane przez ten skrypt:- NanoCraftingBlocker Plugin na Blokade Craftingow,- FunnyGuilds lub NovaGuilds Plugin na Gildie,- EssentialsX Plugin na zestawy oraz moderacje. Linki do wymaganych pluginów: Skript: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! SkQuery: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! WildSkript: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! SkRayFall: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Linki do dodatkowych pluginów: NanoCraftingBlocker: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! FunnyGuilds: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! NovaGuilds: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! EssentialsX:Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Pobieranie: Wersja 1.0: Edytowane 29 grudnia 2019 przez KQPL Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PanMaruda 617 Opublikowano 29 grudnia 2019 Udostępnij Opublikowano 29 grudnia 2019 (edytowane) Szczerze to nie chce mi się czytać prezentacji ani sprawdzać co ten kod dokładnie robi. Odniosę się tylko do tego co mnie w nim razi i powinno być poprawione: Nie potrzeba (ba! nawet nie można dawać) opóźnienia przy tworzeniu GUI, to tylko pozostałość po dawno nieużywanym format slocie ze SkQuery. Aktualnie jedyne co osiągasz to wolniejsze ładowanie GUI: wait 2 ticks open chest with 6 rows named "&cZarządzanie serwerem 1/2" to player wait 2 ticks Robisz podwójne warunki w miejscu gdzie możesz po prostu użyć else (o którego istnieniu widzę że nie nawet nie wiesz). Dajemy go pod dowolnym warunkiem i jeżeli ten warunek nie jest spełniony to wykona się kod z else, przykładowo: #jeżeli nick gracza to maruda, powita gracza, a jeżeli nie to wykona się kod po else i wyświetli wiadomość że nie jesteś maruda. if name of player is "Maruda": send "Cześć Maruda" else: send "Nie jesteś Marudą" Więc odnosząc się do twojej pracy - tworzenie GUI jest zrobione niepoprawnie. Else powoduje że zmienna nie jest sprawdzana dwa razy, ale jedynie raz. Oszczędzasz sobie procesor, mniejsze lagi itd. Czyli wstawianie itemków nie powinno wyglądać w ten sposób: if {plugins} is true: set player's current inventory's slot 31 to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &aWŁĄCZONE" #(jakieś kilkanaście linijek kodu) if {plugins} is false: set player's current inventory's slot 31 to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &cWYŁĄCZONE" Tylko tak: if {plugins} is true: set player's current inventory's slot 31 to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &aWŁĄCZONE" else: set player's current inventory's slot 31 to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &cWYŁĄCZONE" Nie powielaj eventów, zapisuj wszystko w jednym i wtedy sprawdzaj różnice (itemy, sloty, itd.) on place beacon: if {beacon} is false: cancel event on place tnt: if {tnt} is false: cancel event on place bedrock: if {bedrock} is false: cancel event Ten kod powinien wyglądać tak: on place: if event-block is beacon: if {beacon} is false: cancel event if even-block is tnt: if {tnt} is false: cancel event if event-block is bedrock: if {bedrock} is false: cancel event A nawet tak, o ile użyjemy listy: on place: if event-block is beacon or tnt or bedrock: if {%event-block%} is false: cancel event Jeżeli chcesz żeby każdy item w inventory był zablokowany to nie musisz wpisywać wszędzie cancel event, wystarczy to zrobić raz: if inventory name of current inventory of player is "&cZarządzanie serwerem 1/2": if clicked slot is 8 or 0 or 45 or 53: cancel event if clicked slot is 53: cancel event close player's inventory execute player command "commands" #(i tak dalej) if inventory name of current inventory of player is "&cZarządzanie serwerem 1/2": cancel event if clicked slot is 53: close player's inventory execute player command "commands" #(i tak dalej tylko już bez przerywania eventu) Jeżeli chcesz trochę bardziej zabezpieczyć GUI przed bugowaniem to polecam najpierw stworzyć wszystkie itemki i ekwipunek w zmiennej a dopiero potem otwierać ją graczowi, np. w ten sposób: #ustawiasz zmienną jako skrzynke set {_jakiesGUI} to chest with 6 rows named "test" #formatujesz sloty w zmiennej set slot 31 of {_jakiesGUI} to ("MHF_Question" parsed as offline player)'s skull named "&c&lPluginy" with lore "&7Aktualny status: &aWŁĄCZONE" set slot 0 of {_jakiesGUI} to 13 of diamond #i tak dalej #i na sam koniec tylko otwierasz tą zmienną graczowi: open {_jakiesGUI} to player Edytowane 29 grudnia 2019 przez PanMaruda TakiJakTy, Rejszpat i maxcom1 3 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bludis 418 Opublikowano 28 lutego 2020 Udostępnij Opublikowano 28 lutego 2020 Ten temat został przeniesiony. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
GempXPlay 4 Opublikowano 27 kwietnia 2020 Udostępnij Opublikowano 27 kwietnia 2020 Od teraz funkcje WildSkripta zastępuje plugin WolfSk, znajdziesz go tu Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! działa na 1.10-1.15.2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaczup 22 Opublikowano 29 kwietnia 2020 Autor Udostępnij Opublikowano 29 kwietnia 2020 W dniu 27.04.2020 o 21:50, GempXPlay napisał: Od teraz funkcje WildSkripta zastępuje plugin WolfSk, znajdziesz go tu Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! działa na 1.10-1.15.2 Dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi