Skocz do zawartości
  • 0

Dodawanie slotu do wybranego innego gui, za pomocą komendy


Mr_Bearrrr

Pytanie

Cześć. Ogółem chcę zrobić coś zwane "rynkiem", jest sobie rynek, i za pomocą komendy można wystawić przedmiot na ten rynek

Stworzyłem GUI z rynkiem i zdefinowałem go jako {rynek-1}, za pomocą komendy /rynek otwieram to gui, normalnie wykonuje się:

set {rynek-1} to chest inventory ...

set slot 10 of {rynek-1} to...

open {rynek-1} to player

Lecz gdy chcę dodać do tego rynku 1 slot, i żeby on był poprostu na zawsze kiedy otwieram gui chcę żeby to sie dało zrobić za pomocą komendy /rynek-dodaj, i żeby wtedy się dodawał slot, lecz jak używamw tej komendzie:

set slot 1 of {rynek-1} to ...

To poprostu na tym rynku nie ma żadnych zmian

 

Liczę na szybką pomoc 

Odnośnik do komentarza
Udostępnij na innych stronach

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Godzinę temu, Fendi napisał:

Takie rzeczy jak rynek czy trade powinny być zrobione w pluginie, aby maxymalnie zmniejszyć szanse na kopiowanie przedmiotów

Ten plugin jest fajny

https://www.spigotmc.org/resources/auctionhouse.61836/

 

Chciałbym wszystko dostosować pod siebie i własne dodatki itp. więc pisze w sk, wiesz może, jak zrobić to co wyżej mówiłem?

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 godzinę temu, Fendi napisał:

https://skript.pl/temat/45093-gaukcje-skrypt-na-aukcje-sprzedażowe-graczy-w-gui/

To już tego lepiej użyj, mimo to z własnego doświadczenia wiem, że handel/trade to najłatwiejsza rzecz do kopiowania itemów

Jak pewnie każdy wie, ciężko odnaleźć się w czyimś kodzie. Nie wiem nadal jak za pomocą komendy umieścić przedmiot w zdefiniowanym gui, mógłbyś pokazać rozwiązanie?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
8 minut temu, Mr_Bearrrr napisał:

Jak pewnie każdy wie, ciężko odnaleźć się w czyimś kodzie

Ciężko, dlatego sam autor Ci w tym pomoże. 

Chcesz umieścić aukcję w GUI. Zatem jest to w przypadku mojego skryptu komenda /aukcja dodaj <cena> <ilosc>

        if arg-1 = "dodaj" or "add":
            if (arg-2 parsed as integer) is not integer:
                send "{@invalidPrice}"
                stop
            if player's tool = air:
                send "{@itemIsAir}"
                stop
            if (arg-3 parsed as integer) is not integer:
                send "{@invalidAmount}"
            if item amount of player's tool < (arg-3 parsed as integer):
                send "{@noItems}"
                stop
            if (arg-3 parsed as integer) < 1:
                send "{@noItems}"
                stop
            set {_num} to (last element out of all indexes of {aukcje::*}) parsed as integer + 1
            set {aukcje::%{_num}%::item} to (arg-3 parsed as integer) of player's held item
            set {aukcje::%{_num}%::itemlore::*} to lore of player's held item
            set {aukcje::%{_num}%::player} to player
            set {aukcje::%{_num}%::cost} to (arg-2 parsed as integer)
            set {aukcje::%{_num}%::status} to true
            set {aukcje::%{_num}%} to true
            send formatted "&aGracz &e%player% &awystawil przedmiot <tooltip:&7przedmiot: &e%{aukcje::%{_num}%::item}%%nl%&7cena: &e%{aukcje::%{_num}%::cost}%{@moneySymbol}>&e##%{_num}%&7 (najedź myszką)<reset>!" to all players
            set player's tool to (item amount of player's tool - (arg-3 parsed as integer)) of player's tool

Zatem idąc po kolei, warunki chyba są dosyć jasne, pomijam już sam warunek "dodaj".

1. Jeśli podana cena nie jest liczbą - zakończ
2. Jeśli gracz nie trzyma nic w ręce - zakończ
3. Jeśli ilość itemów podanych przez gracza nie jest liczbą - zakończ
4. Jeśli ilość posiadanych itemów jest mniejsza niż zadeklarowana - zakończ
5. Jeśli gracz podał ilość mniejszą niż 1 - zakończ

