Skocz do zawartości
  • 0

Przerobienie fragmentu kodu


Pytanie

            loop {targ.itemy.%arg-1%::*}:
                if "%{targ.koszty.%arg-1%::%loop-index%}%" is "<none>" or "" or " ":
                    set {targ.koszty.%arg-1%::%loop-index%} to 0
                if "%lore of {targ.itemy.%arg-1%::%loop-index%}%" is "":
                    set player's current inventory's slot loop-index parsed as integer -1 to loop-value with lore "%lore of loop-value%" and "&2Koszt:&6 %{targ.koszty.%arg-1%::%loop-index%}%"
                else:
                    set player's current inventory's slot loop-index parsed as integer -1 to loop-value with lore "%lore of loop-value%" and "&2Koszt:&6 %{targ.koszty.%arg-1%::%loop-index%}%"
            stop

Siema! Posiadam taki fragment kodu. Ogólnie problem leży w lore. Wszystkie linijki lore posiadam w jednej linijce, potem jest odstęp i jest Koszt. Wie ktoś jak zrobić żeby linijki lore były oddzielne?
 

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/
Udostępnij na innych stronach

Rekomendowane odpowiedzi

  • 0

Działa. Teraz 2 część jeśli można.

 

    if name of player's current inventory is "&9&lTarg&c&l %player%":
        if "%player's current inventory's slot slot%" is not "<none>":
            give player {targ.itemy.%player%::%clicked slot+1%}
            delete {targ.itemy.%player%::%clicked slot+1%}
            delete {targ.koszty.%player%::%clicked slot+1%}
            make console execute command "targprzesunitemy %player%"
            send "&4&lME &8&l>> &2Usunoles item z targu!"
            loop all players:
                if {przegladany.%Loop-player%} is "%player%":
                    close loop-player's inventory
                    make loop-player execute command "sprawdztarg %player%"
            close player's inventory
            make player execute command "sprawdztarg %player%"

Problem co do 3 linijki. Jak zrobić żeby jednocześnie usuwało ostatnią linijkę lore tego przedmiotu? Mianowicie chodzi o ten Koszt 

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317738
Udostępnij na innych stronach

  • 0

Ja w swoim skrypcie rozwiązałem to tak, że przy dodawaniu itemu na aukcje - w twoim przypadku chyba do targu? - zapisywałem lore tego przedmiotu do zmiennej i potem gdy chciałem dać ten przedmiot dla gracza dawałem mu przedmiot z lore zapisanym w tej zmiennej, 

Tutaj masz mój skrypt na aukcje od graczy, może zaczerpniesz w nim jakichś inspiracji: 

 

Jeśli natomiast próbujesz usuwać ostatnią linijkę to możesz spróbować

delete line (length of lore of {_przedmiot}) of lore of {_przedmiot}

oczywiście w miejscu zmiennej {_przedmiot} dajesz swoją zmienną 

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317739
Udostępnij na innych stronach

  • 0

Spróbowałem w ten sposób, nie ma błędów ale dalej nie usuwa mi lore Koszt
 

    if name of player's current inventory is "&9&lTarg&c&l %player%":
        if "%player's current inventory's slot slot%" is not "<none>":
            set {_x} to {targ.itemy.%player%::%clicked slot+1%}
            give player {_x}
            set {_lore::*} to lore of {_x}
            remove (last element out of {_lore::*}) from {_lore::*}
            delete {targ.itemy.%player%::%clicked slot+1%}
            delete {targ.koszty.%player%::%clicked slot+1%}
            make console execute command "targprzesunitemy %player%"
            send "&4&lME &8&l>> &2Usunoles item z targu!"
            loop all players:
                if {przegladany.%Loop-player%} is "%player%":
                    close loop-player's inventory
                    make loop-player execute command "sprawdztarg %player%"
            close player's inventory
            make player execute command "sprawdztarg %player%"

 

 

A wiesz może jak to działa z JSON'em? Bo (lore of player's tool) nie działa a jak daje % to też wszystko w jednej linijce

 

command /json:
	trigger:
		send formatted "<tooltip:>(lore of player's tool)"

 

Glicz

Łączę posty.

Notatka dodana przez Glicz

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317745
Udostępnij na innych stronach

  • 0
set {_x} to {targ.itemy.%player%::%clicked slot+1%}
set {_lore::*} to lore of {_x}
delete {_lore::%size of {_lore::*}%}
set lore of {_x} to {_lore::*}
give {_x} to player 

spróbuj tak

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317750
Udostępnij na innych stronach

  • 0
