Skocz do zawartości
  • 0

Problem ze sprawdzaniem enchantu i listami.


sworip

Pytanie

Zacząłem nie dawno bawić się pętlami oraz listami jednak natknąłem błąd, którego nie potrafię naprawić. Próbowałem już dodawać % % usuwać je tak samo jak " " w różnych miejscach ale dalej nie działa :/ 

Potrzebuję naprawić ten kod:

 

Z tego co sprawdzałem osobiście błąd jest w sprawdzaniu enchantu (linijka 15) a dokładniej fragmentu z listą. Myślę że to w niej może być problem. Po zamienieniu tego fragmentu na jakiś enchant wpisany ręcznie działa poprawnie.

Będę wdzięczny za poprawienie kodu i wytłumaczenie błędu. 

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

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
if level of {testList::%{_n}%} of {_item} is {_var}:

To do 15 linii spróbuj

Problem jest w tym że skript nie zrozumiał twojej lini - zawsze możesz ustawić najpierw ustawić zmienna na sam enchant, a potem jego lvl tzn:

set {x} to sharpness 
set level of {x} to 5

(Nie sprawdzane, ale podejrzewam że tak to działa 🤨)

A no, jak to nie zadziała to zrob to:

set {_ench} to "%{testList::%{_n}%}% %{_var}%" parsed as enchantment type

I sprawdzaj czy Item jest zenchantowany na {_ench}

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

  • 0
18 godzin temu, W1tt napisał:
if level of {testList::%{_n}%} of {_item} is {_var}:

To do 15 linii spróbuj

Problem jest w tym że skript nie zrozumiał twojej lini - zawsze możesz ustawić najpierw ustawić zmienna na sam enchant, a potem jego lvl tzn:

set {x} to sharpness 
set level of {x} to 5

(Nie sprawdzane, ale podejrzewam że tak to działa 🤨)

A no, jak to nie zadziała to zrob to:

set {_ench} to "%{testList::%{_n}%}% %{_var}%" parsed as enchantment type

I sprawdzaj czy Item jest zenchantowany na {_ench}

Najbliżej byłeś z tym: 

set {x} to sharpness 
set level of {x} to 5

natomiast w dalszym ciągu nie działa. {x} przyjmuje tylko nazwę enchantu, druga linijka jakby nie działała :/ 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Trochę się pobawiłem u siebie, teraz dobrze?

on load:
    set {testList::*} to unbreaking

function guiBlocks(P: player, t: text, item: item):
    if {_t} = "disenchant":
        open chest inventory with 3 rows named "test" to {_p}
        wait 1 tick
        set {_p}'s current inventory's slot 4 to {_item}
        set {_inv} to 10
        set {_n} to 1
        if {_item} is any helmet:
            if {_item} is enchanted with {testList::%{_n}%}:
                set {_var} to 5
                loop 5 times:
                    if level of {testList::%{_n}%} of {_item} is {_var}:
                        set {_p}'s current inventory's slot {_inv} to enchanted book named "%{testList::%{_n}%}% %{_var}%"
                        add 1 to {_n}
                        add 1 to {_inv}
                        exit loop
                    else:
                        remove 1 from {_var}
            else:
                add 1 to {_n}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 godzinę temu, W1tt napisał:

tylko umożliwia kopiowanie itemków z gui

no chyba w format slocie 😆

 

on load:
    set {testList::*} to unbreaking

function guiBlocks(P: player, t: text, item: item):
  if {_t} = "disenchant":
    #tworzenie nowego inventory
    set {_chest} to chest inventory named "test" with 3 rows
    #ustawianie slotu inventory (a nie jak wczesniej otwartemu inventory gracza)
    set {_chest}'s slot 4 to {_item}
    set {_inv} to 10
    loop {testList::*}:
      #sprawdzanie enchantu
      if {_item} is enchanted with loop-value:
        #ustawienie zmiennej na level enchantu
        set {_lvl} to level of loop-value of {_item}
        #powtarzanie tyle razy ile wynosi level enchantu
        loop {_lvl} times:
          set {_chest}'s slot {_inv} to enchanted book named "%loop-value-1% %loop-number%"
          add 1 to {_inv}

    #otwieranie inventory graczowi
    open {_chest} to {_p}

Ogólnie poprawiłem ci to troche i (mam nadzieje) zrobiłem tak jaki miałeś plan jeżeli jakoś inaczej to napisz to zmienie
Gui zmieniłem tak aby najpierw było tworzone inventory a dopiero później było otwierane graczowi.

Błąd był w tym enchanted with {testList::%{_n}%} {_var}: ponieważ nie możesz z dwóch zmiennych zrobić od tak typu czyli z {testList::%{_n}%} {_var} zrobić enchantment type

 

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