GUI w Skript
Czym jest GUI?
Jest to skrzynia z wcześniej ustalonymi przedmiotami,
z której nie możesz wyciągać przedmiotów,
lecz możesz np. przenieść się na inny
serwer klikając w odpowiedni przedmiot.
Przykładowe GUI:
Dlaczego nie powinieneś korzystać
z SkQuery do tworzenia GUI?
SkQuery posiada sporo błędów, jednym
z nich jest ukryta możliwość wyciągania
przedmiotów z GUI robionego za
pomocą tego addonu.
Jakie addony są potrzebne
do zrobienia GUI?
Nie potrzebujesz żadnych addonów,
wystarczy sam Skript.
Jak zrobić GUI w Skripcie?
Jak w każdym skrypcie, na początku musi być jakiś event. W przykładzie użyję komendę: (Zapamiętaj, że przy dodawaniu komendy zawsze musi być 'trigger' w następnej linijce.)
command /gui [<text>]:
trigger:
Gdy już masz komendę, musisz stworzyć swoje GUI. Robisz to w ten sposób: (3 to ilość linijek, "Nazwa" to nazwa twojego gui.)
set {_gui} to chest inventory with 3 rows named "Nazwa"
Teraz musisz ustawić slot. Pamiętaj, że są one liczone od 0. Żeby ustawić pierwszy slot w swoim GUI, zrób to:
set slot 0 of {_gui} to diamond
Twoje GUI jest już gotowe! Najwyższy czas je otworzyć dla gracza, który wykonał komendę:
open {_gui} to player
Cały kod powinien wyglądać tak:
command /gui [<text>]:
trigger:
set {_gui} to chest inventory with 3 rows named "Nazwa"
set slot 0 of {_gui} to diamond
open {_gui} to player
Aktualnie z twojego GUI można wyciągać
przedmioty i nic się nie dzieje, jak to zmienić?
Przyda ci się event 'on inventory click':
on inventory click:
Sprawdzaj czy naciśnięty slot nie jest ekwipunkiem gracza:
event-inventory is not player's inventory
Teraz musisz sprawdzić nazwę GUI:
if name of event-inventory is "Nazwa":
Jeśli chcesz zablokować wyciąganie przedmiotów, dodaj teraz 'cancel event':
cancel event
Sprawdź kliknięty slot:
if clicked slot is 0:
I wykonaj co chcesz wykonać:
add diamond to player's inventory
Cały kod powinien wyglądać tak:
on inventory click:
event-inventory is not player's inventory
if name of event-inventory is "Nazwa":
cancel event
if clicked slot is 0:
add diamond to player's inventory
Teraz połącz te dwa kody i przeładuj skrypt.
Gratulacje! Zrobiłeś swoje pierwsze GUI w Skripcie!