Ranking
Popularna zawartość
Treść z najwyższą reputacją w 08/31/20 w Odpowiedzi
-
mGUI, wprowadzenie: pewnie zastanawiacie się moi drodzy dlaczego was tu zgromadziłem i czym jest ten skryptowy cud przedstawiony w tytule - otóż znajdujecie się właśnie w poście nowego i niesamowitego dodatku do formatowania GUI stworzonego całkowicie w Skript. mGUI to w zamyśle połączenie oraz rozszerzenie najlepszych funkcji z popularnych dodaktów SkQuery oraz TuSKe; skrypt ma być ich aktualizowaną, niezbugowaną i przyjemną w użyciu alternatywą. Cały system owego dodatku opiera się na zasadzie identyfikatorów (każde GUI ma swój unikatowy ciąg znaków ustalany przez użytkownika), które pozwalają w prosty sposób odnosić się i zarządzać dowolnym GUI w dowolnym miejscu. Dzięki użyciu dodatku skript-reflect w skrypcie mogłem zrezygnować z funkcji na rzecz customowych efektów, warunków i innych (skromna dokumentacja znajduje się poniżej) Instalacja, wymagania: skrypt pobieramy z linku poniżej, zapisujemy w pustym pliku w folderze /plugins/Skript/scripts (ważne jest to aby skrypt miał swój osobny plik; nie powinno się go edytować na własną rękę; nie powinno się zmieniać kolejności poszczególnych wydarzeń w skrypcie). po wgraniu i załadowaniu skryptu na serwer będzie on gotowy do użycia mGUI aktualizuje się automatycznie w przypadku posiadania dodatku AxAutoUpdate (ważne jest by nie usuwać drugiej linijki z wersją skryptu) zaznaczam iż skrypt pisany jest dla nowszych wersji minecrafta (tj. 1.14 i wyższych) testowane na: Paper 1.16.3; Skript 2.5.1; skript-reflect 2.1.0 Wymagane pluginy: Skript 2.4 skript-reflect [opcjonalnie] Skrypt AxAutoUpdate autorstwa @xAxee Nowe efekty, wyrażenia, wydarzenia i warunki: Przykłady użycia: ze skryptu korzystamy identycznie jak z wymienionych wyżej dodatków, z tą różnicą, że nie możemy tu otworzyć ekwipunku graczowi - musimy najpierw go stworzyć (nadać ID, podać parametry i najlepiej też sformatować sloty) - dopiero po tych działaniach bezpiecznie otworzymy nowe GUI wybranym graczom, przykłady: GUI o ID pierwsze.gui z 3 rzędami i nazwą zawiera na slocie pierwszym przedmiot który wykonuje komendę /eco give player 100 command /nasze-nowe-gui: trigger: create new mgui "pierwsze.gui" with 3 rows named "jakaś nazwa" make mgui slot 1 of "pierwsze.gui" with stone named "&aDodaj sobie 100$" to run console command "eco give %player% 100" open mgui "pierwsze.gui" to all players w drugim przykładzie zróbmy funkcję, która wyśle wiadomość o rodzaju kliknięcia i wykonajmy ją po kliknięciu w GUI, które w całości wypełnione zostanie żółtymi szybami w tym celu będziemy nasłuchiwać customowego eventu 'mgui click' function rodzajKliknięcia(prawy: boolean): if {_prawy} is true: broadcast "&6kliknięto prawym przyciskiem w slot" else: broadcast "&9kliknięto lewym przyciskiem w slot" command /nasze-nowe-gui: trigger: create new mgui "pierwsze.gui" with 3 rows named "jakaś nazwa" make mgui slot (integers from 0 to 26) of "pierwsze.gui" with yellow glass pane to be unstealable open mgui "pierwsze.gui" to player on mgui click: if (mgui of player) is "pierwsze.gui": if number is between and 26: if click type is left mouse button: rodzajKliknięcia(false) else if click type is right mouse button: rodzajKliknięcia(true) add 1 of apple named "kliknąłeś prawym" to inventory of player w kolejnym przykładzie stwórzmy bardzo prosty skrypt na kit: tworzymy komendę, która otworzy nam gui o ID kit-narzędzia i ustawiamy opóźnienie jej użycia na 10 minut podczas uruchamiania skrypty tworzymy nowe GUI z czterema rzędami, nazwą i kształtem wypełniamy kształt - literę z - szarym szkłem dodajemy przedmioty kitu do listy, a następnie zapętlamy ją i ustawiamy wynik pętli jako 'następny wolny' slot w gui na koniec wypełniamy wszystkie pozostałe sloty jasnym szarym szkłem command kit: cooldown: 10 minutes cooldown message: Tej komendy można używać raz na 10 minut trigger: open gui "kit-narzedzia" to player on load: set {_shape::*} to "z-z-z-z-z-z-z-z-z", "z--------z", "z--------z" and "z-z-z-z-z-z-z-z-z" create new gui "kit-narzedzia" with 4 rows and shape {_shape::*} named "&3Odbierz swój kit" set gui shape "z" of "kit-narzedzia" to gray glass pane to be unstealable add wooden sword to {_items::*} add golden axe of sharpness 5 to {_items::*} add golden pickaxe of efficiency 5 to {_items::*} add golden shovel to {_items::*} add 8 of baked potato to {_items::*} add 16 of apple to {_items::*} add 2 of ender pearl to {_items::*} add 32 of stone named "&bMagiczny kamień z kitu" with lore "&3a oto jego" and "&3opis" to {_items::*} loop {_items::*}: set gui next slot of "kit-narzedzia" to loop-value fill "kit-narzedzia" with light gray glass pane Changelog: Pobieranie: mGUI wersja 0.1.6 mGUI wersja 0.2.0 mGUI wersja 0.2.1 Miłego dnia1 punkt
-
To teraz sprawdź czy te działające będą również działały w skrypcie.1 punkt
-
Sprawdź z pomocą tej prostej komendy czy jakikolwiek efekt działa, tutaj masz listę https://skriptlang.github.io/Skript/classes.html#visualeffect Jeśli nie zadziała, to wymagana będzie składnia z dodatku.1 punkt
-
Cóż, ten event na pewno będzie obciążał serwer przy dużej ilości graczy, przy mniejszej być może nie będzie aż tak lagogenny (kwestia testowania). Sprawdź edytowany post wyżej.1 punkt
-
Ale bloki się poprawnie zamieniają, tak? Co do efektów, spróbuj jeszcze użyć z jakiegoś dodatku, bo te zawarte w skrypcie pochodzą prosto ze Skripta. EDIT: Spróbuj jeszcze użyć tych efektów ze Skripta w prostej komendzie, przykładowo: command /test: trigger: play love hearts on the player1 punkt
-
Sprawdź czy zadziała: on armor change: if player's helmet is not netherite helmet named "&btest": if {glowstone::armor::players::*} doesn't contain player: stop remove player from {glowstone::armor::players::*} if player's chestplate is not netherite chestplate named "&btest": if {glowstone::armor::players::*} doesn't contain player: stop remove player from {glowstone::armor::players::*} if player's leggings is not netherite leggings named "&btest": if {glowstone::armor::players::*} doesn't contain player: stop remove player from {glowstone::armor::players::*} if player's boots is not netherite boots named "&btest": if {glowstone::armor::players::*} doesn't contain player: stop remove player from {glowstone::armor::players::*} if {glowstone::armor::players::*} contains player: stop add player to {glowstone::armor::players::*} while {glowstone::armor::players::*} contains player: play wolf hearts on the player wait 5 ticks on join: while {glowstone::armor::players::*} contains player: play wolf hearts on the player wait 5 ticks on any move: if {glowstone::armor::players::*} doesn't contain player: stop if block under player is not solid: stop set {_block} to block under player set {_blockloc} to location of block under player set block under player to glowstone wait 10 ticks set block at {_blockloc} to {_block}1 punkt
-
Jeżeli ma pod nim zamieniać wszystkie bloki, to będzie niestety potrzebny event 'on any move:'. on armor change: if player's helmet is not netherite helmet named "&btest": if {glowstone::armor::players::*} doesn't contain player: stop remove player from {glowstone::armor::players::*} if player's chestplate is not netherite chestplate named "&btest": if {glowstone::armor::players::*} doesn't contain player: stop remove player from {glowstone::armor::players::*} if player's leggings is not netherite leggings named "&btest": if {glowstone::armor::players::*} doesn't contain player: stop remove player from {glowstone::armor::players::*} if player's boots is not netherite boots named "&btest": if {glowstone::armor::players::*} doesn't contain player: stop remove player from {glowstone::armor::players::*} if {glowstone::armor::players::*} contains player: stop add player to {glowstone::armor::players::*} on any move: if {glowstone::armor::players::*} doesn't contain player: stop if block under player is not solid: stop set block under player to glowstone Jeśli coś nie będzie działało, daj znać, a postaram się naprawić. Miej na uwadze, że ten event jest niezwykle zasobożerny (szczególnie przy większej liczbie graczy).1 punkt
-
Wow jestem pod wrażeniem, że ci się chciało. Nie jestem zbyt wielkim fanem rozwiązania formatowania gui tak jak w skQuery czy TuSke (tzn. w jednej linijce iwg) ale widzę, że tutaj możemy to łączyć więc duży plus. Jutro przetestuje skrypt, ale patrze po kodzie i nie można się do niczego przyczepić. Moją propozycją jest abyś dodał efekt pozwalający na skopiowanie gui oraz (tu będzie trzeba bardziej pokombinować z skript-reflect, nawet nie wiem czy da rade) wywoływanie funkcji przy kliknięciu tak jak to np robisz komendą. Dzięki za podpięcie skryptu do systemu automatycznej aktualizacji AxAutoUpdate. Obyś rozwijał ciągle ten skrypt bo wygląda naprawdę fajnie1 punkt
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
-
Najwięcej postów w tygodniu
-
Najwięcej tematów w tygodniu
-
Aktywni użytkownicy
-
1
-
2
-
