Skocz do zawartości
  • 0

Odczytywanie z pliku .yml


Pytanie

Witam!
Otóż najpierw przedstawię mój kod:

command /awans:
	trigger:
		set {_poziom} to yaml value "Gornik.poziom" from file "gracz/%player%.yml"
		if {_poziom} = 1:
			set {_cena} to yaml value "Gornik.poziom2" from file "info/umiejetnosci.yml"
			if player has {_cena}:
				remove {_cena} from player's inventory
				send "Awansowałeś górnika."
				set yaml value "Gornik.poziom" from file "gracz/%player%.yml" to {_poziom}+1
				stop
			else:
				send "Nie posiadasz odpowiednich przedmiotow do awansu."
				stop


Zawartość pliku umiejetnosci.yml wygląda następująco:

Gornik:
  poziom2: diamond
  poziom3: 3 diamonds and 3 gold ingots
  poziom4: 4 diamonds and 4 gold ingots
  poziom5: 5 diamonds and 5 gold ingots


Po przeładowaniu skryptu nie wywala żadnych błędów, jednakże gdy wpisuje komendę /awans, na czacie wyskakuje komunikat "Nie posiadasz odpowiednich przedmiotow do awansu." mimo, iż w swoim ekwipunku posiadam diamenta.

Czy wie ktoś czym jest to spowodowane? 
Dopiero zaczynam swoją przygodę z plikami .yml, więc proszę o zrozumienie i wyjaśnienie co zrobiłem źle.
Z góry dziękuję!

Odnośnik do komentarza
https://skript.pl/temat/28120-odczytywanie-z-pliku-yml/
Udostępnij na innych stronach

7 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
W dniu 8.07.2018 o 15:55, LuckyPotato napisał:

set {_cena} to yaml value "Gornik.poziom2" from file "info/umiejetnosci.yml" parsed as item

 

Wyskakuje taki błąd: >> KLIK <<

Zawartość pliku .yml:

Gornik:
  poziom2: 15 diamonds and 3 iron ingots of unbreaking 10 named "&eSrebrna Moneta"

 

Edytowane przez nicku1
Nicku

Poprawiam cytat.

Notatka dodana przez Nicku

Odnośnik do komentarza
https://skript.pl/temat/28120-odczytywanie-z-pliku-yml/#findComment-186339
Udostępnij na innych stronach

  • 0
W dniu 8.07.2018 o 18:33, Kamill0s napisał:

Wyskakuje taki błąd: >> KLIK <<

Zawartość pliku .yml:


Gornik:
  poziom2: 15 diamonds and 3 iron ingots of unbreaking 10 named "&eSrebrna Moneta"

 

Muszę poprawić odpowiedź @LuckyPotato

 

set {_cena} to yaml value "Gornik.poziom2" from file "plugins/Skript/info/umiejetnosci.yml" parsed as item

Zmień sobie tylko ścieżkę (musi zaczynać się od plugins/)

Edytowane przez pandax
Odnośnik do komentarza
https://skript.pl/temat/28120-odczytywanie-z-pliku-yml/#findComment-186724
Udostępnij na innych stronach

  • 0

Wciąż występuje błąd:       >> KLIK <<

Zawartość pliku umiejetnosci.yml:

Gornik:
  poziom2:
    cena: 15 diamonds and 3 iron ingot of unbreaking 10 named "&e&lSrebrna Moneta" with lore "&8&m---------------|| &b&oRównowartość &3&o64 &b&obrązowych monet."

@knugi

Edytowane przez Kamill0s
Odnośnik do komentarza
https://skript.pl/temat/28120-odczytywanie-z-pliku-yml/#findComment-187410
Udostępnij na innych stronach

  • 0

Najlepiej jakbyś użył funkcje z moich skryptów, masz ja np w rozsypance, getitembytext i wtedy tylko za pomocą tej funkcji getujesz Item i możesz już go dać. Przerobiłem ten temat z itemem i yaml i lepszej metody na to nie ma na chwilę obecną.

