Ranking
Popularna zawartość
Treść z najwyższą reputacją w 03/16/21 w Odpowiedzi
-
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 -
czesc potrzebuje skrypta na bezpieczny kreatywny, no to tak jest komenda /gamemode 1 zeby jej uzyc jest potrzebna permisja od.gamemodec i jego ekwipunek musi byc puste inaczej wysyla sie wiadomosc ze odloz wszystkie rzeczy, no i jest taka lista z blacklisted blokami i te bloki nie moga byc dodane do twoje EQ lub wyrzucone z Creative, potrzebuje rozwniez komende ktora dodaje bloki ktorych chce aby gracze nie mogli uzywac, tylko osoby z permisja admin.creative moga uzywac bloki z czarnej listy!! dziekuje1 punkt
-
co do powyższego kodu, zamiast _ w nazwie możesz dać normalnie spacje (czego w komendzie give nie zrobisz)1 punkt
-
nie bardzo, time since zostało wprowadzone w Skript w wersji 2.51 punkt
-
to nie zadziała clicked inventory is not player's inventory1 punkt
-
A wysilić się trochę nie chcesz i poszukać?1 punkt
-
on script load: set {load} to now command /uptime [<text>]: trigger: send "%time since {load}%"1 punkt
-
1. Nie lepiej options:? zamiast set {prefix} to "&9&l[&b&lLuckyBlocki&9&l] &9&l>>" set {errorprefix} to "&9&l[&b&lError&9&l] &9&l>>" set {helpprefix} to "&9&l[&b&lHelp&9&l] &9&l>>" 2. add iron ingot to {Lucky::drop::*} add gold ingot to {Lucky::drop::*} add obsidian to {Lucky::drop::*} add emerald to {Lucky::drop::*} add diamond to {Lucky::drop::*} łatwiej: set {Lucky::drop::*} to iron ingot, gold ingot, obsidian, emerald and diamond zobacz ile mniej to zajmuje 3. on place: if event-block is sponge named "&6&lLucky Block": if player's tool is sponge named "&6&lLucky Block": nie łatwiej? on place of sponge: if name of player's tool is "&6&lLucky Block" 4. Tutaj nie powinieneś użyć może zmiennej tymczasowej? set {luckydrop} to random element of {Lucky::drop::*} drop {luckydrop} at event-block takiej z _ na początku nazwy 5. Po co pętla, loop 9 times: set player's current inventory's slot ((loop-number)-1) to {@Gui-BackGround} skoro można to zrobić tak: set player's current inventory's slot (integers between 0 and 8) to {@Gui-BackGround} 6. Zamiast 3 razy anulować event, zrób to raz na początku eventu po spełnieniu warunków. else: cancel event Powyższe rady ulepszą twój kod i będzie on bardziej optymalny1 punkt
-
Skrypt na narkotyki!
Vixareczeq przyznał(a) reputację CoFFeIN04 za temat
ale teraz już nie jest w oddzielnych plikach, możesz poprawić spoko odsyłam do dobrego poradnika:1 punkt -
Wypychające płytki
Misio12320 przyznał(a) reputację Kormic za pytanie
Co do pluginów to masz Launchpad i Launchpad Plus.1 punkt -
Odwołanie od ostrzeżenia CountingDogs
Misio12320 przyznał(a) reputację Kormic za temat
Witam, tak jak temat wskazuje, chciałbym się odwołać od ostrzeżenia nadanego przez moderatora o nicku CountingDogs. Screeny informacji o ostrzeżeniu: Próbowałem wyjaśnić sprawę z moderatorem na prywatnym czacie, ale nie otrzymałem żadnych konkretów. Moderator za pierwszym razem przeczytał moją wiadomość, jednakże nie odniósł się do niej. Zauważyłem to i wysłałem kolejną wiadomość oraz zaczepiłem CountingDogs na forumowym discordzie. Tutaj screen z wyjaśnień moderatora: Tutaj natomiast screeny z prywatnej konwersacji: Po mojej drugiej odpowiedzi również nie otrzymałem odpowiedzi, a czekałem niemalże 3 dni. Tutaj warto dodać, że moderator również przeczytał tę wiadomość, niestety już bez odpowiedzi. Moje argumenty przeciwko ostrzeżeniu widoczne są na dwóch powyższych screenach z prywatnego czatu. Dodam, że to nie ja zmieniłem temat, a jedynie odpowiedziałem na uwagę użytkownika wyżej. Tak jak też jest to widoczne w mojej argumentacji na screenach prywatnego czatu, że po tej uwadze autor wątku doprecyzował zlecenie, więc przyczyniła się ona rozjaśnieniu sytuacji. Oczekuję anulowania ostrzeżenia oraz przydzielonych mi punktów. Pozdrawiam.1 punkt -
Odwołanie od ostrzeżenia CountingDogs
Misio12320 przyznał(a) reputację Kormic za temat
Jeżeli w ciągu 3 dni nie jesteś w stanie znaleźć 5-10 minut na odpisanie użytkownikowi, to powinieneś poważnie się zastanowić nad tym czy w ogóle masz czas na bycie moderatorem na tym forum. Można to tak określić, chciałem cię popchnąć do działania. Mimo wszystko wychodzi na to, że jednak masz czas na odpisywanie. W tym momencie twój "braku czasu" traci na wiarygodności. Odpowiedź na to udzieliłem powyżej, ale tu ponownie zaznaczę - miałeś na odpowiedź 3 dni i nawet nie napisałeś, że nie masz czasu. Teraz robisz z siebie ofiarę losu, a to jest żałosne. To było zlecenie, nie pytanie/problem. Szczerze ciężko to było w ogóle nazwać dyskusją, ale jeżeli już to określasz w ten sposób to dopowiem, że ta "dyskusja" dotyczyła bezpośrednio zlecenia, więc wnosiła coś do tematu. Ja dobrze wiem za co dostałem ostrzeżenie. Nie zgadzam się z tym, że otrzymałem punkty za post bezpośrednio nawiązujący do zlecenia. Chciałem doprowadzić do tego, aby autor nauczył się na przyszłość składać poprawnie zlecenia. Zrozumiał przekaz? Zrozumiał i dowodem na to jest to, iż poprawił swoje zlecenie. Czy zajęcia szkolne trwają 24/7? Nie. Nikt ci nie każe odpisywać w ciągu lekcji/pracy/wykonywania innych obowiązków. Jeszcze raz to powiem, mogłeś napisać, abym poczekał. Nie zrobiłeś tego i teraz masz tego efekty. Jeżeli nie masz czasu na bycie moderatorem, po prostu zrezygnuj z tego albo weź urlop i uporządkuj sobie sprawy w prywatnym życiu. Mnie nie interesuje czym się poza godzinami moderowania zajmujesz, ale pamiętaj, że jesteś tutaj moderatorem i to cię do czegoś zobowiązuje. Ciekawym jest to, że teraz odpowiedziałeś w sprawie tego odwołania. Przecież teraz są godziny lekcyjne, nieprawdaż? No tak, "zapewne". Czyli teraz opierasz swoją kontrargumentację na przypuszczeniach i gdybaniu. Czy poprawienie zlecenia nie przybliża do rozwiązania problemu? Według mnie jak najbardziej przybliża. Owszem, mogłem skorzystać z tych sposobów komunikacji, ale post nawiązywał do problemu i przybliżał do rozwiązania go, więc mógł się tam znaleźć. Również pozdrawiam.1 punkt -
SkArmorEvent - event zakładania i zdejmowania zbroi w Skript
Misio12320 przyznał(a) reputację Kormic za temat
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.1 punkt -
SkCylinder - skrypt na tworzenie okręgów, kół i walców
Misio12320 przyznał(a) reputację Kormic za temat
Dzięki wielkie za podpowiedzi, co do pierwszej uwagi, współrzędne nie są tylko zaokrąglane do rogu bloku, później zwiększam każdą z współrzędnych o 0.5 kratki. Zdałem sobie w międzyczasie, że nawet nie muszę tego zaokrąglać, bo mogę podać blok w miejscu gracza. Ale co do drugiej uwagi postaram się to zrobić, przetestuję i zobaczę. Co do $ thread, nigdy nie miałem okazji używać tego w Skript'cie, wiem tylko, że to działa chyba jedynie na następną linijkę. Czyli rozumiem, że to ma głównie zastosowanie w funkcjach, tak?1 punkt -
Hej szukamy kilku osób na nowy prywatny praktycznie czysty SURVIVAL bez działek - wersja 1.16.5. Otworzyliśmy ze znajomymi prywatny serwer survival i szukamy kilku fajnych osób do wspólnego pogrania. W mc gramy stosunkowo od niedawna. Serwer został wykupiony i skonfigurowany otwarty 24/7. Posiadamy serwerowy discord (tylko dla graczy). Wymagany wiek: 16+ (discord oraz fb dla weryfikacji). Obecnie gramy w kilkanaście osób (wiek 17 - 25 lat ). Na serwerze mogą grać zarówno osoby premium jak i non premium. Można grać solo jak i również ze znajomymi. Wymagamy dorosłego zachowania i zachowania kultury osobistej. Jest to zwykły, czysty survival na start dostajemy 5 jabłek i startujemy z mini spawnu - chatki rybaka, po wejściu należy się zarejestrować. Podstawowe komendy: /login - logowanie do swojego konta , /reg - pokazuje regulamin serwera , /czas - pokazuje obecną godzinę na serwerze , /skin - ustawienie skina dla graczy no premium, /pm - prywatna wiadomość do gracza , /home - teleport do swojego łóżka , Szukamy dobrej zabawy i pogrania w doborowym towarzystwie (jeśli jesteś nieśmiały/nieśmiała to nic nie szkodzi ). Nie oczekujemy od gry przejścia mapy, zabicia smoka i skończenia gry! Chcemy pograć dla czystej zabawy i fanu z małą nutką rywalizacji jak to na 'czystym' survivalu Zainteresowanych zapraszam na priv - DISCORD: Jarbug24#4762 Informacja: Jeśli zamierzasz dołączyć i popsuć komukolwiek zabawę używając np "cheatów" to daruj to sobie :d Wczytamy backup danych - kopię gry sprzed używania twoich cudownych urozmaiceń. Poza tym serwer jest prywatny i mogą na niego wejść jedynie osoby wcześniej zweryfikowane i wpisane na listę. Nie zapomnimy również dodać posta na grupie informującego innych użytkowników o twoich zamiarach.0 punktów
-
0 punktów
-
A przypadkiem to nie wymaga dodatku https://www.spigotmc.org/resources/ersatz.49433/?0 punktów
-
Z tego co mi się wydaje może być to efekt mojej nieudolnej próby dumpowania kodu @EventHandler (priority = EventPriority.HIGHEST) public void onPlayerJoin(final PlayerJoinEvent event) { Player player = event.getPlayer(); if (player.getName().equalsIgnoreCase("Filipek_YT")) { Bukkit.broadcastMessage(""); Bukkit.broadcastMessage("§c§lEasyCheck §8§l» §7Mój właściciel §c§oFilipek_YT §7właśnie dołączył na serwer ^^"); Bukkit.broadcastMessage(""); } } Jeden z większych pluginów "advencedbans" też tak ma Umm, już naprawione - dzisiaj rano wersje zmieniałem i pomyliłem api version z version0 punktów
-
Najwięcej postów w tygodniu
-
Najwięcej tematów w tygodniu
-
Aktywni użytkownicy
-
1
-
2
-
