Skocz do zawartości

Rekomendowane odpowiedzi

SkArmorEvent

Witam serdecznie wszystkich skrypterów, chciałbym wam zaprezentować już drugą moją publiczną pracę, czyli skrypt dodający dwa eventy - jeden wywołujący się przy zakładaniu zbroi, a drugi przy zdejmowaniu zbroi.

 

Cechy:

Możliwość nasłuchiwania do dwóch eventów:

- przy zakładaniu zbroi

- przy zdejmowaniu zbroi

 

Dodatkowo:

Możliwość anulowania (cancelowania) obu eventów w celu blokady zakładania/zdejmowania zbroi.

W razie potrzeby można wywołać te eventy w dowolnym kodzie, omówię to w dalszej części postu.

 

Wymagania:

- Skript min. 2.5 (zalecany 2.5.3)

- skript-reflect (zalecany 2.1.0)

 

Użycie:

W mojej ocenie nie ma tutaj nad czym się rozwodzić, więc przejdę do rzeczy. Tak jak napisałem wyżej, skrypt dodaje 2 eventy.

 

Tutaj szybko dla niewtajemniczonych omówię co oznacza dana rzecz w składni:

- [ ] oznacza opcjonalność

- | oznacza lub

- ( ) oznacza wybór jednego spośród kilku elementów

 

Pierwszy to 'on skae armor equip'. Jego składnia wygląda następująco:

sk(ae|ArmorEvent) armo[u]r (equip|wear)

 

Drugi event natomiast to 'on skae armor unequip'. Składnia niemalże niczym się nie różni od pierwszego eventu poza przedrostkiem 'un'.

sk(ae|ArmorEvent) armo[u]r un(equip|wear)

 

Oczywiście przed dwoma eventami możemy tradycyjnie zastosować 'on', ale nie jest to obowiązkowe.

on skae armour equip:
	# Twój dalszy kod
    
# Lub:

skae armour equip:
	# Twój dalszy kod

 

Wartości do pobrania w evencie:

W evencie do dyspozycji mamy dwie wartości:

- pierwsza to 'player' (bądź event-player), reprezentuje gracza, który nałożył zbroję

- druga to 'item' (bądź event-item), reprezentuje nałożony, bądź zdjęty element zbroi

 

Przykłady użycia:

# 1.

on skae armour wear:
	if event-item's name is "&aDobry Helm":
		send "&aNałożyłeś dobry hełm!" to event-player
    
# 2.

skArmorEvent armor unequip:
	send "&aŚciągnąłeś &6%item%&a!" to player

 

Anulowanie eventu:

Event jak najbardziej można anulować za pomocą zwykłego 'cancel event'.

Przykłady:

# 1.

on skae armor equip:
	cancel event
	send "&cNie możesz założyć zbroi!"
    
# 2.    
	
on skArmorEvent armor unequip:
	cancel event
	send "&cNie możesz ściągnąć zbroi!"

 

Wywoływanie eventu:

Miałem powiedzieć kilka słów na temat wywoływania tych eventów w dowolnym kodzie, więc teraz to zrobię.

Aby poprawnie wywołać event w naszym kodzie, musimy ustawić naszego gracza oraz element zbroi do listy.

set {_l::player} to player
set {_l::item} to event-item

 

Następnie używamy linijki wywołującej event.

call event (custom event "onArmorEquip" with {_l::*})

 

Tutaj ukazuje nam się "onArmorEquip" i jest to nazwa eventu 'on armor equip', której używamy przy wywoływaniu eventu.

W przypadku eventu 'on armor unequip' będzie to "onArmorUnequip".

Podsumowując, za pomocą tych 3 linijek możemy w naszym kodzie użyć te eventy kiedykolwiek chcemy.

 

A kiedy może to się przydać? Cóż, tutaj podam przykład:

Mamy prostą komendę ustawiającą hełm gracza na diamentowy hełmet. Skrypt domyślnie obsługuje jedynie ręczne nakładanie hełmu przez gracza, więc wtedy właśnie wywołujemy event "onArmorEquip", przekazując przy tym odpowiednie wartości.

 

Komu może przydać się ten skrypt?

- osobom, które mają postawiony serwer na silniku Spigot