Tutaj błąd wywodzi się z parsed as Item, najpierw ustaw zmienną na yaml value a później set {_item} to {_item} parsed as Item, błędu nie wywali ale też nie dostaniesz itemu :/

Odnośnik do komentarza
https://skript.pl/temat/28120-odczytywanie-z-pliku-yml/#findComment-187834
Udostępnij na innych stronach

  • 0
Godzinę temu, knugi napisał:

Najlepiej jakbyś użył funkcje z moich skryptów, masz ja np w rozsypance, getitembytext i wtedy tylko za pomocą tej funkcji getujesz Item i możesz już go dać. Przerobiłem ten temat z itemem i yaml i lepszej metody na to nie ma na chwilę obecną.

Tutaj błąd wywodzi się z parsed as Item, najpierw ustaw zmienną na yaml value a później set {_item} to {_item} parsed as Item, błędu nie wywali ale też nie dostaniesz itemu :/

@knugi
Użyłem Twojej funkcji, jednak nadal wywala błąd:  >> KLIK <<
Może coś zrobiłem źle?
(zabieranie diamentów z EQ działa, natomiast jeśli tym samym sposobem zrobię, aby usuwało mi z EQ żelazne sztabki z nazwą i lore, to wywala błąd)

Kod skryptu:

function umiejetnosci_cena(t: text) :: item:
	if "%{_t}%" contains "named":
		set {_item} to subtext of {_t} between index 0 to index of "named" in {_t} - 2
		set {_item} to {_item} parsed as item type
		if {_item} is not item type:
			return air
		if "%{_t}%" contains "with lore":
			set {_name} to subtext of {_t} between index index of "named" in {_t} + 7 to index of "with lore" in {_t} - 3
			set {_lore} to subtext of {_t} between index index of "with lore" in {_t} + 11 to length of {_t} - 1
			return ("%{_item}%" parsed as item) named coloured {_name} with lore coloured {_lore}
		else:
			set {_name} to subtext of {_t} between index index of "named" in {_t} + 7 to length of {_t} - 1
			return ("%{_item}%" parsed as item) named coloured {_name}
	if "%{_t}%" contains "with lore":
		set {_item} to subtext of {_t} between index 0 to index of "with lore" in {_t} - 2
		set {_lore} to subtext of {_t} between index length of "%{_item}%" + 13 to index length of {_t} - 1
		set {_item} to {_item} parsed as item type
		if {_item} is item type:
			return {_item} with lore coloured {_lore}
		return air
	set {_item} to {_t} parsed as item type
	if {_item} is item type:
		return {_item}
	return air
command /awans:
	trigger:
		give {@srebrna moneta} to player's inventory
		set {_cenaM} to yaml value "Gornik.poziom2.cenaM" from file "info/umiejetnosci.yml"
		set {_cenaD} to yaml value "Gornik.poziom2.cenaD" from file "info/umiejetnosci.yml"
		set {_cenaD} to {_cenaD} parsed as item type
		if player has {_cenaD}:
			if player has umiejetnosci_cena({_cenaM}):
				remove umiejetnosci_cena({_cenaM}) from player's inventory
				remove {_cenaD} from player's inventory
				send "Awansowales górnika"
			else:
				send "Nie posiadasz odpowiednich przedmiotow."
		else:
			send "Nie posiadasz odpowiednich przedmiotow."

 

Zawartość pliku umiejetnosci.yml:

Gornik:
  poziom2:
    cenaM: 3 iron ingot of unbreaking 10 named "&e&lSrebrna Moneta" with lore "&7test"
    cenaD: 15 diamonds

 

Edytowane przez Kamill0s
zaczepka
Odnośnik do komentarza
https://skript.pl/temat/28120-odczytywanie-z-pliku-yml/#findComment-187838
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ę...