Skocz do zawartości

TradeSK - Handel w GUI


knugi
 Udostępnij

Rekomendowane odpowiedzi

TradeSK

*REKLAMA*

Zajrzyj też do nowszej wersji:

*koniec reklamy*

 

Hejka, przedstawiam wam mój skrypt na zaawansowany handel z graczami w GUI.. TAK! w gui.

Co robi? Jak to handel, to handlujemy z graczami, najpierw co musimy zrobić to wpisać:

/handel <gracz>

I jeżeli zaakceptuje to wyświetli nam takie coś:

Spoiler

YdHcBOl.jpg

Wrzucamy tam itemki i zamykamy okienko, wtedy przechodzi nam do takiego GUI:

Spoiler

9jdyVJa.jpg

Jeżeli nam coś nie pasuje zawsze możemy coś zmienić:

Spoiler

2BptFE2.jpg

Ale wiemy też przecież, że ktoś chce kupić item, więc co wtedy?

A no, pomyślałem o tym i dodałem komendę, która robi banknoty:

/handel banknot <liczba>

Spoiler

iZ5ectZ.jpg

Klikając nim PPM, zwraca nam całe pieniążki, które są opisane w drugiej linijce lore.

Również jest depozyt, który przechowuje nam przedmioty, które się nie zmieściły podczas wymiany.

Można je odebrać komendą /handel odbierz, gdy tylko zwolnimy trochę miejsca w ekwipunku :)

Wszystkie komendy:

Spoiler

KOvUGMa.jpg

 

ToDo:

-Wszelakie bugi, których jeszcze nie udało mi się wykryć.

Download:

V1. Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

V2. 

V2.1 Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

V3. Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

V3.1 Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

V4.0 Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

ChangeLog:

V1. - Wydanie skryptu

V2. - Dodanie eventu On Quit

V2.1 - Dodanie eventu On Join, zmieniono trochę wygląd i poprawiono bugi z eventem On Quit

V3 Usunięto poważny błąd kopiowania itemu !!! Drobne poprawki lakiernicze 

V3.1 - Zaktualizowano do wersji 1.11 (poprawiono błąd ze zmienną, działa też na 1.7)

V4.0 - Usunięto mały błąd z kopiowaniem itemów;

dorobiłem logi handlu (zapusują się w plugins -> Skript -> logs -> handel.log);

Przykładowy log:

Spoiler
[12.06.17 16:06]     Wymiana knugi z jacek:
    #Itemy knugi:
    - 4 diamonds
    - 3 bones
    - diamond boots
    - paper of Unbreaking 1 named "§aBanknot" with lore §6Nominal:||§c99§a$
    - diamond boots
    - diamond sword with lore ***
    - diamond sword
    - 13 stones
    - 5 stones
    - 5 stones
    - 5 stones
    - 5 stones
    - 5 stones
    - 5 stones
    - 5 stones
    - 5 stones
    - 5 stones
    - 5 stones
    #Itemy jacek
    - 33 stones
    - 32 stones
    - 16 diamonds
    - 32 diamonds
    - 3 diamonds
    - diamond boots of Protection 4 named "§6xD"
    - rotten flesh
    - arrow
    - 21 stones
    - 19 diamonds
    - 38 diamonds
    - 11 diamonds
    - 17 diamonds
    - 25 diamonds
    - 21 stones
    - 21 stones
    - arrow
    - arrow
[12.06.17 16:07]    Wymiana knugi z jacek:
    #Itemy knugi:
    - 64 stones
    #Itemy jacek
    - diamond sword with lore ***

 

Wymagania:

Skript min 2.1.2, SkQuery 3, WildSkript, Vault + Essentials

Zachęcam do testowania i oceniania :)

 

//Dodam, że skrypt był testowany na serwerze CraftBukkit 1.7.2 R0.1, więc możliwe, że nie będzie działał na wyższych wersjach (Na 1.8 jeszcze może pójść, nie wiem jak z wyższymi)
//Zaktualizowano i przetestowano skrypt na wersji 1.11 PaperSpigot. Działa :)

//Sprawdzono skrypt na wersji Spigot 1.12 - działa

Edytowane przez knugi
Odnośnik do komentarza
Udostępnij na innych stronach

Na serwerze beda masakryczne lagi przy 50 osobach.

 

every 1 second:
    loop all players:
        if {wymiana::%loop-player%.debug} is set:
            clear {wymiana::%loop-player%.debug}
        if {wymiana::%loop-player%.expire} is larger than 0:
            remove 1 from {wymiana::%loop-player%.expire}
        else if {wymiana::%loop-player%.expire} is 0:
            clear {wymiana::%{wymiana::%loop-player%.with}%.expire}
            clear {wymiana::%{wymiana::%loop-player%.with}%.status}
            clear {wymiana::%{wymiana::%loop-player%.with}%.with}
            clear {wymiana::%loop-player%.expire}
            clear {wymiana::%loop-player%.status}
            clear {wymiana::%loop-player%.with}

