xAxee 1968 Opublikowano 24 października 2019 Udostępnij Opublikowano 24 października 2019 (edytowane) Skript-mirror W tym poradniku przedstawię wam jak tworzyć własne efekty, wyrażenia i warunki za pomocą pięknego dodatku skript-mirror oraz jego forka skript-reflect Ogólny wzór składni [text] Opcjonalne (text) Wymagane text1|text2 albo %text% typ zmiennej np Składnia [(xAxee|Ax)] [the] (plugin|plg) (man|manager) (disable|off) (plugin|plg) %string% Moze jedynie zostać: plg man disable plg "Ticker" Albo: xAxee the plugin manager disable plugin "Ticker" Uwaga ! Jeżeli na początku damy local to dany efekt / wyrażenie / warunek będzie mógł być wykorzystany tylko w skrypcie w którym się znajduje ! ! Efekty / wyrażenia / warunki muszą być nad wykonywanym kodem lub w innym skrypcie ! ! Do podanych argumentów zwracamy się expr-<numer argumentu> ! ! Efekty / wyrażenia / warunki mają małą siłę i zostaną "pokonane" jeżeli jakiś dodatek posiada takie wyrażenie, dlatego dobrze gdy mają przedrostek ! Efekty (Effects) (Coś co wykonuje jakiś kod) dealy effect #Zatrzymuje kod w efekcie i dalszy kod w skrypcie continue #Wznawia zatrzymany kod Najpierw musimy zdefiniować składnie naszego wyrażenia [local] effect <składnia>: parse: #Opcjonalnie #kod (domyślne ustawiania zmiennyc) trigger: #Wymagane #kod np: effect [AxTops] (clear|reset) all [top] points: trigger: loop {points::*}: set {points::%loop-index%} to 0 Taki efekt możemy użyć np tak: command /pointsreset: permission: * trigger: reset all top points send "&7Zresetowanie" stop Warunki (condition) (Warunki wykorzystujemy w ifach) Również najpierw musimy zdefiniować wyrażenie [local] condition <składnia>: check: #wykonywany kod continue ! Continue dajemy wtedy gdy kod spełnił warunek i kod za ifem może się wykonać (czyli zwróci true) ! np: condition [AxTops] %player% can buy (for|with) %number%: check: if {points::%expr-1%} >= expr-2: continue Możemy to wykorzystać jako: command /kupmiecz [<text>]: trigger: if player can buy for 200: add diamond sword to player remove 200 from player's points send "poprawnie zakupiono!" stop send "Nie masz tyle punktow" Wyrażenia (expression) (Coś co zwraca wartość) Definiujemy [plural] [local] expression <składnia>: parse: #Opcjonalnie #kod... get: #Opcjonalnie #kod... return... add: #Opcjonalnie #kod... set: #Opcjonalnie #kod... remove: #Opcjonalnie #kod... remove all: #Opcjonalnie #kod... delete: #Opcjonalnie #kod... reset: #Opcjonalnie #kod... ! W return dajemy wartość którą ma zwrócić wyrażenie (tak jak w funkcji) ! ! Aby pobrać zmienianą wartość w set/add/remove należy wpisać change value ! ! Return type to typ zwracanej wartości ! ! przedrostek pluar określa zwracaną wartość jako pojedyńczą ! np: plural expression [AxTops] %player%['s] points: return type: number get: if {points::%expr-1%} is not set: return 0 return {points::%expr-1%} add: add change value to {points::%expr-1%} set: set {points::%expr-1%} to change value remove: remove change value from {points::%expr-1%} delete: delete {points::%expr-1%} reset: set {points::%expr-1%} to 0 Możemy to wykorzystać jako: command /points [<player>] [<text>] [<number>]: permission: * trigger: if arg 2 is "reset" or "clear": reset arg-1's points send "&7Zresetowanie" stop if arg 2 is "get": send "&7Gracz %arg 1% posiada &a%arg 1's points% &7punktow" stop if arg 3 is set: if arg 2 is "set": set AxTops arg 1's points to arg 3 send "&7Ustawiono punkty" if arg 2 is "add": add arg 3 to AxTops arg 1's points send "&7Dodano punkty" if arg 2 is "remove": remove arg 3 from AxTops arg 1's points send "&7Zabrano punkty" Wszystko razem Spoiler plural expression [AxTops] %player%['s] points: return type: number get: if {points::%expr-1%} is not set: return 0 return {points::%expr-1%} add: add change value to {points::%expr-1%} set: set {points::%expr-1%} to change value remove: remove change value from {points::%expr-1%} delete: delete {points::%expr-1%} reset: set {points::%expr-1%} to 0 condition [AxTops] %player% can buy for %number%: check: if {points::%expr-1%} >= expr-2: continue command /points [<text>] [<player>] [<number>]: trigger: if arg 3 is set: if arg 1 is "set": set AxTops arg 2's points to arg 3 send "&7Ustawiono punkty" if arg 1 is "add": add arg 3 to AxTops arg 2's points send "&7Dodano punkty" if arg 1 is "remove": remove arg 3 from AxTops arg 2's points send "&7Zabrano punkty" if arg 2 is set: if arg 1 is "reset": reset AxTops arg 2's points send "&7Zresetowano punkty" if arg 1 is "delete": delete AxTops arg 2's points send "&7Usunieto punkty" if arg 1 is "get": send "%AxTops arg 2's points%" command /kup: trigger: if AxTops player can buy for 200: add diamond sword to player remove 200 from AxTops player's points send "&7Zakupiono" else: send "&7Nie stac cie!" Skript-reflect Jest to fork skript-mirrora który poprawia wiele rzeczy oraz dodaje np własne wydarzenia (eventy) Zdarzenia (Events) Definiujemy custom event "<nazwa>": pattern: <skladnia> event-values: <zmienne które można pobrać z eventu> check: #kod który wykona się przed wywołaniem eventu w skripcie continue ! Możemy stworzyć event który nie ma w sobie żadnych zmiennych, staczy że usuniemy event-values ! np: custom event "onPlayerBuy": pattern: buy event-values: player, number check: continue aby event zadziałał trzeba jeszcze go kiedyś wywoływać, od tego mamy efekt call event %event% Jednak musimy jeszcze jakoś pobrać event (jako typ) oraz podać mu argumenty które będzie można wykorzystać w evencie, od tego mamy expresje: new custom event %string% [using %objects%] aby podać zmienne które będziemy używać w evencie, musimy je najpierw zapisać do listy a potem podać w wyrażeniu Przykład z użyciem gracza oraz jakiejś liczby set {_list::player} to player set {_list::number} to arg-1 new custom event "onPlayerBuy" using {_list::*} No i brawo! Nasz event jest gotowy do nasłuchiwania Całość w przykładowej komendzie powinna wyglądać tak: #Rejestrujemy event custom event "onPlayerBuy": pattern: buy event-values: player, number check: continue command /kilof [<number>]: trigger: #jakis tam kod od kupowania #Podajemy argumenty oraz pobieramy event set {_list::player} to player set {_list::number} to arg-1 set {_event} to new custom event "onPlayerBuy" using {_list::*} #Wywołujemy event call event {_event} #Nasłuchujemy eventu on buy: send "&7Brawo! udalo ci sie cos kupic! za cene &6%event-number%" to event-player Dzięki za uwagę no i wszelkie błędy / pomysły proszę zgłaszać Pozdrawiam Aksik Edytowane 28 listopada 2020 przez xAxee Dopełnienie poradnika bludis, Peridot, knugi i 2 innych 2 3 Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/ Udostępnij na innych stronach Więcej opcji udostępniania...
3meraldK 100 Opublikowano 24 października 2019 Udostępnij Opublikowano 24 października 2019 polecam tego pana, robi dobre poradniki do najlepszego dodatku Skript xAxee 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/#findComment-226996 Udostępnij na innych stronach Więcej opcji udostępniania...
PanMaruda 624 Opublikowano 23 sierpnia 2020 Udostępnij Opublikowano 23 sierpnia 2020 Super poradnik, twój post jest jednym z nielicznych które kiedyś uświadomiły mi jak przydatnym dodatkiem jest skript-mirror. Ostatnio przeglądając dokumentacje trafiłem na nowy dodatek - skript-reflect (jak się okazało jest to kontynuacja skript-mirrora). Dodaje wsparcie dla najnowszych wersji minecrafta, asynchronicznych eventów i kodu oraz nowych wersji javy. Ale co najważniejsze dla tego posta - można w nim tworzyć customowe eventy - myślę że warto dodać je do poradnika @xAxee xAxee 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/#findComment-257953 Udostępnij na innych stronach Więcej opcji udostępniania...
xAxee 1968 Opublikowano 23 sierpnia 2020 Autor Udostępnij Opublikowano 23 sierpnia 2020 3 godziny temu, PanMaruda napisał: Super poradnik, twój post jest jednym z nielicznych które kiedyś uświadomiły mi jak przydatnym dodatkiem jest skript-mirror. Ostatnio przeglądając dokumentacje trafiłem na nowy dodatek - skript-reflect (jak się okazało jest to kontynuacja skript-mirrora). Dodaje wsparcie dla najnowszych wersji minecrafta, asynchronicznych eventów i kodu oraz nowych wersji javy. Ale co najważniejsze dla tego posta - można w nim tworzyć customowe eventy - myślę że warto dodać je do poradnika @xAxee Dzięki Jasne jak tylko ogarnę uzupełnię poradnik Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/#findComment-257964 Udostępnij na innych stronach Więcej opcji udostępniania...
Glicz 246 Opublikowano 24 listopada 2020 Udostępnij Opublikowano 24 listopada 2020 jak mogę dodać wymaganą zmienną do effectu? Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/#findComment-269686 Udostępnij na innych stronach Więcej opcji udostępniania...
Kormic 1951 Opublikowano 24 listopada 2020 Udostępnij Opublikowano 24 listopada 2020 Godzinę temu, Michix napisał: jak mogę dodać wymaganą zmienną do effectu? Jedynie zrozumiałem, że chcesz, aby bez ustawionej zmiennej efekt się nie wykonał. Jeżeli trafiłem, to w triggerze sprawdź to prostym conditionalem. Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/#findComment-269690 Udostępnij na innych stronach Więcej opcji udostępniania...
Glicz 246 Opublikowano 24 listopada 2020 Udostępnij Opublikowano 24 listopada 2020 5 minut temu, Kormic napisał: Jedynie zrozumiałem, że chcesz, aby bez ustawionej zmiennej efekt się nie wykonał. Jeżeli trafiłem, to w triggerze sprawdź to prostym conditionalem. Chodzi mi o to, żeby dodać zmienna, bo %text%, %player% działa, a zaś %variable% nie dziala Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/#findComment-269691 Udostępnij na innych stronach Więcej opcji udostępniania...
Kormic 1951 Opublikowano 24 listopada 2020 Udostępnij Opublikowano 24 listopada 2020 Teraz, Michix napisał: Chodzi mi o to, żeby dodać zmienna, bo %text%, %player% działa, a zaś %variable% nie dziala A czy istnieje typ wartości 'variable'? Ty masz się po prostu dostosować do typu wymaganej wartości. Nieważne czy podajesz zwykłą liczbę czy też zmienną. Ważne jest to czy zmienna jest typu 'number' jeżeli jest wymagane w efekcie podanie wartości typu 'number'. Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/#findComment-269694 Udostępnij na innych stronach Więcej opcji udostępniania...
PanMaruda 624 Opublikowano 24 listopada 2020 Udostępnij Opublikowano 24 listopada 2020 przecież jak wstawisz zmienną w miejscu argumentu tekstowego %string% i ona będzie tekstem to i tak zadziała ale jeżeli koniecznie chcesz mieć tylko zmienną to trzeba: zaimportować sobie ze skripta typ Variable w argumencie podać object w triggerze efektu sprawdzić czy podany objekt jest zmienną (coś w tym stylu): raw expr is instance of Variable knugi 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/#findComment-269695 Udostępnij na innych stronach Więcej opcji udostępniania...
xAxee 1968 Opublikowano 28 listopada 2020 Autor Udostępnij Opublikowano 28 listopada 2020 Aktualizacja Nieznacznie poprawiłem oraz dopełniłem poradnik o eventy! PanMaruda 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/35344-skript-reflect-w%C5%82asne-efekty-warunki-wyra%C5%BCenia-i-eventy/#findComment-270302 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ą.