GUI: Różnice pomiędzy wersjami

Z wiki.skript.pl
Przejdź do nawigacji Przejdź do wyszukiwania
m (poprawka linków)
Linia 1: Linia 1:
 
[[Category:Skript]]
 
[[Category:Skript]]
 
'''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 można pomóc sobie dodatkami [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] albo skorzystać z samego Skripta.
 
'''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 można pomóc sobie dodatkami [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] albo skorzystać z samego Skripta.
 +
 +
[[Plik:GUI|Skript umożliwia tworzenie dowolnych GUI]]
  
 
==Tworzenie GUI==
 
==Tworzenie GUI==

Wersja z 01:08, 28 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 można pomóc sobie dodatkami SkQuery lub TuSKe albo skorzystać z samego Skripta.

Skript umożliwia tworzenie dowolnych GUI

Tworzenie GUI

W celu stworzenia GUI trzeba zapisać zdarzenie, pętlę 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 X jednak musimy pamiętać że gui będzie sie zniekształcać przy większej ilości slotów)
  • <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>.