Skocz do zawartości
  • 0

Odswiezanie CHEST GUI po kliknieciu


Pytanie

Hej. Jak zrobic odsiwezanie sie chest gui? Mam pomysl zeby zrobic odbieranie nagrod za poziom. Bedzie pare stron tych prezentow, bo poziomow jest dosc duzo. Generalnie chodzi mi o to, ze po odebraniu nagrody, czyli kliknieciu w dana nagrode, chce aby ikona czy ogolnie opis i anzwa po kliknieciu zmienila sie od razu, a nie w momencie kiedy na nowo wlacze chest gui. Jak to zrobic, aby po kliknieciu chestgui odswiezalo sie? Chyba ze ktos ma jakis inne rozwiazanie? Prosze o pomoc. Pozdrawiam hehe :D
To moj kod: 

 

Odnośnik do komentarza
https://skript.pl/temat/55875-odswiezanie-chest-gui-po-kliknieciu/
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
4 godziny temu, Fendi napisał:

zapisujesz gui do funkcji i gdy chcesz odświeżyć to zamykasz eq gracza i wywolujesz funkcje

jak zapisac gui do funckji?


Mam cos takiego i wyrzuca mi blad w funkcji w 22 linijcie jak probowalem to zrobic :D

Odnośnik do komentarza
https://skript.pl/temat/55875-odswiezanie-chest-gui-po-kliknieciu/#findComment-335759
Udostępnij na innych stronach

  • 0
23 minuty temu, EdeQ napisał:

jak zapisac gui do funckji?


Mam cos takiego i wyrzuca mi blad w funkcji w 22 linijcie jak probowalem to zrobic :D

wyrzuca blad bo gdy wpisujesz liczbe jakiegos przedmiotu to musisz dodac of, 1 of diamond, 13 of dirt itd

function inv1(p: player):
	set {_} to chest inventory with 3 rows named "XD"
	set slot (integers between 0 and 27) of {_} to black stained glass pane named "&8*"
	set slot 13 of {_} to diamond named "xd2"
	open {_} to {_p}

Prosze, na takiej zasadzie

A żeby ją wywołać wpisz w kodzie

inv1(player)

W przypadku gdy chcesz inne gui to robisz podobną funkcje ale zmieniasz jej nazwe, tylko uzywaj tego tylko kiedy chcesz kilka razy to samo gui otworzyc, w przypadku gdy otwierasz jakies tylko raz to nie ma sensu funkcja

Edytowane przez Fendi
Odnośnik do komentarza
https://skript.pl/temat/55875-odswiezanie-chest-gui-po-kliknieciu/#findComment-335760
Udostępnij na innych stronach

  • 0
5 minut temu, Fendi napisał:

wyrzuca blad bo gdy wpisujesz liczbe jakiegos przedmiotu to musisz dodac of, 1 of diamond, 13 of dirt itd

function inv1(p: player):
	set {_} to chest inventory with 3 rows named "XD"
	set slot (integers between 0 and 27) of {_} to black stained glass pane named "&8*"
	set slot 13 of {_} to diamond named "xd2"
	open {_} to {_p}

Prosze, na takiej zasadzie

A żeby ją wywołać wpisz w kodzie

inv1(player)

W przypadku gdy chcesz inne gui to robisz podobną funkcje ale zmieniasz jej nazwe, tylko uzywaj tego tylko kiedy chcesz kilka razy to samo gui otworzyc, w przypadku gdy otwierasz jakies tylko raz to nie ma sensu funkcja

Faktycznie. Teraz dziala, dziekuje. Co zrobic w przypadku jesli chce, zeby drugi przedmiot zostal zapisany w tym chest gui. Czyli jesli klikne ten diament to zeby za kazdym razem kiedy wejde spowrotem w to chest gui byl kamien, ktory wywolalem w funkcji? Moim celem jest wlasnie to zeby odbierac nagrody, czyli jak ktos ja odbierze to zeby nie mogl juz odebrac drugi raz i zeby caly czas pokazywalo ze jest odebrany.

Odnośnik do komentarza
https://skript.pl/temat/55875-odswiezanie-chest-gui-po-kliknieciu/#findComment-335761
Udostępnij na innych stronach

  • 1

Podboostowalem też ten twój kod, było w nim troche rzeczy jakich nie powinno być

function inv1(p: player):
    set {_} to chest inventory with 2 rows named "Przepustka sezonowa"
    set slot (integers between 0 and 27) of {_} to black stained glass pane named "&8*"
    set slot 0 of {_} to paper with custom model data 3 named "&cWstecz"
    set slot 4 of {_} to paper with custom model data 11 named "§x§c§1§3§d§6§c§lPrzepustka sezonowa" with lore "&7Aby odblokowac nagrody konieczne jest zakupienie" and "&7rangi &6Premium" and "" and "&7Aktualny poziom: &f%{poziom::%{_p}%}%"
    set slot 14 of {_} to paper with custom model data 13 named "&7Kolejna strona"
    open {_} to {_p}
