Ranking
Popularna zawartość
Treść z najwyższą reputacją w 11/18/24 uwzględniając wszystkie działy
-
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.1 punkt
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
