Skocz do zawartości

Kormic

Zasłużony
  • Ilość zawartości

    11013
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    231

Treść opublikowana przez Kormic

  1. Lobby rozumiem, że to serwer BungeeCord, tak?
  2. Kormic

    Skok

    Już wiem w czym problem, w linijce nr 10 powinno być 'difference between {_cooldown} and now'
  3. Kormic

    Skrypt na amulety

    A tak, zamień w linijce nr 8 diamentowe buty na wither rose.
  4. Kormic

    Skok

    on right click with slime block: if player's held item is not slime block named "&aSkok": stop if {cooldown::jump::%player%} is not set: set {cooldown::jump::%player%} to now subtract 5 seconds from {cooldown::jump::%player%} if difference between {cooldown::jump::%player%} and now is less than 5 seconds: set {_cooldown} to {cooldown::jump::%player%} add 5 seconds to {_cooldown} set {_cooldown} to difference between {cooldown::jump::%player%} and {_cooldown} set {_cooldown} to "%{_cooldown}%" replace all "second" and "seconds" with "sekund" in {_cooldown} send "&cMusisz odczekac &6%{_cooldown}%&c!" to player stop set {cooldown::jump::%player%} to now push player upwards with speed 1 wait 1 tick push player forwards with speed 3 set {noFallDamage::%player%} to true while block under player is air: wait 5 ticks clear {noFallDamage::%player%} on damage: if damage cause is not fall: stop if {noFallDamage::%victim%} is not set: stop cancel event command /dajitem: trigger: give player 1 slime block named "&aSkok" Proszę.
  5. Kormic

    Skrypt na amulety

    command /amulet [<text>] [<player>] [<integer>]: trigger: set {_arg3} to arg 3 set {_arg2} to arg 2 if arg 1 is "skok": give {_arg2} {_arg3} of feather named "&bAmulet Skoku" else if arg 1 is "szybkosc": give {_arg2} {_arg3} of diamond boots named "&bAmulet Szybkosci" on right click: if player's held item is feather named "&bAmulet Skoku": if {cooldown::butySkoku::%player%} is not set: set {cooldown::butySkoku::%player%} to now subtract 40 seconds from {cooldown::butySkoku::%player%} if difference between {cooldown::butySkoku::%player%} and now is less than 40 seconds: set {_cooldown} to {cooldown::butySkoku::%player%} add 40 seconds to {_cooldown} set {_cooldown} to difference between {cooldown::butySkoku::%player%} and {_cooldown} set {_cooldown} to "%{_cooldown}%" replace all "second" and "seconds" with "sekund" in {_cooldown} send "&cMusisz odczekac &6%{_cooldown}%&c!" to player stop set {cooldown::butySkoku::%player%} to now apply potion of jump boost 2 to player for 30 seconds else if player's held item is wither rose named "&bAmulet Szybkosci": if {cooldown::butySzybkosci::%player%} is not set: set {cooldown::butySzybkosci::%player%} to now subtract 40 seconds from {cooldown::butySzybkosci::%player%} if difference between {cooldown::butySzybkosci::%player%} and now is less than 40 seconds: set {_cooldown} to {cooldown::butySzybkosci::%player%} add 40 seconds to {_cooldown} set {_cooldown} to difference between {cooldown::butySzybkosci::%player%} and {_cooldown} set {_cooldown} to "%{_cooldown}%" replace all "second" and "seconds" with "sekund" in {_cooldown} send "&cMusisz odczekac &6%{_cooldown}%&c!" to player stop set {cooldown::butySzybkosci::%player%} to now apply potion of speed 2 to player for 30 seconds
  6. Kormic

    Skrypt na amulety

    Hmm... w Skript 2.5+ jest event 'on armor change', lecz może on tylko sprawdzać nowy item, nie wiem niestety jak sprawdzać zdjęty item.
  7. Kormic

    Skrypt na amulety

    Zaraz, masz Skripta 2.5, tak?
  8. Kormic

    Skrypt na amulety

    Z tym piórem poprawione. Co do butów, zdałem sobie sprawę, że miały działać przy założeniu Daj mi chwilę. EDIT: Zrobione. Niestety będzie wymagany dodatek SharpSK.
  9. Kormic

    Skrypt na amulety

    Powinno wszystko działać, w razie błędów daj znać. command /amulet [<text>] [<player>] [<integer>]: trigger: set {_arg3} to arg 3 set {_arg2} to arg 2 if arg 1 is "skok": give {_arg2} {_arg3} of feather named "&bAmulet Skoku" else if arg 1 is "szybkosc": give {_arg2} {_arg3} of diamond boots named "&bAmulet Szybkosci" on right click: if player's held item is feather named "&bAmulet Skoku": if {cooldown::butySkoku::%player%} is not set: set {cooldown::butySkoku::%player%} to now subtract 40 seconds from {cooldown::butySkoku::%player%} if difference between {cooldown::butySkoku::%player%} and now is less than 40 seconds: set {_cooldown} to {cooldown::butySkoku::%player%} add 40 seconds to {_cooldown} set {_cooldown} to "%difference between {cooldown::butySkoku::%player%} and {_cooldown}%" replace all "second" and "seconds" with "sekund" in "%{_cooldown}%" send "&cMusisz odczekac &6%{_cooldown}%&c!" to player stop set {cooldown::butySkoku::%player%} to now apply potion of jump boost 2 to player for 30 seconds else if player's held item is diamond boots named "&bAmulet Szybkosci": if {cooldown::butySzybkosci::%player%} is not set: set {cooldown::butySzybkosci::%player%} to now subtract 40 seconds from {cooldown::butySzybkosci::%player%} if difference between {cooldown::butySzybkosci::%player%} and now is less than 40 seconds: set {_cooldown} to {cooldown::butySzybkosci::%player%} add 40 seconds to {_cooldown} set {_cooldown} to "%difference between {cooldown::butySzybkosci::%player%} and {_cooldown}%" replace all "second" and "seconds" with "sekund" in "%{_cooldown}%" send "&cMusisz odczekac &6%{_cooldown}%&c!" to player stop set {cooldown::butySzybkosci::%player%} to now apply potion of speed 2 to player for 30 seconds on armor equip: if event-item is diamond boots named "&bAmulet Szybkosci": apply potion of speed 2 to player for 999 days on armor unequip: if event-item is diamond boots named "&bAmulet Szybkosci": remove speed from player Proszę.
  10. Kormic

    Skok

    on right click with slime block: if player's held item is not slime block named "&aSkok": stop if {cooldown::jump::%player%} is not set: set {cooldown::jump::%player%} to now subtract 5 seconds from {cooldown::jump::%player%} if difference between {cooldown::jump::%player%} and now is less than 5 seconds: set {_cooldown} to {cooldown::jump::%player%} add 5 seconds to {_cooldown} send "&cMusisz odczekac %{_cooldown}%&c!" to player set {cooldown::jump::%player%} to now push player upwards with speed 1 wait 1 tick push player forwards with speed 3 set {noFallDamage::%player%} to true while block under player is air: wait 1 tick clear {noFallDamage::%player%} on damage: if damage cause is not fall: stop if {noFallDamage::%victim%} is not set: stop cancel event command /dajitem: trigger: give player 1 slime block named "&aSkok" Spróbuj z tym skryptem. Jeśli coś nie będzie działało, daj znać.
  11. Faktycznie, zdałem sobie sprawę z tego, że chociażby nie musi sprawdzać czy szyba jest obok i czy aby przypadkiem nie musi się połączyć z blokiem. Dobra, jeszcze raz dzięki, postaram się w takim razie wdrożyć te usprawnienia do skryptu.
  12. Okej, dzięki, jeszcze jedno. Dlaczego mam użyć '@noupdate' przy setowaniu bloków? Z tego co wiem to to powoduje, że bloki wokół setowanego bloku się nie update'ują.
  13. 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?
  14. Kormic

    Hasło

    Koksu wspomniał o tym chwilę temu w AuthMe, dopytaj go skąd wziął taką wersję i tyle.
  15. Kormic

    Hasło

    Wątpię, aby istniał porządny plugin autoryzacyjny pozwalający na zapamiętanie hasła na konkretną ilość czasu.
  16. Kormic

    Hasło

    Jeszcze raz. Chcesz aby gracz gdy wpisze /zapamietaj [haslo], to już nigdy nie będzie musiał wpisywać hasła, tak?
  17. 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.
  18. on join: if player doesn't have permission "join.moderator": stop broadcast "&aModerator &a&l%player% &fdołączył na serwer!" on disconnect: if player doesn't have permission "join.moderator": stop broadcast "&aModerator &a&l%player% &fwyszedł z serwera!" Proszę.
  19. Nie chciałbym być niemiły, lecz w twoich ostatnio wrzucanych skryptach można było się doszukać błędów. Jeśli to są podstawy podstaw, mogę zrozumieć (chociaż z drugiej strony jest masa poradników dla świeżych), ale jeśli jest to coś już ponad podstawy to lepiej abyś dał sobie z tym spokój. Jak wspomniałem wyżej, w twoich skryptach były błędy, pomyśl jak bardzo złe działanie będzie miało utrwalanie twoich błędów przez widzów. Dodam, że twoje błędy nie będą jedynie wiązały się z wprowadzaniem ich w błąd, w gorszym przypadku możesz trafić na wrednego widza, który nie zostawi na tobie suchej nitki. Nie bierz tego jako argument ad personam, przemyśl jeszcze raz czy to jest rzeczywiście dobry pomysł, aby uczyć w (najprawdopodobniej) błędny sposób oglądające cię osoby i utrwalać w ich wiedzy twoje błędy. Dlatego właśnie wpierw naucz się samemu pisać skrypty, a dopiero później nauczaj innych.
  20. Kilka uwag ode mnie: 1. Wstawiaj skrypty w code lub na serwis code.skript.pl. 2. Dlaczego aliasem od komendy /god jest /god? 3. Myślę, że lepiej zrobić, aby komenda /god <player> była dostępna również dla konsoli. 4. Komenda /god nic nie daje, jedynie wysyła wiadomość. Jeśli chcesz, aby osoba używająca tej komendy była nieśmiertelna, musisz dodać event 'on damage' i wycofywać go jeśli gracz używa goda. 5. Na końcu komendy /god niepotrzebnie dodałeś 'else:'. 6. W przypadku komendy /heal dobrze byłoby dodać to samo co w punkcie 3. 7. Nie jest to błąd, lecz zamiast 'set player's food' można użyć zwyczajnie 'feed player'.
  21. W pierwszym skrypcie dobrze byłoby pod 'set loop-item to water bucket' dodać 'exit loop', aby nie napełniło wszystkich wiader w ekwipunku gracza.
  22. Kormic

    Bany, Muty, Tempbany

    Czyli dokumentacja kłamie? Przykład z dokumentacji: on connect: player doesn't have permission "VIP" number of players is greater than 15 kick the player due to "The last 5 slots are reserved for VIP players."
  23. Kormic

    Bany, Muty, Tempbany

    Do wywalania zbanowanego gracza lepiej użyć eventu 'on connect:', gdyż w tym wypadku uniknie się powiadomienia o przyjściu gracza na serwer (o ile takowe jest). Dodatkowo w 'kick %player%' nie powinno być procentów.
  24. Kormic

    Skrypt na gamemode

    Co do tej komendy z podpisem, zwykle się robi jedną linijkę z komentarzem i tam wstawia autora, a nie robi osobną komendę. Co do zmiany gamemode'a, gdzie się podział gamemode 3 (spectator)? Dodam, że niepotrzebnie jest 'else:' na końcu komendy.
  25. Kormic

    Weryfikacja

    @PanMaruda Jak to, przecież clicked slot może być również uznany za integera, bez tego nie działby chociażby warunek: if clicked slot is <integer>: Jeśli się mimo wszystko mylę to zwracam honor i prosiłbym, aby mnie wyprowadzić z błędu.
×
×
  • Dodaj nową pozycję...