Następnie zmienna {_num}:
- pobiera ostatni index (jeśli nie wiesz co to indexy w tablicach to poczytaj) z listy wszystkich aukcji ({aukcje::*})
- zamienia go na liczbę i dodaje 1.
Celem tego działania jest uzyskanie kolejnego wolnego indexu, aby dodać na jego miejsce aukcję. 
W skrócie {_num} to ID aukcji.

Następna linijka zapisuje item z gracze rączki do zmiennej {aukcje::<id>::item} 
Następna zapisuje lore tego itemu.
Kolejna zapisuje gracza, który wystawił aukcję.
Kolejna zapisuje cenę.
Kolejna zapisuje status aukcji, czy jest aktualna. 
Kolejna zapisuje, true, aby móc swobodnie przejść pętlą po wszystkich indexach.

Następnie wysyłana jest wiadomość do wszystkich graczy, że wystawione zostały przedmioty.
Na koniec ustawiamy przedmiot gracza z łapki na ten sam, tylko że z pomniejszoną ilością z ilością wystawionych produktów. Jeśli gracz wystawi wszystkie produkty z łapki to po prostu zostanie mu nic - air.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
20 minut temu, CoFFeIN04 napisał:

Ciężko, dlatego sam autor Ci w tym pomoże. 

Chcesz umieścić aukcję w GUI. Zatem jest to w przypadku mojego skryptu komenda /aukcja dodaj <cena> <ilosc>

        if arg-1 = "dodaj" or "add":
            if (arg-2 parsed as integer) is not integer:
                send "{@invalidPrice}"
                stop
            if player's tool = air:
                send "{@itemIsAir}"
                stop
            if (arg-3 parsed as integer) is not integer:
                send "{@invalidAmount}"
            if item amount of player's tool < (arg-3 parsed as integer):
                send "{@noItems}"
                stop
            if (arg-3 parsed as integer) < 1:
                send "{@noItems}"
                stop
            set {_num} to (last element out of all indexes of {aukcje::*}) parsed as integer + 1
            set {aukcje::%{_num}%::item} to (arg-3 parsed as integer) of player's held item
            set {aukcje::%{_num}%::itemlore::*} to lore of player's held item
            set {aukcje::%{_num}%::player} to player
            set {aukcje::%{_num}%::cost} to (arg-2 parsed as integer)
            set {aukcje::%{_num}%::status} to true
            set {aukcje::%{_num}%} to true
            send formatted "&aGracz &e%player% &awystawil przedmiot <tooltip:&7przedmiot: &e%{aukcje::%{_num}%::item}%%nl%&7cena: &e%{aukcje::%{_num}%::cost}%{@moneySymbol}>&e##%{_num}%&7 (najedź myszką)<reset>!" to all players
            set player's tool to (item amount of player's tool - (arg-3 parsed as integer)) of player's tool

Zatem idąc po kolei, warunki chyba są dosyć jasne, pomijam już sam warunek "dodaj".

1. Jeśli podana cena nie jest liczbą - zakończ
2. Jeśli gracz nie trzyma nic w ręce - zakończ
3. Jeśli ilość itemów podanych przez gracza nie jest liczbą - zakończ
4. Jeśli ilość posiadanych itemów jest mniejsza niż zadeklarowana - zakończ
5. Jeśli gracz podał ilość mniejszą niż 1 - zakończ

Następnie zmienna {_num}:
- pobiera ostatni index (jeśli nie wiesz co to indexy w tablicach to poczytaj) z listy wszystkich aukcji ({aukcje::*})
- zamienia go na liczbę i dodaje 1.
Celem tego działania jest uzyskanie kolejnego wolnego indexu, aby dodać na jego miejsce aukcję. 
W skrócie {_num} to ID aukcji.

Następna linijka zapisuje item z gracze rączki do zmiennej {aukcje::<id>::item} 
Następna zapisuje lore tego itemu.
Kolejna zapisuje gracza, który wystawił aukcję.
Kolejna zapisuje cenę.
Kolejna zapisuje status aukcji, czy jest aktualna. 
Kolejna zapisuje, true, aby móc swobodnie przejść pętlą po wszystkich indexach.

Następnie wysyłana jest wiadomość do wszystkich graczy, że wystawione zostały przedmioty.
Na koniec ustawiamy przedmiot gracza z łapki na ten sam, tylko że z pomniejszoną ilością z ilością wystawionych produktów. Jeśli gracz wystawi wszystkie produkty z łapki to po prostu zostanie mu nic - air.

Dzięki, pokminie z tym

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

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