Chciałbym zrobić skrypt, który ulepsza przedmioty za pomocą zmiennej, żeby nie wklejać tego samego tysiące razy, jednak występuje podany w tytule błąd.
# Komenda odpowiadająca za tryb ulepszeń #
command /upgrade-mode [<player>] [<text>] [<number>] [<number>] [<text>]:
executable by: console
trigger:
set {upgrading.%arg 1%} to true
set {item.%arg 1%} to arg 2
set {enchlvl.%arg 1%} to arg 3
set {percent.%arg 1%} to arg 4*100
set {enchantment.%arg 1%} to arg 5
send {@upgrading}, {@prompt} and {@what2do} to arg 1
# Komenda odpowiadająca za system ulepszeń #
command /upgrade-item [<player>] [<boolean>]:
executable by: console
trigger:
if arg 2 is true:
set {_enchant-lvl.%arg 1%} to "%{enchantment.%arg 1%}% %level of %{enchantment.%arg 1%}% of arg 1's tool + %{enchlvl.%arg 1%}% %" parsed as enchantment type
enchant arg 1's tool with {_enchant-lvl.%arg 1%}
send {@success} to arg 1
stop
else:
set {_enchant-lvl.%arg 1%} to "%{enchantment.%arg 1%}% %level of %{enchantment.%arg 1%}% of arg 1's tool - %{enchlvl.%arg 1%}% %" parsed as enchantment type
enchant arg 1's tool with {_enchant-lvl.%arg 1%}
send {@fail} to arg 1
stop
Gdzie popełniłem błąd? Nie jest to cały kod, ponieważ chcę go użyć na swoim serwerze (obecnie w trakcie prac), ale nie chcę też, żeby 100 innych serwerów używało mojego skryptu.
Pierwsza komenda "włącza" tryb ulepszeń, który przy kliknięciu ulepszanego przedmiotu wywołuje komendę /upgrade-item. W zależności od tego, czy liczba (procent ustalany przy kliknięciu przedmiotu, który włącza tryb ulepszeń) jest pomiędzy 1 a {percent.%player%}, ulepszenie jest wywoływane (np. /upgrade-item VaporeonPL true). Błąd występował również, gdy wkleiłem to "siłą" w event odpowiadający za kliknięcie ulepszanego przedmiotu, więc to wykluczyłem. Podejrzewam, że jest to błąd ze zmiennymi, ale jeśli ma to wyglądać tak:
if level of protection of player's tool is 1:
enchant player's tool with protection 2
if level of protection of player's tool is 2:
enchant player's tool with protection 3
if level of protection of player's tool is 3:
enchant player's tool with protection 4
if level of protection of player's tool is 4:
enchant player's tool with protection 5
i tak dalej
to lepiej niech wyskakuje błąd, który (miejmy nadzieję) jest naprawialny.
Gdyby potrzebna była reszta kodu, zapraszam na PW, tam go podeślę.