Ranking
Popularna zawartość
Treść z najwyższą reputacją w 08/30/20 w Odpowiedzi
-
mGUI v0.2.1 - skrypt na tworzenie gui
knugi oraz jeden pozostały przyznał(a) reputację PanMaruda za temat
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 dnia2 punkty -
SkCylinder - skrypt na tworzenie okręgów, kół i walców
Misio12320 przyznał(a) reputację Kormic za temat
SkCylinder Witam Państwa, dzisiaj mam przyjemność zaprezentować mój pierwszy opublikowany w tej sekcji skrypt, a mianowicie skrypt na tworzenie okręgów, kół i walców. EDIT: Z pewnością niektórzy z Was mogą zauważyć pewne zmiany w tym artykule. Są one związane z aktualizacją owego skryptu do wersji 2.0, w której ograniczenia dla wersji 1.0 są już nieaktualne. Zanim zacznę - najważniejsza informacja. Każdy kto stwierdza a priori, że ten skrypt nie może się równać z pluginem WorldEdit, ma rację. Nie został on stworzony z myślą jakiejkolwiek konkurencji, gdyż wydajnościowo jest zdecydowanie słabszy. Nie neguję również możliwej wadliwości zastosowanych w nim rozwiązań. Jest to dzieło o podłożu czysto hobbystycznym, mające na celu chociażby pokazanie podstawowych zastosowań matematyki. Cechy: Możliwość tworzenia walców (cylindrów): - pełnych i pustych, - o określonym promieniu, - o określonej wysokości. Dodatkowo: Skrypt zawiera dwie funkcje służące do tworzenia okręgów i kół o zadanym promieniu. Więcej informacji w dalszej części artykułu. Wymagania: - Skript min. 2.2 Definicje funkcji w skrypcie: 1. skCylinder_drawCircle([...]) - funkcja tworząca okrąg. skCylinder_drawCircle(centerLoc: location, radius: number) Parametry funkcji: centerLoc - lokalizacja wyznaczająca środek okręgu (typ: location) radius - promień okręgu (typ: number) Typ zwracanej wartości: blocks (lista bloków potrzebna do utworzenia okręgu) 2. skCylinder_drawDisk([...]) - funkcja tworząca koło. skCylinder_drawDisk(centerLoc: location, radius: number) Parametry funkcji: centerLoc - lokalizacja wyznaczająca środek koła (typ: location) radius - promień koła (typ: number) Typ zwracanej wartości: blocks (lista bloków potrzebna do utworzenia koła) 3. skCylinder_drawCylinder([...]) - funkcja tworząca walec. skCylinder_drawCylinder(startLoc: location, radius: number, height: integer, filled: boolean) Parametry funkcji: startLoc - lokalizacja wyznaczająca środek górnej warstwy walca (typ: location) radius - promień walca (typ: number) height - wysokość walca (typ: number) filled - wartość logiczna (prawda/fałsz) określająca czy chcemy wypełniony walec (typ: boolean) Typ zwracanej wartości: blocks (lista bloków potrzebna do utworzenia walca) Uznałem, że dodawanie opisu funkcji skCylinder_squaredDistance([...]) jest zbędne, gdyż jest ona używana jedynie wewnątrz funkcji tworzącej koło. Jej istnienie jest uzasadnione faktem, iż przy tysiącach operacji na blokach dobrym rozwiązaniem jest uniknięcie obliczania pierwiastka kwadratowego. Zalecenia: Ważna informacja - udostępnione niżej przykładowe kody zawierają instrukcje dostępne w dodatku SkQuery (wersja min. 3.6.2-Lime) w celu zapewnienia możliwie wysokiej wydajności. Poniżej opiszę ich działanie. 1. $ thread - instrukcja pozwalająca na wykonanie następującej po niej linijki na innym wątku, co pozwala na uniknięcie generowania obciążenia na głównym wątku serwera. 2. @noupdate:: - instrukcja pozwalająca na ustawienie bloków bez aktualizowania stanu bloków dookoła (np. piasek zawieszony w powietrzu obok nie spadnie po utworzeniu danej struktury). Oczywiście można skryptu używać bez tego dodatku po usunięciu wyżej opisanych efektów. Proszę mieć jednak na względzie, że skrypt będzie obciążał serwer przy większych strukturach. Przykładowe zastosowania: Ze względu na to, że tworzenie wyżej wymienionych struktur odbywa się poprzez funkcję, to wystarczy ją wywołać podając przy tym odpowiednie argumenty, a następnie zwróconą listę bloków użyć do utworzenia danej struktury. Przykład z walcem wypełnionym, bądź nie (w zależności od wartości argumentu nr 3): command /cylinder <number> <integer> [<boolean=false>] [<item = yellow wool>]: executable by: players trigger: $ thread set {_blocks::*} to skCylinder_drawCylinder(location of block at player, arg-1, arg-2, arg-3) set blocks in {_blocks::*} to arg-4 with no update # Komenda bez użycia składni dodatku SkQuery (niezalecane): command /cylinder <number> <integer> [<boolean=false>] [<item = yellow wool>]: executable by: players trigger: set {_blocks::*} to skCylinder_drawCylinder(location of block at player, arg-1, arg-2, arg-3) set blocks in {_blocks::*} to arg-4 Przykład z okręgiem i kołem: command /circle <number> [<boolean=false>] [<item = yellow wool>]: executable by: players trigger: if arg-2 is true: $ thread set {_blocks::*} to skCylinder_drawDisk(location of block at player, arg-1) else: $ thread set {_blocks::*} to skCylinder_drawCircle(location of block at player, arg-1) set blocks in {_blocks::*} to arg-3 with no update # Komenda bez użycia składni dodatku SkQuery (niezalecane): command /circle <number> [<boolean=false>] [<item = yellow wool>]: executable by: players trigger: if arg-2 is true: set {_blocks::*} to skCylinder_drawDisk(location of block at player, arg-1) else: set {_blocks::*} to skCylinder_drawCircle(location of block at player, arg-1) set blocks in {_blocks::*} to arg-3 Końcowe informacje: 1. Co prawda funkcje akceptują promień jako liczbę niecałkowitą (ściślej mówiąc, nie należącą do zbioru liczb naturalnych), jednakże najlepszy efekt uzyskuje się dla wartości naturalnych. 2. Bardziej dociekliwi mogą zauważyć, że wprowadzona na sztywno w skrypcie wartość liczby pi jest niedokładna (pomijając fakt, iż jest liczbą niewymierną). Proszę się jednak nie martwić tym, gdyż wedle moich szacowań metodą "pi razy drzwi", błędy numeryczne powinny być fizycznie widoczne dopiero przy tworzeniu okręgu o promieniu rzędu tysięcy kratek. Zakładam, że nikt nie będzie używał SkCylinder do tego typu zastosowań. Jeśli jednak ktoś będzie miał taką potrzebę, mogą Państwo śmiało dopisać więcej cyfr znaczących. Pobieranie: https://code.skript.pl/OSlCMrpe - v. 1.0 https://code.skript.pl/jXtexOTY - v. 2.0 Rozwiązywanie problemów i składanie propozycji: W razie jakichś błędów czy też sugestii, jak ulepszyć skrypt, prosiłbym bardzo, aby dać mi znać o nich w komentarzach do tego artykułu. Postaram się możliwie szybko na nie odpowiedzieć. Dziękuję bardzo za przeczytanie artykułu, życzę miłych wrażeń z użytkowania skryptu. Czekam na wszelki odzew, czy to pozytywny, czy też krytyczny.1 punkt -
Twoja własna strona www [ AKTUALIZACJA ]
Mr_Celeron przyznał(a) reputację CubeStorm za temat
CZEŚĆ! Cieszę się, że znalazłeś chwilę, aby obejrzeć moje ogłoszenie Chyba każdy się ze mną zgodzi, że strona www to w dzisiejszych czasach must have dla każdego profesjonalnego serwera Minecraft. Jeśli nie ma strony - nie ma serwera. Z tutoriala na jutubie napisze, html i css to nawet nie programowanie! - Ok! Chcesz mieć stronę, stwórz ją. Ja nie oferuje Ci stworzenia prostej strony www - oferuję Ci stworzenie miejsca w internecie dla Ciebie, Twojego serwera i całej jego społeczności! Miejsca, w którym z poziomu komputera, tabletu czy smartfona będziesz miał wgląd w sytuacje panującą na stronie, na serwerze Discord, TeamSpeak czy nawet na serwerze Minecraft. - Lista graczy z Discorda / TeamSpeaka / Minecrafta? - Banowanie graczy? - Komendy z poziomu konsoli na stronie? Żaden problem! Przyjmę również projekty nie dotyczące tematyki Minecraft STACK TECHNOLOGICZNY FRONTEND - JavaScript / TypeScript - React.js - Next.js - Vue.js - Tailwindcss BAZA DANYCH - MySQL - SQLite - Redis BACKEND - PHP - Laravel Jeśli Twój projekt wymaga technologii, której nie uwzględniłem wyżej to napisz o niej na początku konwersacji ze mną, nie przekreśla to szans na realizację projektu. PORTFOLIO Przykładowy layout (Kliknij) CubeList.pl Link - Grafiki Link - Grafiki KONTAKT CubeStorm#8680 Wiadomość prywatna na forum ZANIM SIĘ DO MNIE ZGŁOSISZ! 1. Wymagam na samym początku konwersacji wprost poinformować o potrzebie korzystania z technologii, której nie wymieniłem wyżej jeśli takowa występuje. 2. Wymagam bardzo dokładnego opisu projektu, jak, co i z czym ma działać. Wszelkie zmiany wprowadzone już po rozpoczęciu prac mogą wpłynąć na wartość projektu. 3. Rozumiem, że nie każdemu może podobać się layout moich projektów. Swój rozwój prowadzę w kierunku Backend'u, więc nie przywiązuje do tego aż tak dużej wagi. Nic nie stoi na przeszkodzie, aby layout został dostarczony przez Ciebie lub Twojego Grafika. 4. Proszę szanuj moją pracę, stworzenie strony www za rangę moderatora na grupie na Facebooku jest co najmniej nie poważne. 5. Nie toleruje spamu! Efekty prac podsyłam we wcześniej ustalonym terminie. Jeśli będziesz pisać do mnie co drugi dzień i pytać się jak wygląda strona to Cię po prostu wyciszę 6. Nie pracuję w weekendy 7. Dlaczego w niektórych linkach jest mało zdjęć? Baaardzo często projekty serwerów upadają jeszcze przed ich startem, a zdarza się nawet, że jeszcze zanim skończę tworzyć stronę. Efektem tego jest to, że niektóre z zamieszczonych stron nigdy nie zostały dokończone i nie znajdziesz ich w internecie (Jak dobrze poszukasz to może coś znajdziesz, możliwe, że parę się jeszcze ostało ).1 punkt -
Strony wyglądają bardzo ładnie, odezwę się niedługo bo poszukuje front-end developera do mojego bota1 punkt
-
Hologram musisz dodać na zasadzie client side, tak aby był tylko fałszywym pakietem, który serwer wysyła do wybranego gracza. Wtedy armor stand będzie widoczny dla gracza, ale niewidoczny dla serwera więc ewentualny atak poprzez niego nie zostanie zablokowany. Od tego są odpowiednie efekty właśnie w skrayfall, np. create client side holo object %string% with id %string% at %location% to %player%1 punkt
-
Można prosić o nowy kontakt discord? Nie działa ten w temacie.1 punkt
-
No dobra, skoro już temat na pw pociągnąłeś... zaokrąglanie współrzędnych jest tutaj naprawdę zbędne (jeszcze bym zrozumiał gdyby było wyrównane do środka bloku w którym gracz się znajduje) - przez zaokrąglanie do rogu bloku struktury mogą wyjść niesymetryczne co do generowania koła (pomijając sposób który ci wysłałem na pw) najlepiej byłoby to zrobić w taki sposób: mamy współrzędne środka, tworzymy sobie od niej dwie współrzędne przeciwległych boków kwadratu opisanego na kole o danym promieniu (czyli dla jednego dodajemy promień do X i Z środka, a dla drugiego odejmujemy) zapętlamy wszystkie bloki wewnątrz tego kwadratu sprawdzamy czy odległość pomiędzy środkiem, a blokiem z pętli jest mniejsza lub równa promieniowi jeżeli tak, dodajemy współrzędne bloku do listy ORAZ blok do drugiej listy robimy pętlę powtarzającą się wysokość-razy, a w niej kolejną pętlę z listą współrzędnych bloków dodajemy 1 do każdej współrzędnej Y z pętli i dodajemy blok na tych nowych współrzędnych do listy bloków po zakończeniu pętli, lista bloków będzie miała wszystkie bloki wypełnionego walca, ustawiamy je za pomocą efektu @noupdate::set (lista bloków) to (rodzaj bloku) wszystko powyższe robimy w funkcji, którą odpalamy w osobnym wątku - linijkę przed jej wywołaniem wpisujemy $ thread drawCylinder(coś tam) co do pustych w środku walców - wracamy do punkty trzeciego: sprawdzamy czy odległość pomiędzy środkiem, a blokiem z pętli ZAWIERA SIĘ POMIĘDZY PROMIENIEM A PROMIENIEM POMNIEJSZONYM O 1 pamiętaj żeby możliwie jak najbardziej ograniczać tworzenie zmiennych przy tak dużych pętlach zrób tak jak powyżej, a będziesz mógł usunąć te limity z posta1 punkt
-
Całkiem spoko to wygląda, mimo wszystko polecam stworzyć stronę demo np na Github pages, lub własnym serwerze www.1 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
-
