Hejka!
Miło mi, że czytasz mój pierwszy poradnik dotyczący pięknego pluginu Skript. Zatem usiądź wygodnie i miłego czytania.
Co to "parsed"?
Słowo parsed według mojego rozumowania to jest użycie siły brutalnej w skrypcie by tekst zaimplementować np na liczbę. To jest tylko mały przykład.
Kiedy używamy?
Używamy tego, gdy musimy przekonwertować zmienną (tekst) do jakiegoś typu. Przykład? Mamy listę graczy w GUI, którą otwieramy komendą /gracze.
command /gracze:
trigger:
open chest with 6 rows named "Gracze Online" to players
wait 2 tick
set {_i} to 0
loop all players:
if {_i} is smaller than 53:
set player's current inventory's slot {_i} to paper named "%player%"
add 1 to {_i}
else:
exit
stop
Załóżmy, że chcemy danego gracza wyrzucić z serwera, jeżeli mamy do tego uprawnienia.
on inventory click:
if "%inventory name of player's current inventory%" is "Gracze Online":
if slot is smaller than 0:
stop
cancel event
if player's current inventory's slot slot is paper:
if player has permission "wyrzuc.gracza":
set {_player} to name of player's current inventory's slot slot
kick {_player} due to "&6Zostales wyrzucony z serwera"
send "&6Wyrzuciles gracza %{_player}% z serwera."
stop
stop
Kod jak kod. Lecz danego gracza nie wyrzuci z serwera, bo w dokumentacji skript jest coś takiego:
kick %players% [(by reason of|because [of]|on account of|due to) %text%]
mamy "kick PLAYER" a nasza zmienna {_player} jest aktualnie text'em. więc musimy nasz tekst przekonwertować na playera. A jak to zrobić? Prosta sprawdza zmieniamy daną linijkę na taką:
set {_player} to name of player's current inventory's slot slot parsed as player
I nasz kod zaczął działać.
Kolejny przykład? Nie ma sprawy!
Chcemy zenchantować nasz item w ręce na wydajność z losową liczbą.
Pewnie większość z was by tak zrobiła:
command /test:
trigger:
enchant player's tool with efficiency random integer between 1 and 5
I reload wywala błąd. I teraz główkowanie co zrobiłem źle?
Otóż w skript jest takie coś:
enchant %~item stack% with %enchantment types%
podaliśmy item stack jako player's tool lecz skript nie uznał naszego enchantment types i dlatego musimy jakoś przekonwertować dany kod.
Kolejna prosta sprawa która wygląda mniej więcej tak:
command /test:
trigger:
set {_ench} to "efficiency %random integer between 1 and 5%" parsed as enchantment type
enchant player's tool with {_ench}
Zrobiliśmy zmienną tymczasową która posiada w sobie tekst, który jest następnie konwertowany na enchantment type, który już effect enchant przyjmie jako prawidłowy
Lista parsedów:
W dokumentacji skryptu jasno jest napisane:
text% parsed as (%*type%|"<.*>")
Czyli text możemy zaimplementować na dowolny typ. Wszystkie typy można znaleźć również w dokumentacji, ale jak już o to prosicie to proszę:
Życzę udanych skryptów i pozytywnych opinii !
Pozdrawiam #Knugi