GUI: Różnice pomiędzy wersjami
m (poprawka opisu) |
|||
| Linia 1: | Linia 1: | ||
[[Category:Skript]] | [[Category:Skript]] | ||
| − | '''GUI | + | '''GUI''' - graficzny interfejs użytkownika (ang. graphical user interface) oparty na ekwipunku (ang. inventory) gracza to osobne okienko, które można zaprogramować na swój sposób. Aby stworzyć własne GUI należy zainstalować dodatek [https://www.spigotmc.org/resources/skquery-1-9-1-14.36631/ SkQuery] lub [https://forums.skunity.com/resources/tuske-custom-enchantments-gui-manager-and-more.16/ TuSKe]. |
| − | == Tworzenie GUI == | + | ==Tworzenie GUI== |
W celu stworzenia GUI trzeba zapisać [[event]], [[pętle|periodical]] lub [[komenda|komendę]] która wywoła otworzenie się GUI. Wyświetlanie ekwipunku:<br> | W celu stworzenia GUI trzeba zapisać [[event]], [[pętle|periodical]] lub [[komenda|komendę]] która wywoła otworzenie się GUI. Wyświetlanie ekwipunku:<br> | ||
<code>open chest with <integer> rows named "<string>" to <player></code> | <code>open chest with <integer> rows named "<string>" to <player></code> | ||
| − | * <integer> to liczba rzędów w GUI (może ona być liczbą od 1 do 6) | + | *<integer> to liczba rzędów w GUI (może ona być liczbą od 1 do 6) |
| − | * <string> - nazwa GUI | + | *<string> - nazwa GUI |
| − | * <player> - gracz, któremu ma się owe GUI wyświetlić | + | *<player> - gracz, któremu ma się owe GUI wyświetlić |
W takim GUI gracz jest zdolny do manipulowania nim, oraz nie ma w nim nic, ponieważ należy zdefiniować to, co ma się w nim znaleźć oraz później dodać eventy, które wykonują kod po kliknięciu slota w inventory. | W takim GUI gracz jest zdolny do manipulowania nim, oraz nie ma w nim nic, ponieważ należy zdefiniować to, co ma się w nim znaleźć oraz później dodać eventy, które wykonują kod po kliknięciu slota w inventory. | ||
| − | === Definiowanie slota === | + | ===Definiowanie slota=== |
<code>format slot <integer-1> of <player> with <integer-2> of <item> to <effect></code> | <code>format slot <integer-1> of <player> with <integer-2> of <item> to <effect></code> | ||
| − | * <integer-1> definiuje, na jakim slocie ma zostać wstawiony podany później przedmiot. ''Uwaga: Slot '''0''' jest pierwszym slotem w ekwipunku, a nie 1'' | + | *<integer-1> definiuje, na jakim slocie ma zostać wstawiony podany później przedmiot. ''Uwaga: Slot '''0''' jest pierwszym slotem w ekwipunku, a nie 1'' |
| − | * <player> - gracz, któremu ma się slot wyświetlić | + | *<player> - gracz, któremu ma się slot wyświetlić |
| − | * <integer-2> - liczba danego przedmiotu | + | *<integer-2> - liczba danego przedmiotu |
| − | * <item> - dany przedmiot/blok, np. ''diamond'', ''barrier'', ''bone''. | + | *<item> - dany przedmiot/blok, np. ''diamond'', ''barrier'', ''bone''. |
| − | * <effect> - tutaj możliwe jest zdefiniowanie czterech efektów: | + | *<effect> - tutaj możliwe jest zdefiniowanie czterech efektów: |
| − | ** '''be unstealable''' zapobiega 'kradzieży' przedmiotu, czyli nie można go wyjąć z GUI | + | **'''be unstealable''' zapobiega 'kradzieży' przedmiotu, czyli nie można go wyjąć z GUI |
| − | ** '''run "<command>" umożliwia wywołanie komendy | + | **'''run "<command>" umożliwia wywołanie komendy''' |
| − | ** '''close''' zamyka GUI | + | **'''close''' zamyka GUI |
| − | ** '''close then run "<command>" zamyka i wywołuje komendę, która jest wykonywana przez konsolę. | + | **'''close then run "<command>" zamyka i wywołuje komendę, która jest wykonywana przez konsolę.''' |
Sposób pierwszy jest niepolecany ze względu, że nie jest rozbudowany oraz nie umożliwia wywołania wielu efektów na raz, dlatego poleca się | Sposób pierwszy jest niepolecany ze względu, że nie jest rozbudowany oraz nie umożliwia wywołania wielu efektów na raz, dlatego poleca się | ||
| Linia 30: | Linia 30: | ||
set <player>'s current inventory's slot <integer> to <integer-2> of <item> named "<string>"</pre>, gdzie | set <player>'s current inventory's slot <integer> to <integer-2> of <item> named "<string>"</pre>, gdzie | ||
| − | * <player> określa gracza | + | *<player> określa gracza |
| − | * <integer> jest liczbą całkowitą. W pierwszym przypadku może to być liczba od '''1''' do '''6''', w drugim zależnie od liczby rzędów od '''0''' do '''9*int-1''', w ostatnim od '''0''' do '''64''' | + | *<integer> jest liczbą całkowitą. W pierwszym przypadku może to być liczba od '''1''' do '''6''', w drugim zależnie od liczby rzędów od '''0''' do '''9*int-1''', w ostatnim od '''0''' do '''64''' |
| − | * <string> jest tekstem | + | *<string> jest tekstem |
| − | * <item> jest przedmiotem w grze | + | *<item> jest przedmiotem w grze |
Aby wywołać kod po kliknięciu przedmiotu należy napisać event <code>on inventory click:</code> | Aby wywołać kod po kliknięciu przedmiotu należy napisać event <code>on inventory click:</code> | ||
Wersja z 17:48, 27 paź 2019
GUI - graficzny interfejs użytkownika (ang. graphical user interface) oparty na ekwipunku (ang. inventory) gracza to osobne okienko, które można zaprogramować na swój sposób. Aby stworzyć własne GUI należy zainstalować dodatek SkQuery lub TuSKe.
Tworzenie GUI
W celu stworzenia GUI trzeba zapisać event, periodical lub komendę która wywoła otworzenie się GUI. Wyświetlanie ekwipunku:
open chest with <integer> rows named "<string>" to <player>
- <integer> to liczba rzędów w GUI (może ona być liczbą od 1 do 6)
- <string> - nazwa GUI
- <player> - gracz, któremu ma się owe GUI wyświetlić
W takim GUI gracz jest zdolny do manipulowania nim, oraz nie ma w nim nic, ponieważ należy zdefiniować to, co ma się w nim znaleźć oraz później dodać eventy, które wykonują kod po kliknięciu slota w inventory.
Definiowanie slota
format slot <integer-1> of <player> with <integer-2> of <item> to <effect>
- <integer-1> definiuje, na jakim slocie ma zostać wstawiony podany później przedmiot. Uwaga: Slot 0 jest pierwszym slotem w ekwipunku, a nie 1
- <player> - gracz, któremu ma się slot wyświetlić
- <integer-2> - liczba danego przedmiotu
- <item> - dany przedmiot/blok, np. diamond, barrier, bone.
- <effect> - tutaj możliwe jest zdefiniowanie czterech efektów:
- be unstealable zapobiega 'kradzieży' przedmiotu, czyli nie można go wyjąć z GUI
- run "<command>" umożliwia wywołanie komendy
- close zamyka GUI
- close then run "<command>" zamyka i wywołuje komendę, która jest wykonywana przez konsolę.
Sposób pierwszy jest niepolecany ze względu, że nie jest rozbudowany oraz nie umożliwia wywołania wielu efektów na raz, dlatego poleca się
open chest with <integer> row named "<string>" to <player>
set <player>'s current inventory's slot <integer> to <integer-2> of <item> named "<string>", gdzie
- <player> określa gracza
- <integer> jest liczbą całkowitą. W pierwszym przypadku może to być liczba od 1 do 6, w drugim zależnie od liczby rzędów od 0 do 9*int-1, w ostatnim od 0 do 64
- <string> jest tekstem
- <item> jest przedmiotem w grze
Aby wywołać kod po kliknięciu przedmiotu należy napisać event on inventory click:
on inventory click:
if inventory name of current inventory of <player> is "<string>":
cancel event
if clicked slot is <integer>:
# kod 1
else if clicked slot is <integer>:
# kod 2
Skript sprawdza, czy ekwipunek jest nazwany <string>. Jeżeli ten warunek się spełni, to wtedy skrypt anuluje ten event, przez co gracz nie może wyjąć przedmiotu. Następnie sprawdza, czy gracz nacisnął slot numer <integer>. Jeżeli tak, to zostaje wykonany kod 1.
Aby skuteczniej zabezpieczać serwer od takich przykrości powinno się dopisywać wait <timespan>.