Skocz do zawartości

Customowe składnie za pomocą skript-mirror'a


Rekomendowane odpowiedzi

Customowe składnie.

Przedstawię Wam praktyczne zastosowanie skript-mirrora w tworzeniu własnych składni. Poradnik od autora dodatku znajduję się tutaj. W sumie wzorowałem się na tym poradniku, więc tam też można oblukać :lulkappa:

Wymagania:

- Skript (niewymagane :kappa:)

- skript-mirror +v0.8.0 (do pobrania tutaj)

Wzór składni

 <test> - Element wymagany

[test] - Element niewymagany

(1|2) - Elementy do wyboru (1, albo 2)

 

Można takie coś łączyć. Wtedy wychodzi takie coś.

[ ( 1 | 2 ) ] - Opcjonalnie do wyboru 1 lub 2

 

Składnia w skript-mirror.

(expressions|expr)-<numer argumentu> - Argument. (takie coś jak mamy w /command [<text>] to mamy arg-1. Tutaj mamy expr-1)

%text% - Parametr. (może być %numer%, %world% etc. [to samo co w argumentach w komendzie])

Tworzenie efektu.

[local] effect <składnia>:
  parse: # niewymagane
    # kod
  trigger: # wymagane
    # kod

Teraz co tutaj się stało?

  1. [local] odpowiada za to, czy efekt'a będziemy mogli używać w innych skryptach. Jeżeli wpiszemy local to dany efekt będzie niedostępny w innych skryptach.
  2. <składnia> będzie nam odpowiadała za wygląd składni .
  3. parse to niewymagany element w którym można wpisać wartości zmiennych, które będą ustawione podczas wykonywania efektu.
  4. trigger to element, który będzie nam wykonywał nasz kod (tak samo jak przy komendzie).

Przykład:

effect hello [the] world:
  parse:
    set {_test} to "eldo"
  trigger:
    # {_test} ma wartość "eldo"
    broadcast {_test}

Teraz możemy użyć naszego efektu w skrypcie. Ten efekt wyśle nam do wszystkich wiadomość o treści "eldo".

Spoiler

command /tut:
    trigger:
        hello world
        heloo the world
        # ten kod ^ robi to samo

 

Zatrzymywanie kodu.

Przy użyciu effectu możemy ingerować (zatrzymywać/wznawiać) w kod.

effect Zatrzymaj mi kod pls:
    trigger:
        send "Zatrzymuje jakis kod!" to console
        delay the effect # To nam zatrzymuje kod.

        send "to juz sie nie wysle :((" to console

command /tut2:
    trigger:
        send "Witaj"
        Zatrzymaj mi kod pls # Nasz custom effect.
        send "To tez sie nie wysle :(("

Teraz pytanie 'czy to ma jakiś sens?'. Tak, ponieważ możemy zatrzymany kod wznowić.

Zastosowanie:

Spoiler

effect check %player%:
	trigger:
		delay the effect # To nadal zatrzymuje kod

		set {_player} to expr-1

		if {_player}'s name contains "a":
			send "Niestety, twój nick zawiera 'a'" to {_player}
			stop

		if world of {_player} is "skript":
			send "Twój swiat to skript, wiec nie mozesz tego uzyc!" to {_player}
			stop

		continue # Wznawia nam kod

command /DajOpa:
	trigger:

		check player # Nasz custom effect

		send "Lal, twoj swiat to nie skript, oraz twój nick nie zawiera litery 'a'"

Teraz CO TUTAJ SIĘ STAŁO!!?!?

Gdy wykonujemy komendę `DajOpa` to wykonywany jest nasz custom effect `check player`. Ten effect zatrzymuje kod wykonywany w komendzie `DajOpa` (coś takiego jak `wait x`) i jeżeli gracz spełnia dane warunki (jego świat to `skript`, oraz jego nick nie ma litery `a`) to wznawia kod wykonywany w komendzie `DajOpa` i wyśle nam wiadomość. Jeżeli gracz nie spełnia warunków, to nie wyśle wiadomości `Lal, twoj bla bla bla`.

 

Co do samego effectu. Został wykorzystany parametr %player%. Do zmiennej {_player} został przypisany expr-1 (czyli parametr 1, czyli %player%).

 

Tworzenie wyrażenia (expression'a).

[local] [plural] expression <składnia>:
  return type: <co ma zwracać (można używać tylko tego, co jest w skrypcie)> # Niewymagane
  parse:
    # kod, niewymagane
  get:
    # kod, niewymagane
  add:
    # kod, niewymagane
  set:
    # kod, niewymagane
  remove:
    # kod, niewymagane
  remove all:
    # kod, niewymagane
  delete:
    # kod, niewymagane
  reset:
    # kod, niewymagane

Wyjaśnienie.

1. [local] - Jego funkcja się nie zmienia.

2. [plural] - Określa to, czy wyrażenie możne zwrócić więcej niż jedną wartość.

3. get,add,set,remove,remove all,delete,reset - To raczej powinno być znane :kappa:.

Przykładowe użycie:

Wszystko jest tutaj: https://code.skript.pl/W7VTWiC7

 

Na szczęście to już koniec tego super poradnika skopiowanego od xAxee, ale cii. Mam nadzieje, że nie udało mi się kogokolwiek nauczyć przez to coś :nokappa:.

 

Edytowane przez TakiJakTy
TakiJakTy

Usuwam formatowanie.

Notatka dodana przez TakiJakTy

Odnośnik do komentarza
https://skript.pl/temat/35348-customowe-sk%C5%82adnie-za-pomoc%C4%85-skript-mirrora/
Udostępnij na innych stronach

  • Szifter zablokował(a) ten temat
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ę...