Skocz do zawartości
  • 0

Wyciaganie przedmiotów z Gui


Pytanie

Witam wszystkich bardzo serdecznie, bawie sie trzeci dzień z pisaniem w skripcie i natrafiłem na problem z którym nie potrafie sobie poradzić. Konkretnie to stworzyłem gui pod szybkie craftowanie przedmiotów natomiast gdy szybko klikam LPM i E to jestem w stanie wyciagnąć itemy do ekwipunku. Mam nadzieje że ktoś mi pomoże :D

 

https://pastebin.com/Drk2t64p

Odnośnik do komentarza
https://skript.pl/temat/51442-wyciaganie-przedmiot%C3%B3w-z-gui/
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
3 godziny temu, CoFFeIN04 napisał:

wystarczy przestać korzystać z format slot :D 

Poczytałem troche o tworzeniu gui i dowiedziałem sie że skQuery jest syfem do robienia gui. Zgodnie z poradnikiem z tej strony zrobiłem jakieś małe podstawowe gui. Pojawił sie natomiast taki sam problem tyle ze dzialajacy w inny sposob, kiedy otworze menu i z shiftem wyciagne item to zostaje mi w eq. Jak to naprawić :D?

 

I jeszcze jedna sprawa jak robie

on inventory click:

if clicked slot is not barrier:
            close inventory of player

 

to działa na każdą interakcje z eq nie tylko w gui co powoduje mase errorów.

Odnośnik do komentarza
https://skript.pl/temat/51442-wyciaganie-przedmiot%C3%B3w-z-gui/#findComment-316478
Udostępnij na innych stronach

  • 0

Dobra, przejrzałem cały kod i tutaj masz rzeczy, które bym zmienił:

remove 1 paper named "&b&lZdrapka" with lore "&7Kliknij aby zdrapać i wypróbować swojego &bszczęścia" and "&7Przedmioty ze &bzdrapek &7znajdziesz pod &b/drop" from player

na

set player's tool to (item amount of player's tool - 1) of player's tool

 

jeśli masz, np.

3 golden apple

to po ilości dodaj "of", np.

3 of golden apple

 

broadcast "&7(&b&lZdrapka&7) &b%player% &7wylosował &b&lBeacona!"

czy na pewno jest to informacja, która musi też trafić do konsoli? jeśli nie to dajesz

send "&7(&b&lZdrapka&7) &b%player% &7wylosował &b&lBeacona!" to all players

 

i tutaj ważne uproszczenie:

        set slot 0 of {_gui} to black stained glass pane named " "
        set slot 1 of {_gui} to black stained glass pane named " "
        set slot 2 of {_gui} to black stained glass pane named " "
        set slot 3 of {_gui} to black stained glass pane named " "
        set slot 4 of {_gui} to black stained glass pane named " "
        set slot 5 of {_gui} to black stained glass pane named " "
        set slot 6 of {_gui} to black stained glass pane named " "
        set slot 7 of {_gui} to black stained glass pane named " "
        set slot 8 of {_gui} to black stained glass pane named " "
        set slot 9 of {_gui} to black stained glass pane named " "
        set slot 10 of {_gui} to black stained glass pane named " "

możesz zmienić na:

        set slot 0,1,2,3,4,5,6,7,8,9,19 of {_gui} to black stained glass pane named " "

lub jeszcze prościej

        set slot (integers between 0 and 10) of {_gui} to black stained glass pane named " "

z tego co widziałem, to w slotach 44 - 53 też jest to szkło, więc nie stoi nic na przeszkodzie by napisać tak:

        set slot (integers between 0 and 10) and (integers between 44 and 53) of {_gui} to black stained glass pane named " "

(możesz też dodawać pojedyncze numery)

 

Z tego co widzę, to 

on inventory click:
    event-inventory is not player's inventory
    if name of event-inventory is "&6&lSmyf &7|| &b&lZdrapki":
        cancel event
        if clicked slot is not barrier:
            close inventory of player

powinno działać, jeśli nie działa to spróbuj zmienić na:

on inventory click:
    clicked inventory is not player's inventory
    if name of player's current inventory is "&6&lSmyf &7|| &b&lZdrapki":
        cancel event
        if clicked slot is not barrier:
            close inventory of player
Odnośnik do komentarza
https://skript.pl/temat/51442-wyciaganie-przedmiot%C3%B3w-z-gui/#findComment-316484
Udostępnij na innych stronach

  • 0
13 godzin temu, CoFFeIN04 napisał:

 

on inventory click:
    event-inventory is not player's inventory
    if name of event-inventory is "&6&lSmyf &7|| &b&lZdrapki":
        cancel event
        if clicked slot is not barrier:
            close inventory of player

powinno działać, jeśli nie działa to spróbuj zmienić na:

on inventory click:
    clicked inventory is not player's inventory
    if name of player's current inventory is "&6&lSmyf &7|| &b&lZdrapki":
        cancel event
        if clicked slot is not barrier:
            close inventory of player

Problem z wyciąganiem przedmiotów przy szybkim klikaniu e lub shift clicka już się nie pojawia natomiast podczas testowania natrafiłem na błąd który np podczas reloadowania serwera pozwala wyciagnac przedmioty jako fizyczne (Można je wyrzucic, uzywać etc.)