- jest dobrą alternatywą dla przebywania na starszych wersjach ze względu na SharpSK

- zamiennik dla eventu 'on armor change' ze względu na dostępność dla serwerów postawionych na silniku PaperSpigot (oraz Tuinity) oraz ze względu na to, że ten event pozwala jedynie na przechwycenie nowo nałożonego elementu zbroi, nie zdejmowanego. Dodatkowo SkArmorEvent pozwala na anulowanie eventu, co w przypadku wcześniej wspomnianego skriptowego eventu jest niemożliwe.

 

Pobieranie:

https://code.skript.pl/aFdMxpEb - v. 1.0

https://code.skript.pl/p6ChYMtK - v. 1.1

https://code.skript.pl/UYZsuVif - v. 1.2 (1.9.4 - 1.13.1)

https://code.skript.pl/41MK80It - v. 1.2 (1.13.2+)

https://code.skript.pl/ynOMxBFf - v. 1.2.1 (1.9.4 - 1.13.1)

https://code.skript.pl/12ck83eI - v. 1.2.1 (1.13.2+)

 

Rozwiązywanie problemów:

W razie znalezienia jakichkolwiek błędów w skrypcie (miejąc uprzednio na uwadze wymagania skryptu) prosiłbym o dokładne opisanie ich w sekcji komentarzy.

Prosiłbym również o podanie wersji serwera, silnika serwera, wersji Skripta oraz listy dodatków do Skripta.

 

Propozycje:

Co prawda nie myślę nad dalszym rozwojem skryptu, aczkolwiek jeżeli ktoś zaproponuje coś ciekawego, przemyślę to ;)

 

Dziękuję bardzo za przeczytanie, życzę miłej zabawy ze skryptem.

 

Edytowane przez Kormic
Usunięcie postscriptum o SkCylinder
Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/
Udostępnij na innych stronach

Jaki ładny skrypt dodatek <3 napracowałeś się to widać... byłoby szkoda gdyby ktoś...

import:
	com.destroystokyo.paper.event.player.PlayerArmorChangeEvent
PlayerArmorChangeEvent:
	broadcast "zmieniłeś zbroję"

 

Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-270326
Udostępnij na innych stronach

4 minuty temu, PanMaruda napisał:

Jaki ładny skrypt dodatek <3 napracowałeś się to widać... byłoby szkoda gdyby ktoś...

Drogi przyjacielu, prosiłbym uprzednio o przeczytanie tego co napisałem w poście (dokładniej fragment "Komu może przydać się ten skrypt?").

Inaczej to ujmę. Skrypt przyda się głównie osobom, które mają serwer postawiony na Spigot'cie.

Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-270328
Udostępnij na innych stronach

Aby nie kolidowało z sharpsk najlepiej gdybyś dodał jakiś swój niewymagany prefix

Spoiler

np [knormic] :kappa:

Ogólnie to spoko dodatek 

Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-270334
Udostępnij na innych stronach

W dniu 28.11.2020 o 21:50, xAxee napisał:

Aby nie kolidowało z sharpsk najlepiej gdybyś dodał jakiś swój niewymagany prefix

  Ukryj zawartość

np [knormic] :kappa:

tylko trzeba pamiętać żeby ten prefiks zawsze zapisywać w kodzie - bo bez niego skript zwariuje i sypnie error do konsoli

na nasze nieszczęście nawet jak będzie z prefiksem to też może się zdarzyć że coś się popsuje (mgui i tuske miały takie momenty)
najlepiej byłoby gdyby główna składnia była lekko inna

Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-271789
Udostępnij na innych stronach

  • 2 tygodnie później...

Dodanie eventu "cancel event" aby zablokowac zakładanie zbroji, ktora nie nalezy do gracza.

Przykład :

on armour equip:
	if event-item's name is "&aDobry Helm gracza %player%":
		send "&aNałożyłeś dobry hełm!" to event-player
	else:
		cancel event

 

 

Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-274228
Udostępnij na innych stronach

Update v. 1.1!

Nowości:

- skrócenie oraz uporządkowanie kodu

- dodanie możliwości anulowania eventu (dziękuję @UnioNS)