command /przepustka:
    trigger:
        inv1(player)

on inventory click:
    clicked inventory is not player's inventory
    if name of event-inventory is "Przepustka sezonowa":
        cancel event
        if clicked slot is 0:
            close player's inventory
            play sound "ui.loom.select_pattern" to player
            execute player command "/panel"
        if clicked slot is 16:
            play sound "ui.loom.select_pattern" to player
            set {_} to chest inventory with 2 row named "Przepustka sezonowa &82 strona"
            set slot 0 of {_} to paper with custom model data 3 named "&cWstecz"
            set slot 10 of {_} to paper with custom model data 12 named "&7Poprzednia strona"
            set slot 16 of {_} to paper with custom model data 13 named "&7Kolejna strona"
            open {_} to player
    if name of event-inventory is "Przepustka sezonowa &82 strona":
        cancel event
        if clicked slot is 12:
            inv1(player)

 

Cytat

Faktycznie. Teraz dziala, dziekuje. Co zrobic w przypadku jesli chce, zeby drugi przedmiot zostal zapisany w tym chest gui. Czyli jesli klikne ten diament to zeby za kazdym razem kiedy wejde spowrotem w to chest gui byl kamien, ktory wywolalem w funkcji? Moim celem jest wlasnie to zeby odbierac nagrody, czyli jak ktos ja odbierze to zeby nie mogl juz odebrac drugi raz i zeby caly czas pokazywalo ze jest odebrany.

Stworzyć warunek w funkcji, jeżeli odebranie nagrody w formie zmiennej bedzie na true to ustawisz slot na kamien, a jezeli bedzie na false to na diament

Np tak

if {v::%{_p}%} = true:
	set slot 13 of {_} to stone
else:
	set slot 13 of {_} to diamond

 

Taki przypisek do twojego kodu

Nie używaj

if warunek = true:
	stop

zamiast tego użyj płaskiego warunku, czyli bez : i ifa, charakteryzuję się tym, że w przypadku gdy się nie spełni to kod się zatrzymuje

np tak

player's has 10 diamond
#kod

oraz nie uzywaj player's current inventory, a event-inventory, przez current inventory konsola spami bledem

Edytowane przez Fendi
Odnośnik do komentarza
https://skript.pl/temat/55875-odswiezanie-chest-gui-po-kliknieciu/#findComment-335762
Udostępnij na innych stronach

  • 0
2 godziny temu, Fendi napisał:

Podboostowalem też ten twój kod, było w nim troche rzeczy jakich nie powinno być

function inv1(p: player):
    set {_} to chest inventory with 2 rows named "Przepustka sezonowa"
    set slot (integers between 0 and 27) of {_} to black stained glass pane named "&8*"
    set slot 0 of {_} to paper with custom model data 3 named "&cWstecz"
    set slot 4 of {_} to paper with custom model data 11 named "§x§c§1§3§d§6§c§lPrzepustka sezonowa" with lore "&7Aby odblokowac nagrody konieczne jest zakupienie" and "&7rangi &6Premium" and "" and "&7Aktualny poziom: &f%{poziom::%{_p}%}%"
    set slot 14 of {_} to paper with custom model data 13 named "&7Kolejna strona"
    open {_} to {_p}
command /przepustka:
    trigger:
        inv1(player)

on inventory click:
    clicked inventory is not player's inventory
    if name of event-inventory is "Przepustka sezonowa":
        cancel event
        if clicked slot is 0:
            close player's inventory
            play sound "ui.loom.select_pattern" to player
            execute player command "/panel"
        if clicked slot is 16:
            play sound "ui.loom.select_pattern" to player
            set {_} to chest inventory with 2 row named "Przepustka sezonowa &82 strona"
            set slot 0 of {_} to paper with custom model data 3 named "&cWstecz"
            set slot 10 of {_} to paper with custom model data 12 named "&7Poprzednia strona"
            set slot 16 of {_} to paper with custom model data 13 named "&7Kolejna strona"
            open {_} to player
    if name of event-inventory is "Przepustka sezonowa &82 strona":
        cancel event
        if clicked slot is 12:
            inv1(player)

 

Stworzyć warunek w funkcji, jeżeli odebranie nagrody w formie zmiennej bedzie na true to ustawisz slot na kamien, a jezeli bedzie na false to na diament

Np tak

if {v::%{_p}%} = true:
	set slot 13 of {_} to stone
else:
	set slot 13 of {_} to diamond

 

Taki przypisek do twojego kodu

Nie używaj

if warunek = true:
	stop

zamiast tego użyj płaskiego warunku, czyli bez : i ifa, charakteryzuję się tym, że w przypadku gdy się nie spełni to kod się zatrzymuje

np tak

player's has 10 diamond
#kod

oraz nie uzywaj player's current inventory, a event-inventory, przez current inventory konsola spami bledem

Ok dziekuje za pomoc :D

Odnośnik do komentarza
https://skript.pl/temat/55875-odswiezanie-chest-gui-po-kliknieciu/#findComment-335779
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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