Skocz do zawartości

Skrypt na home w GUI z permisjami


Rekomendowane odpowiedzi

Witam  :D

Napisałem skrypt na home w gui. Jako bazę skryptu wziąłem skrypt jednego z użytkowników tego forum, pozmieniałem praktycznie wszystko, dodałem wiele rzeczy i skrypt zrobił się dłuższy o jakieś 3 razy :D Jako że sam skorzystałem z dobrej duszy użytkowników tego forum, teraz chcę się odwdzięczyć, może komuś się ten skrypt przyda :D  Jednocześnie będę wdzięczny jeśli ktoś, kto się bardziej zna ode mnie oceni ten skrypt. Wydaje mi się że można tam wiele rzeczy zoptymalizować, także będę wdzięczny za info :D 
Link:

 

Odnośnik do komentarza
https://skript.pl/temat/56612-skrypt-na-home-w-gui-z-permisjami/
Udostępnij na innych stronach

Do poprawy tu jest sporo

1. Zmiennych z kropką się nie używa, chyba że zapisujesz pojedyncze wartości. Powinno być {sethome1::%player%}

{sethome1.%player%}

2. Taką zmienną to w ogóle widzę pierwszy raz, nie ma ona sensu. Powinno być {lokacjahome1::%player%}

{lokacjahome1.::.%player%}

3. Zamiast tworzyć zmienne z innymi nazwami mogłeś to zrobić w jednej, jak np poprzez {sethome::1 2 3 itd::%player%}

4. Permisje sprawdzasz po kilka razy, mogłeś zapisać to w funkcji przy uzyciu return i kod byłby krótszy

5. Nie używasz stop przy zakończeniu jednego z argumentów, aktualnie nawet jak gracz wpisze 1 to nadal skrypt bedzie sprawdzal czy arg 1 to nie jest przypadkiem 5, alternatywą dla tego jest też else if

6. Zamiast tworzyć zmienną sethome i ustawiać ją na true oraz lokacjahome i ustawiać ją na lokacje to czemu po prostu zmienną sethome nie ustawisz na lokacje i nie sprawdzisz czy zmienna jest zapelniona?

7. Tittle również można było wrzucić do funkcji, z okazji iż zawsze dodajesz pustą linijkę przed

8. Komenda home to jedna wielka betonowa sciana 5 razy powtarzasz kod (powinna być na to funkcja), nie używasz zmiennych czasowych

9. Powinno być of event-inventory zamiast player's current inventory, spami to warnem w konsoli

on inventory click:
    name of player's current inventory is "Twoje homy"
    clicked inventory is not player's inventory
    cancel event

10. Coś takiego nie powinno występować, powinieneś tu wywoływać funkcje zamiast executowac komende

make player execute command "home 1"

11. Gui pozwala na kopiowanie/wyciaganie itemów. Powinno się je tworzyć poprzez zapisanie wszystkiego do zmiennej i na koncu jej otworzenie

open chest with 3 rows named "Czy na pewno usunąć home 1?" to player

12. Jak coś to mamy 2023 a nie 2014, format slot jest calkowicie przestarzaly

format slot 10 of player with 1 of red stained glass pane named "&cAnuluj" to run "sudo %player% home"

13. Te wszystkie gui od dołu mogły być zapisane w jednej funkcji. W jaki sposób? To ostatnie mogę pokazać.

function delhome(p: player, i: integer):
    set {_} to chest inventory with 3 rows named "Czy na pewno usunąć home %{_i}%?"
    set slot 10 of {_} to 1 of red stained glass pane named "&cAnuluj" 
    set slot 11 of {_} to 1 of red stained glass pane named "&cAnuluj" 
    set slot 12 of {_} to 1 of red stained glass pane named "&cAnuluj"
    set slot 14 of {_} to 1 of lime stained glass pane named "&aPotwierdź" 
    set slot 15 of {_} to 1 of lime stained glass pane named "&aPotwierdź" 
    set slot 16 of {_} to 1 of lime stained glass pane named "&aPotwierdź" 
    open {_} to {_p}

A następnie wpisał byś jedynie delhome(player, 1), wtedy w inventory clicku trzeba dodać odczytywanie numeru z nazwy gui, kwestia 3-4 linijek

Edytowane przez Fendi
Odnośnik do komentarza
https://skript.pl/temat/56612-skrypt-na-home-w-gui-z-permisjami/#findComment-339032
Udostępnij na innych stronach