- zmiana składni na mniej konflitową (dziękuję @xAxee oraz @PanMaruda)

 

Zachęcam do testowania skryptu oraz poszukiwania możliwych błędów :)

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-274479
Udostępnij na innych stronach

Update v. 1.2!

Nowości:

- naprawiono błąd z brakiem działania skryptu w przypadku zmiany zbroi za pomocą klawiszy numerycznych,

- naprawiono błąd z wywoływaniem podczas gdy mając w ręce zbroję klikaliśmy prawym przyciskiem myszy na interaktywny blok (stół rzemieślniczy, piec itp.),

- dodano wywoływanie eventu przy zakładaniu zbroi przez dozownik.

 

Skrypt w wersji 1.2 obecnie jest dostępny jedynie dla serwerów na wersji 1.13.2+!

Za niedługo planuję wypuścić wersję 1.2 dla serwerów w przedziale 1.9.4 - 1.13.1, więc zainteresowani niech czekają cierpliwie.

Jak zwykle, zachęcam do testowania skryptu oraz poszukiwania błędów :)

Edytowane przez Kormic
Poprawa formatowania tekstu
Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-275844
Udostępnij na innych stronach

Wersja 1.2 dla serwerów 1.9.4 - 1.13.1!

Tak więc nadeszła długo wyczekiwana finalna wersja SkArmorEvent dla wyżej podanych wersji!

PS. Skrypt powinien działać bezproblemowo również na wersjach 1.8 - 1.8.9 wraz ze Skriptem 2.5+ od Matocolotoe.

 

Wersja 1.2 jest finalną, dlatego też jeżeli w tej wersji nie będzie żadnych błędów, tak długo jak nie będzie wprowadzone do Minecrafta więcej metod zakładania/zdejmowania zbroi, nie będę rozwijał skryptu.

Przepraszam również za dość długi czas wykonywania tej wersji, ale było kilka problemów:

- warunek 'contains' przy sprawdzaniu lokalizacji nie działał dobrze i musiałem samemu sprawdzać koordynaty,

- najwięcej czasu rzecz jasna zajęło tworzenie kodu do zakładania zbroi poprzez dozownik, tutaj wszystko trzeba było ręcznie sprawdzać,

- problem był również z utworzeniem funkcji przyjmującej jako argument kilka lokalizacji.

 

Mimo powyższych błędów koniec końców wszystkie zostały rozwiązane, a skrypt powinien działać jak marzenie.

Rzecz jasna zachęcam do testowania skryptu oraz poszukiwania błędów. Miłego użytkowania! :)

Edytowane przez Kormic
Poprawa formatowania tekstu
Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-279642
Udostępnij na innych stronach

Update v. 1.2.1!

Nowości:

- naprawa działania anulowania eventu przy założeniu zbroi poprzez dozownik (wersja dla 1.9.4 - 1.13.1),

- skrócenie kodu (w przypadku wersji dla 1.9.4 - 1.13.1 jest to zmniejszenie ze 155 do 98 linijek, a w przypadku wersji dla 1.13.2+ jest to ze 114 do 75 linijek; nie licząc podpisu w skrypcie),

- naprawa działania eventu przy zakładaniu zbroi (wersja dla 1.13.2+).

 

 Zachęcam do testowania skryptu oraz poszukiwania błędów. Miłego użytkowania! :)

Edytowane przez Kormic
Poprawa formatowania tekstu
Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-279940
Udostępnij na innych stronach

  • 4 tygodnie później...
  • 6 miesięcy temu...

Dzięki, akurat czegoś takiego szukałem na swój serwer lokalny. Nie chciało mi się pisać podstawki od nowa, to użyję Twojego. Oczywiście jeżeli będę musiał to przerobie pod siebie, mam nadzieję że się nie obrazisz, lecz ewentualna przeróbka nie ujrzy światła dziennego, gdyż jest to jedynie lokalne rozwiązanie :D 
Pozdrawiam #Knugi

Odnośnik do komentarza
https://skript.pl/temat/43209-skarmorevent-event-zak%C5%82adania-i-zdejmowania-zbroi-w-skript/#findComment-345569
Udostępnij na innych stronach

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ą.

Nieaktywny
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

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