Jak same reloady raczej podczas działania serwera publicznie nie będą raczej występować tak boje sie ze przy lagach może pojawić się problem z wyciaganiem przedmiotów.

Byłem ciekaw jak to działa w przypadku np deluxemenu i zobaczyłem że podczas reloadu serwera okienko automatycznie sie zamyka, czy jest taka możliwość w skripcie?

 

Co do reszty rzeczy które wypisałeś, bardzo dziękuje bo strasznie skraca to kod jednocześnie zmniejszając ilośc głupich linijek które wydawały mi sie bez sensu ale nie miałem pojęcia jak je zoptymalizowac.

Bardzo miło też że powiedziałeś mi o tym że można używać send "sdsd" to all players zamiast broadcast ponieważ właśnie bałem sie wielkiego spamu w konsoli.

 

A jeżeli już tutaj jesteś to mam jedno pytanie z totalnie innej natury a nie chciałbym tworzyć osobnego posta. Czy jeżeli stworze stoniarki w skripcie to pętla odpowiedzialna za generowanie stone np co 10ticków nie będzie powodowała ogromnego nacisku na maszyne przy powiedzmy 10 graczach kopiących na haste2?

 

Odnośnik do komentarza
https://skript.pl/temat/51442-wyciaganie-przedmiot%C3%B3w-z-gui/#findComment-316511
Udostępnij na innych stronach

  • 0
13 minut temu, natsume napisał:

który np podczas reloadowania serwera pozwala wyciagnac przedmioty jako fizyczne

reloady nie powinny występować nigdy, nawet podczas prac nad serwerem, bo potrafią dużo popsuć, po prostu lepiej wyłączyć i włączyć serwer i nie używać nigdy tej komendy!

14 minut temu, natsume napisał:

A jeżeli już tutaj jesteś to mam jedno pytanie z totalnie innej natury a nie chciałbym tworzyć osobnego posta. Czy jeżeli stworze stoniarki w skripcie to pętla odpowiedzialna za generowanie stone np co 10ticków nie będzie powodowała ogromnego nacisku na maszyne przy powiedzmy 10 graczach kopiących na haste2?

pokaż kod, bez tego nie wiem 

Odnośnik do komentarza
https://skript.pl/temat/51442-wyciaganie-przedmiot%C3%B3w-z-gui/#findComment-316512
Udostępnij na innych stronach

  • 0

Tutaj kod nie jest mój przerobiłem go tylko żeby stworzyć osobną stoniarke.

Żeby nie robić syfu jeszcze jedna rzecz mnie ciekawi bo widze że jesteś obeznaną osobą. Jeżeli chce aby slot 11 otwierał kolejną "strone" gui to jak moge to zrobić? myślałem nad czymś takim ale niestety nie działa.

 

Edytowane przez natsume
Odnośnik do komentarza
https://skript.pl/temat/51442-wyciaganie-przedmiot%C3%B3w-z-gui/#findComment-316513
Udostępnij na innych stronach

  • 0
7 godzin temu, natsume napisał:

Tutaj kod nie jest mój przerobiłem go tylko żeby stworzyć osobną stoniarke.

nie ma innej opcji na stoniarki, nie jest bardzo zły ten kod, natomiast zmieniłbym zmienne na grupowe, bo łatwiej takimi zarządzać. (np. {zmienna.%%} zmieniłbym na {zmienna::%%})

7 godzin temu, natsume napisał:

Żeby nie robić syfu jeszcze jedna rzecz mnie ciekawi bo widze że jesteś obeznaną osobą. Jeżeli chce aby slot 11 otwierał kolejną "strone" gui to jak moge to zrobić? myślałem nad czymś takim ale niestety nie działa.

Wszystko okej, ale na koniec jeszcze musisz otworzyć to inventory dla gracza:

open {_gui} to player

A, no i ten kod będzie działać na kliknięcie 11 slotu w każdym inventory, dlatego musisz to zabezpieczyć

Edytowane przez CoFFeIN04
Odnośnik do komentarza
https://skript.pl/temat/51442-wyciaganie-przedmiot%C3%B3w-z-gui/#findComment-316518
Udostępnij na innych stronach

  • 0
6 godzin temu, CoFFeIN04 napisał:

nie ma innej opcji na stoniarki, nie jest bardzo zły ten kod, natomiast zmieniłbym zmienne na grupowe, bo łatwiej takimi zarządzać. (np. {zmienna.%%} zmieniłbym na {zmienna::%%})

Wszystko okej, ale na koniec jeszcze musisz otworzyć to inventory dla gracza:

open {_gui} to player

A, no i ten kod będzie działać na kliknięcie 11 slotu w każdym inventory, dlatego musisz to zabezpieczyć

Dzięki ci wielkie, rozwiałeś wszystkie wątpliwości i troche nauczyłeś. Temat do zamknięcia

Odnośnik do komentarza
https://skript.pl/temat/51442-wyciaganie-przedmiot%C3%B3w-z-gui/#findComment-316542
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ę...