Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 03/16/21 w Odpowiedzi

  1. 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
  2. AxonGames

    Bezpieczny Kreatywny Zlecenie

    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!! dziekuje
    1 punkt
  3. CoFFeIN04

    Zmiana na skript

    co do powyższego kodu, zamiast _ w nazwie możesz dać normalnie spacje (czego w komendzie give nie zrobisz)
    1 punkt
  4. CoFFeIN04

    Uptime serwera

    nie bardzo, time since zostało wprowadzone w Skript w wersji 2.5
    1 punkt
  5. CoFFeIN04

    Player's Inventory - PILNA ODPOWIEDŹ

    to nie zadziała clicked inventory is not player's inventory
    1 punkt
  6. CoFFeIN04

    Dwie linijki lore.

    A wysilić się trochę nie chcesz i poszukać?
    1 punkt
  7. CoFFeIN04

    Uptime serwera

    on script load: set {load} to now command /uptime [<text>]: trigger: send "%time since {load}%"
    1 punkt
  8. CoFFeIN04

    [Skrypt] Skrypt na Lucky Blocki!

    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 optymalny
    1 punkt
  9. CoFFeIN04

    Skrypt na narkotyki!

    ale teraz już nie jest w oddzielnych plikach, możesz poprawić spoko odsyłam do dobrego poradnika:
    1 punkt
  10. Kormic

    Wypychające płytki

    Co do pluginów to masz Launchpad i Launchpad Plus.
    1 punkt
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. Sturdy

    On item click

    wiecej szczegolow daj
    0 punktów
  17. zoolczeq

    Uptime serwera

    A przypadkiem to nie wymaga dodatku https://www.spigotmc.org/resources/ersatz.49433/?
    0 punktów
  18. 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 version
    0 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
  • Najwięcej postów w tygodniu

    Fendi
    Fendi
    3 posty
    xSebixx1
    xSebixx1
    2 posty
    kinimod5021
    kinimod5021
    1 post
    bug128
    bug128
    1 post
    F3lip3za
    F3lip3za
    1 post
    Nieaktywny
    Nieaktywny
    1 post
    LusiaMC
    LusiaMC
    1 post
    Antychryst
    Antychryst
    1 post
    MICHALBEZSKINOW
    MICHALBEZSKINOW
    1 post
  • Najwięcej tematów w tygodniu

    Nieaktywny
    Nieaktywny
    1 temat
    LusiaMC
    LusiaMC
    1 temat
    Antychryst
    Antychryst
    1 temat
    MICHALBEZSKINOW
    MICHALBEZSKINOW
    1 temat
    artur9010
    artur9010
    1 temat
    0j_12
    0j_12
    1 temat
    xSebixx1
    xSebixx1
    1 temat
    karepas
    karepas
    1 temat
    bug128
    bug128
    1 temat
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...