Skrypt nie jest najgorszy ale jest kilka rzeczy, które z pewnością potrzebują poprawy.
1. Linijka 15 - niepotrzebne jest robienie ,,slot 0 and 1 and 2 and 3 ......... and 26", ponieważ wystarczy zrobić integers between 0 and 26, a jesli pomiędzy są jakieś sloty które nie mają być tłem, to po prostu dodaj ustawianie tła wcześniej od pozostałego gui.
2. Linijki 11-16 błąd krytyczny, czyli zapisywanie gui w zmiennej globalnej... GUI, itemy i podobne rzeczy zapisujemy zawsze w tymczasowych, bo tak owe się nie wyczyszczają do restartu serwera/skryptu, a zmienne globalne są mocno obciążające dla serwera. Dlatego gui zawsze zapisujemy w zmiennej tymczasowej. Zamiast {gmgui} robimy {_gmgui}
3. Łatwiej byłoby napisać funkcję zmieniającą gamemode, ponieważ skróciło by to kod chyba jakoś o połowę. Funkcja w której argumenty odpowiadałyby za gracza (w przypadku zmiany dla samego siebie byłby to gracz sender, czyli egzekutor komendy), oraz za tryb gry (creative, survival, adventure lub spectator)
4. Jeśli już ominąć by funkcje, rzeczy pokroju ,,arg 2 is not set" lub "arg 2 is set" są tu całkowicie zbędne. Można zamiast tego zrobić domyślną wartość argumentu jako egzekutor, czyli [<player=the sender>]
5. Podczas korzystania z argumentu ,,player" jeśli takowy będzie offline, skrypt pokaże niewyobrażalnie brzydką wiadomość, której lepiej uniknąć. - ładniejszym rozwiązaniem będzie użycie argumentu ,,offline player", a w skrypcie sprawdzenie czy gracz jest online.
Z rzeczy do poprawy tyle wypatrzyłem. Większość to zwykle skracające kod, ale podpunkt drugi... to jest akurat poważny błąd, mocno zlaguje i zbuguje to serwer.
Pozdrawiam, TeZet.