dzięki za info, ja sam jestem mega zielony w tym temacie. jak mówiłem jako bazę wziąłem skrypt jednego z użytkowników, zmienne zostawiłem tak jak były, ja to w ogóle tych kropek i dwukropków nie ogarniam. stąd też myślałem że no rzeczywiście jest tu dużo do zoptymalizowania itd. mózg to mi paruje od tego całego skripta 😁  dzięki bardzo za mega obszerną odpowiedź, tylko pytanie jeszcze, czy tak źle zrobiony skrypt będzie powodował w przyszłości jakieś problemy, nie wiem lagował serwer, albo jakieś bugi będą z nim związane? ogólnie to wszystko z nim ok i śmiga dobrze jak na razie, jeśli faktycznie będzie coś przez niego gorzej działało to usiądę i poświęcę kolejne parę godzin na naprawę :D

Odnośnik do komentarza
https://skript.pl/temat/56612-skrypt-na-home-w-gui-z-permisjami/#findComment-339033
Udostępnij na innych stronach

Cytat

ja to w ogóle tych kropek i dwukropków nie ogarniam

Są 3 rodzaje zmiennych

Zmienne gdzie przed nazwą znajduje się _ to zmienne czasowe jak np {_zmienna} działają one tylko w obrębie jednej komendy lub jednego eventu, po zakonczeniu usuwają sie

Zmienne zwykłe czyli tam gdzie jest kropka lub brak znaku. Używa się do zapisania pojedynczej globalnej wartosci jak np kordy spawna swiata

Zmienne grupowe czyli tam gdzie jest dwukropek używa się do zapisywania dużej ilości danych, lub danych dla gracza jak np {sethome::%player%}, dla każdego gracza wartość może być inna i jest wiele razy zapisywana.

Cytat

tylko pytanie jeszcze, czy tak źle zrobiony skrypt będzie powodował w przyszłości jakieś problemy, nie wiem lagował serwer, albo jakieś bugi będą z nim związane?

Na serwerze klasowym dla max 10 osób? Nie

Jeżeli jednak ty lub ktokolwiek inny chciałby go używać na prawdziwym serwerze to inna bajka. 

To nie jest też tak, że jeden źle napisany skrypt zabija ci serwer, gdy już na takim serwerze znajdzie się ich kilka wtedy jest prawdziwy problem, dlatego najlepiej pisać je dobrze aby nie bylo z tym problemu.

Odnośnik do komentarza
https://skript.pl/temat/56612-skrypt-na-home-w-gui-z-permisjami/#findComment-339039
Udostępnij na innych stronach

1 godzinę temu, Fendi napisał:

Są 3 rodzaje zmiennych

Zmienne gdzie przed nazwą znajduje się _ to zmienne czasowe jak np {_zmienna} działają one tylko w obrębie jednej komendy lub jednego eventu, po zakonczeniu usuwają sie

Zmienne zwykłe czyli tam gdzie jest kropka lub brak znaku. Używa się do zapisania pojedynczej globalnej wartosci jak np kordy spawna swiata

Zmienne grupowe czyli tam gdzie jest dwukropek używa się do zapisywania dużej ilości danych, lub danych dla gracza jak np {sethome::%player%}, dla każdego gracza wartość może być inna i jest wiele razy zapisywana.

Na serwerze klasowym dla max 10 osób? Nie

Jeżeli jednak ty lub ktokolwiek inny chciałby go używać na prawdziwym serwerze to inna bajka. 

To nie jest też tak, że jeden źle napisany skrypt zabija ci serwer, gdy już na takim serwerze znajdzie się ich kilka wtedy jest prawdziwy problem, dlatego najlepiej pisać je dobrze aby nie bylo z tym problemu.

Dobra dzięki za info 😁

1 godzinę temu, FixeQ napisał:

To da sie skrócić funkcjami zrobie remake tego jutro

Jeśli masz czas i chęci, to byłbym mega wdzięczny

Odnośnik do komentarza
https://skript.pl/temat/56612-skrypt-na-home-w-gui-z-permisjami/#findComment-339041
Udostępnij na innych stronach

16 godzin temu, melon16 napisał:

Hej, wstawiłem dziś swój skrypt na /home, możesz zobaczyć jak używać funkcji itp. i poprawić swój kod, pozdrawiam :D
 

 

Przecież w tym skrypcie nie ma funkcji. A za ich pomocą też dało by radę skrócić wielokrotnie kod, robiąc funkcję np na teleportację.
Co do Tematu, Fendi wszystko ładnie rozpisał. 

Odnośnik do komentarza
https://skript.pl/temat/56612-skrypt-na-home-w-gui-z-permisjami/#findComment-339113
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

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

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