Teraz, Karol123123123 napisał:

A wiesz może jak to działa z JSON'em? Bo (lore of player's tool) nie działa a jak daje % to też wszystko w jednej linijce

 

command /json:
	trigger:
		send formatted "<tooltip:>(lore of player's tool)"

 

Masz na myśli wielolinijkowy tooltip?

Poradnik do tooltip: 

 

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317751
Udostępnij na innych stronach

  • 0

A wez tak

set {_x} to {targ.itemy.%player%::%clicked slot+1%}
set {_lore::*} to lore of {_x}
set {_} to size of {_lore::*}
clear line {_} of lore of {_x}
give {_x} to the player
Edytowane przez CoFFeIN04
Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317759
Udostępnij na innych stronach

  • 0

Działa <3 Już 2 konkretne błędy naprawione. Został już chyba tylko 1.
Gdy wchodzę w targ gracza jest normalnie Przedmiot + lore Koszt. Po zamknięciu i ponownym otworzeniu targu gracza Kosz jest pokazany 2 razy. (Jest uznajmy Miecz o nazwie "XYZ" lore to tam "XYZ" i nagle jest "Koszt: cena tego przedmiotu" i kolejna taka sama linijka "Koszt: cena tego przedmiotu" i po każdym ponownym otworzeniu tego targu dodaje się ta linijka

 

        if arg-1 is set:
            open chest inventory with 6 rows named "&9&lTarg&c&l %arg-1%" to player
            wait 1 tick
            if "%{przegladany.%player%}%" is not "%arg-1%":
                set {przegladany.%player%} to "%arg-1%"
            set player's current inventory's slot 53 to arrow named "&9Powrót"
            loop {targ.itemy.%arg-1%::*}:
                if "%{targ.koszty.%arg-1%::%loop-index%}%" is "<none>" or "" or " ":
                    set {targ.koszty.%arg-1%::%loop-index%} to 0
                if "%lore of {targ.itemy.%arg-1%::%loop-index%}%" is "":
                    set player's current inventory's slot loop-index parsed as integer -1 to loop-value with lore (lore of loop-value) and "&2Koszt:&6 %{targ.koszty.%arg-1%::%loop-index%}%"
                else:
                    set player's current inventory's slot loop-index parsed as integer -1 to loop-value with lore (lore of loop-value) and "&2Koszt:&6 %{targ.koszty.%arg-1%::%loop-index%}%"
            stop

 

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317771
Udostępnij na innych stronach

  • 0

W kodzie, gdzie gracz dodaje item do targu od razu dodawaj cenę do lore, potem podczas wyświetlania nie musisz dodawać tego lore. Potem, gdy gracz kupi item to już masz gotowe usuwanie ostatniej linijki

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317774
Udostępnij na innych stronach

  • 0

Git. Została już chyba ostatnia rzecz. Mianowicie jak to przerobić żeby loopowało cenę z lore Koszt:?
z tego żeby na {_z} ustawiałem coś kombinowałem ale coś nie idzie więc tutaj coś dopisać trzeba 
 

        if name of player's current inventory contains "Targ&c&l":
            set {_x} to {targ.itemy.%{przegladany.%player%}%::%clicked slot+1%}
            If {_z} is less than or equal to {money::%player%}:
                remove {_wartosc} from {money::%player%}
                set {przegladany.%player%} to {przegladany.%player%} parsed as player
                loop all players:
                    if "%loop-player%" is "%{przegladany.%player%}%":
                        add {_wartosc} to {money::%loop-player%}
                send "&4&lME &8&l>> &2ktos kupil przedmiot z twojego targu! &c+%{_wartosc}%$" to {przegladany.%Player%}
                send "&4&lME &8&l>> &2Kupiles przedmiot z targu&e %{przegladany.%Player%}%" to player
                set {_lore::*} to lore of {_x}
                set {_} to size of {_lore::*}
                clear line {_} of lore of {_x}
                give player {_x}
                delete {targ.koszty.%{przegladany.%player%}%::%clicked slot+1%}
                delete {targ.itemy.%{przegladany.%player%}%::%clicked slot+1%}
                make console execute command "targprzesunitemy %{przegladany.%Player%}%"
                loop all players:
                    if {przegladany.%Loop-player%} is "%{przegladany.%player%}%":
                        set {_przegladany.%Player%} to "%{przegladany.%player%}%"
                        close loop-player's inventory
                        make loop-player execute command "sprawdztarg %{_przegladany.%Player%}%"


 

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317786
Udostępnij na innych stronach

  • 0

Wcześniej jakoś tak ale to nie działało + zmieniałem ten sposób żeby od razu ustawiało lore
 

    else:
        if name of player's current inventory contains "Targ&c&l":
            set {_wartosc} to "%{targ.koszty.%{przegladany.%player%}%::%clicked slot+1%}%" parsed as integer
            If {_wartosc} is less than or equal to {money::%player%}:
                remove {_wartosc} from {money::%player%}

Więc teraz trzeba jakoś zrobić żeby loopowało lore przedmiotu "Koszt: (i tutaj ten loop-number musi zloopować)

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317806
Udostępnij na innych stronach

  • 0
20 minut temu, Karol123123123 napisał:

Więc teraz trzeba jakoś zrobić żeby loopowało lore przedmiotu "Koszt: (i tutaj ten loop-number musi zloopować)

ale nadal nie wiem o co ci chodzi, chyba mylisz pojęcia - zloopować znaczy zapętlić, ale co ty chcesz zapętlać w liczbie np. 100?

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317811
Udostępnij na innych stronach

  • 0

Znaczy chodzi mi o to żeby Zmienną {_z} była liczba po "Koszt: *i tutaj ta liczba*"
Czyli Przykładowo jest Miecz:
Nazwa: &6Mieczyk
1 Linijka lore: &6Fajny Mieczyk
2 Linijka lore: &6Pozdrawiam
3 Linijka lore: &2Koszt: &6100

i żeby ten Koszt wchodził do zmiennej {_z} (Nie robić tego że 3th line of lore bo różnie bywa w której to linijce będzie) 

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317814
Udostępnij na innych stronach

  • 0

Ostatecznie jakoś sobie z tym poradziłem. Tylko teraz jak tak przemyślałem sprawę to ogarnąłem, że nie ma 2 strony w targach w razie gdyby było wystawionych więcej niż 53 targi :/ (Gui ma 53 sloty, nie pokazywałoby wszystkich targów także potrzebna mi druga strona targów. Wiesz może jak to przerobić?

 

command /targ [<player>]:
    usage: &4Ten gracz jest offline!
    trigger:
        if arg-1 is not set:
            open chest inventory with 6 rows named "&9&lTargi graczy" to player
            wait 1 tick
            delete {targ::*}
            delete {targ1::*}
            loop all players:
                set {_sajz} to size of {targ.itemy.%loop-player%::*}
                if {_sajz} is bigger than 0:
                    if loop-player don't have permission "essentials.fly":
                        add "%loop-player%" to {targ::*}
            loop all players:
                set {_sajz} to size of {targ.itemy.%loop-player%::*}
                if {_sajz} is bigger than 0:
                    if "%loop-player%" is "Szymonjjay":
                        add "%loop-player%" to {targ1::*}
                    if loop-player have permission "essentials.fly":
                        if "%loop-player%" is not "Szymonjjay":
                            add "%loop-player%" to {targ1::*}
            loop {targ1::*}:
                set player's current inventory's slot loop-index parsed as integer -1 to {@TargItemWeteranILegenda} named "&9&l%loop-value%" with lore "&8Wystawione:&7 %size of {targ.itemy.%loop-value%::*}%/53"
            set {_sot} to "%size of {targ1::*}%" parsed as integer
            loop {targ::*}:
                set player's current inventory's slot loop-index parsed as integer -1 +{_sot} to {@TargItemGracz} named "&c&l%loop-value%" with lore "&8Wystawione:&7 %size of {targ.itemy.%loop-value%::*}%/53"
        if arg-1 is set:
            open chest inventory with 6 rows named "&9&lTarg&c&l %arg-1%" to player
            wait 1 tick
            if "%{przegladany.%player%}%" is not "%arg-1%":
                set {przegladany.%player%} to "%arg-1%"
            set player's current inventory's slot 53 to arrow named "&9Powrót"
            loop {targ.itemy.%arg-1%::*}:
                if "%{targ.koszty.%arg-1%::%loop-index%}%" is "<none>" or "" or " ":
                    set {targ.koszty.%arg-1%::%loop-index%} to 0
                if "%lore of {targ.itemy.%arg-1%::%loop-index%}%" is "":
                    set player's current inventory's slot loop-index parsed as integer -1 to loop-value with lore (lore of loop-value)
                else:
                    set player's current inventory's slot loop-index parsed as integer -1 to loop-value with lore (lore of loop-value)
            stop

 

Odnośnik do komentarza
https://skript.pl/temat/51793-przerobienie-fragmentu-kodu/#findComment-317827
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ę...