Skocz do zawartości
  • 0

Błąd w skrypcie


Pytanie

12 godzin temu, PanMaruda napisał:

szczerze to nie mam pojęcia czy to co on zrobił zadziała, ale do replace() będzie ci potrzebny skript-reflect, a do ostatniej linijki musisz dopisać na końcu 'from inventory of player'

Zadziałało :D pomogło dodanie skript-reflect oraz dopisanie 'from inventory of player' na końcu :) 

Jednakże skrypt ładuje się poprawnie, lecz wyskakują pewne komunikaty, których niezbyt (jeszcze, mam nadzieję) rozumiem :/ i nie wiem czy zostawić to tak, czy jednak trzeba by coś poprawić w tym kodzie

[11:41:30 WARN]: uncoloured the name of the tool of the player is already a text, so you should not put it in one (e.g. uncoloured the name of the tool of the player instead of "%uncoloured the name of the tool of the player%") (gmcbanknot.sk, line 19: set {_kwota} to "%uncoloured name of player's tool%".replace("Banknot", "").replace("(", "").replace(")", "").replace("$", "")')
[11:41:30 WARN]: the name of the tool of the player is already a text, so you should not put it in one (e.g. the name of the tool of the player instead of "%the name of the tool of the player%") (gmcbanknot.sk, line 21: remove 1 paper named "%name of player's tool%" with lore "%lore of player's tool%" from inventory of player')

 

Nieaktywny

Wydzielam do nowego tematu.

Odnośnik do komentarza
https://skript.pl/temat/43373-b%C5%82%C4%85d-w-skrypcie/
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

to są warny - ostrzeżenia - nie wpływają na działanie a jedynie informują o nieznaczącym fakcie

w skrócie tłumacząc - niepotrzebnie parsujemy zmienną na tekst bo ona i tak zwraca tekst

wyrażenie 'name of tool of player' ma narzucony typ - zawsze zwraca tekst - a w kodzie powyżej zostało ono dodatkowo wstawione do tekstu (poprzez cudzysłowy i procenty) i przyrównane z tekstem - skript daje ci takiego warna dlatego że jest to zbędny proces, który tylko niepotrzebnie wykorzystuje procesor.

 

Rozwiązanie? Wystarczy usunąć nawiasy i procenty w tych wyrażeniach, które są wyszczególnione w warnie.

 

 

 

Nieaktywny

Dodaję do wydzielonego tematu.

Odnośnik do komentarza
https://skript.pl/temat/43373-b%C5%82%C4%85d-w-skrypcie/#findComment-271352
Udostępnij na innych stronach

  • 0
W dniu 4.12.2020 o 13:11, PanMaruda napisał:

Rozwiązanie? Wystarczy usunąć nawiasy i procenty w tych wyrażeniach, które są wyszczególnione w warnie.

Zrobiłem tak i skrypt nie spełnia swojego działania. Nie pokazuje warnów, ale za to nie dodaje wypłaconej kwoty na konto gracza, a gdy dodaje te %% to normalnie działa lecz pokazuje dalej to samo:  

W dniu 4.12.2020 o 12:43, ProfWiT napisał:

[11:41:30 WARN]: uncoloured the name of the tool of the player is already a text, so you should not put it in one (e.g. uncoloured the name of the tool of the player instead of "%uncoloured the name of the tool of the player%") (gmcbanknot.sk, line 19: set {_kwota} to "%uncoloured name of player's tool%".replace("Banknot", "").replace("(", "").replace(")", "").replace("$", "")')
[11:41:30 WARN]: the name of the tool of the player is already a text, so you should not put it in one (e.g. the name of the tool of the player instead of "%the name of the tool of the player%") (gmcbanknot.sk, line 21: remove 1 paper named "%name of player's tool%" with lore "%lore of player's tool%" from inventory of player')

 

Może to być przyczyna braku jakiegoś dodatku do sk? 

Odnośnik do komentarza
https://skript.pl/temat/43373-b%C5%82%C4%85d-w-skrypcie/#findComment-271877
Udostępnij na innych stronach

  • 0
9 minut temu, ProfWiT napisał:

Zrobiłem tak i skrypt nie spełnia swojego działania. Nie pokazuje warnów, ale za to nie dodaje wypłaconej kwoty na konto gracza, a gdy dodaje te %% to normalnie działa lecz pokazuje dalej to samo:  

Może to być przyczyna braku jakiegoś dodatku do sk? 

Według konwencji skript-reflecta jeżeli używamy jakiegoś wyrażenia zawierającego co najmniej dwa słowa i operujemy na nim za pomocą metod (funkcji), wtedy te wyrażenie należy dać w nawias.

# Zamiast:
uncoloured name of player's tool.replace() i tak dalej...

# Powinno być:
(uncoloured name of player's tool).replace()

Tak samo spróbuj w przypadku drugiego warna.

Wiadomo, konwencja to konwencja, ale w tym przypadku może mieć wpływ na działanie kodu.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/43373-b%C5%82%C4%85d-w-skrypcie/#findComment-271881
Udostępnij na innych stronach

  • 0

ugh... poprosić moderatora żeby wydzielił cały twój wątek do nowego, to wziął przeniósł połowę, a drugą zostawił w tamtym temacie...
 

dobra, skoro działa ci taki zapis, to zróbmy trochę inaczej żeby warnów nie było
i jeszcze taki błąd zauważyłem w swojej wiadomości wyżej - chodziło mi o cudzysłowy i procenty a nie nawiasy - ale teraz już mniejsza o to:

set {_} to uncoloured name of player's tool
set {_kwota} to {_}.replace("Banknot", "").replace("(", "").replace(")", "").replace("$", "")')
remove 1 paper (named name of player's tool) with lore "%lore of player's tool%" from inventory of player')

mam nadzieję że sobie to wstawisz jak należy do tamtego kodu - bo ja już nawet nie wiem w jakim to było temacie
gdyby w razie coś nie działało (np. błąd z lore) to spróbuj zmienić 

"%lore of player's tool%"

na

(lore of player's tool)

jak to też nie pomoże to pisz 

Odnośnik do komentarza
https://skript.pl/temat/43373-b%C5%82%C4%85d-w-skrypcie/#findComment-271883
Udostępnij na innych stronach

  • 0
52 minuty temu, PanMaruda napisał:

mam nadzieję że sobie to wstawisz jak należy do tamtego kodu - bo ja już nawet nie wiem w jakim to było temacie

Dodaje cały kod:

command /Banknot [<number>]:
	trigger:
		if arg 1 is set:
			if arg 1 > 0:
				if player's balance >= arg 1:
					remove arg 1 from player's balance
					give paper named "&6&lBanknot &7(&f%arg 1%&a$&7)" with lore "&7Wyplacil: &f%player%" to player
					send "&8> &6Wypłacono &f%arg 1%&2$&6!"
					stop
				send "&8> &6Nie masz tylu pieniedzy! :/"
				stop
			send "&8> &6Kwota musi być wieksza od zera!"
			stop
		send "&8> &6Podaj kwotę jaką chcesz wypłacić!"
		stop

on rightclick with paper:
	if name of player's tool contain "&6&lBanknot":
		send "&8> &6Wpłacono na konto: %name of player's tool%&6!"
		set {_} to uncoloured name of player's tool
		set {_kwota} to {_}.replace("Banknot", "").replace("(", "").replace(")", "").replace("$", "")')
		add ({_kwota} parsed as number) to player's balance
		remove 1 paper (named name of player's tool) with lore (lore of player's tool) from inventory of player')

Zmieniłem (tak jak wyżej w kodzie) i niestety dalej pokazuje błędy, tym razem takie:

[11:26:37 ERROR]: Can't understand this expression: '{_}.replace("Banknot", "").replace("(", "").replace(")", "").replace("$", "")')' (gmcbanknot.sk, line 21: set {_kwota} to {_}.replace("Banknot", "").replace("(", "").replace(")", "").replace("$", "")')')
[11:26:37 ERROR]: Can't understand this condition/effect: remove 1 paper (named name of player's tool) with lore (lore of player's tool) from inventory of player') (gmcbanknot.sk, line 23: remove 1 paper (named name of player's tool) with lore (lore of player's tool) from inventory of player')')

Głupio mi że tak męczę z tym tematem ale jestem ciekaw jak to rozwiązać 😅

 

Odnośnik do komentarza
https://skript.pl/temat/43373-b%C5%82%C4%85d-w-skrypcie/#findComment-271921
Udostępnij na innych stronach

  • 1
1 minutę temu, ProfWiT napisał:

remove 1 paper (named name of player's tool) with lore (lore of player's tool) from inventory of player')

Spróbuj wyjąć słowo named z nawiasu, tj. daj przed nawias

Odnośnik do komentarza
https://skript.pl/temat/43373-b%C5%82%C4%85d-w-skrypcie/#findComment-271923
Udostępnij na innych stronach

  • 1

tak jak wyżej - powinno pomóc

co do pierwszego błędu zmień tą linijkę na takie:

set {_kwota} to uncoloured name of player's tool
replace all "Banknot" with "" in {_kwota}
replace all ")" with "" in {_kwota}
replace all "(" with "" in {_kwota}
replace all "$" with "" in {_kwota}

 

jak coś jeszcze będzie nie tak to podaj wersję skripta, serwera i silnik serwera.

Odnośnik do komentarza
https://skript.pl/temat/43373-b%C5%82%C4%85d-w-skrypcie/#findComment-271931
Udostępnij na innych stronach

  • 0
14 minut temu, CoFFeIN04 napisał:

Spróbuj wyjąć słowo named z nawiasu, tj. daj przed nawias

pomogło, plus na końcu było ') co również usunąłem i zlikwidowało błąd :) 

9 minut temu, PanMaruda napisał:

set {_kwota} to uncoloured name of player's tool
replace all "Banknot" with "" in {_kwota}
replace all ")" with "" in {_kwota}
replace all "(" with "" in {_kwota}
replace all "$" with "" in {_kwota}

 

i to również naprawiło błąd :D 

Dzięki wielkie za pomoc <3 +1 do umiejętności w pisaniu sk C:

Odnośnik do komentarza
https://skript.pl/temat/43373-b%C5%82%C4%85d-w-skrypcie/#findComment-271941
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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