Odnośnik do komentarza
Udostępnij na innych stronach

11 minut temu, Crystal_PL napisał:

Na serwerze beda masakryczne lagi przy 50 osobach.

 

every 1 second:
    loop all players:
        if {wymiana::%loop-player%.debug} is set:
            clear {wymiana::%loop-player%.debug}
        if {wymiana::%loop-player%.expire} is larger than 0:
            remove 1 from {wymiana::%loop-player%.expire}
        else if {wymiana::%loop-player%.expire} is 0:
            clear {wymiana::%{wymiana::%loop-player%.with}%.expire}
            clear {wymiana::%{wymiana::%loop-player%.with}%.status}
            clear {wymiana::%{wymiana::%loop-player%.with}%.with}
            clear {wymiana::%loop-player%.expire}
            clear {wymiana::%loop-player%.status}
            clear {wymiana::%loop-player%.with}

Tak, ale to jest dosyć ważne... Jeżeli uważasz, że nie potrzebne to sobie to usuń :) Ale potem nie narzekaj na nie działający skrypt... :/ 

Odnośnik do komentarza
Udostępnij na innych stronach

@Crystal_PL

Co do every 1 second, nie zawsze musi lagować przy 50 osobach, dlaczego zapytasz? Otóż masz warunki które nie zawsze są ustawione tylko przy próbie handlu z graczami, więc 50 osób nie będzie na raz próbowało ze sobą handlować, a nawet jeżeli tak, to zapytaj sam siebie: Od czego to zależy? Od źle napisanego skryptu, czy od słabej maszyny? Ten skrypt jest według mnie dobrze napisany i ten periodical żadnych spowolnień serwera nie powoduje, ponieważ jest dobrze napisany.

Jeżeli masz syf-maszynę, to nawet serwer bez skript'a będzie lagował :)

Sądzę iż niektóre funkcje które ten skrypt wykonuje np Otwieranie GUI i ustawianie w nim itemów, bardziej obciąża system niż usuwanie zmiennych na periodicalu + pętla graczy

Nie rozumiem ludzi, którzy myślą, że jak jest 'every 1 second' to będą lagi, w javie (pluginach) też takiego systemu się używa, że sprawdza coś co sekundę i nie laguje.

Rozumiem, że wyrażasz swoją opinię, bo możesz jak każdy uczestnik tego forum, bo masz takie prawo. Lecz czasem mógłbyś się zastanowisz zanim coś napiszesz. *smile*

Niektórych rzeczy po prostu się nie da inaczej napisać niżeli w periodicalu, po prostu nie można i koniec kropka.

Co do skryptu, zamierzam niedługo poprawić go, bo nie dodałem jeszcze zabezpieczenia na wyjście z serwera podczas wymiany, a to jest bardzo konieczne :/

Jeszcze muszę dać pewien warunek do kodu, bo znalazłem kolejny błąd.

Tak do wiadomości jeżeli ktoś jest zainteresowany: Ten skrypt pisałem około 6 godzin i testowałem przez 2 godziny uwzględniając przerwy na siusiu i papieroska :)

Poprawiłem ten skrypt, tak, że nie wywala żadnych błędów w konsoli (co gui w skripcie jest do tego bardzo nachalne), a szczególnie przy takiej ilości działań na nim.

Odnośnik do komentarza
Udostępnij na innych stronach

@Alexo Games PL Dziękuję za ocenę. Oczywiście będę rozwijał skrypt, jest to mój najlepszy projekt, jaki w życiu robiłem :)

@Kraftowy Dzięki :P

@foxeik Dziękuję

 

@Topic Zaktualizowałem skrypt i usunąłem poważny błąd spowodowany przeze mnie. Otóż można było przypadkowo kopiować itemy :) Nie zdradzę w jaki sposób, niech to będzie słodka tajemnica <3

Odnośnik do komentarza
Udostępnij na innych stronach

Mogę rzecz że skrypt spoko, ale no cóż. Jak to ja, już coś takiego napisałem, tylko że mój różni się tym iż nie ma tego pierwszego GUI tylko od razu można zmieniać, pliczki YML i kilka bajerów. A dlaczego tu go nie ma? Nie lubie administracji :P.

Mam na dzieję że nie muszę sprawdzać kodu, a wiedz że jestem osobą skrupulatną i rzadko się zdarza że chwale :)

+

Pozdrawiam

Edytowane przez ShroN
Odnośnik do komentarza
Udostępnij na innych stronach

Temat został przeniesiony z Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! > Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! do Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! > Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! > Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!.

Odnośnik do komentarza
Udostępnij na innych stronach

@KrejzolekPRO ale po co? Jeden zaakceptuje, drugi zaakceptuje i wymiana idzie :P

A jak gość zmieni przedmioty to obojgu graczy ustawia się status, że czeka na akceptacje :) Także nie ma mowy o wprowadzaniu w błąd graczy z którymi się handluje

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
Dodaj odpowiedź do tematu...

×   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.

 Udostępnij

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

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