Skocz do zawartości

Kormic

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

    11015
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    231

Treść opublikowana przez Kormic

  1. Proszę odinstalować wszystkie dodatki do Skript i sprawdzić czy problem nadal występuje. Jeśli tak, proszę usunąć cały folder "plugins/Skript" (oczywiście należy przed tym zapisać sobie gdzieś wszystkie skrypty, plik konfiguracyjny "config.sk", plik ze zmiennymi "variables.csv" i wszystkie inne ważne dla Pana pliki), a następnie zrestartować serwer. Skript utworzy na nowo cały folder, co powinno przywrócić poprawne ładowanie skryptów. Jest to mało prawdopodobne, ale jest szansa na to, że nawet ponowne wygenerowanie folderu przez Skript nie sprawi, że problem ustąpi. W takiej sytuacji sugeruję Panu odinstalować również wszystkie pluginy poza samym Skript i przetestować ładowanie skryptów. Dalsze problemy będą oznaką problemu z samym pluginem Skript, bądź z serwerem. Pozdrawiam.
  2. Proszę uprzejmie. Zakładam, że Pan miał na myśli zmienną lokalną. command /losowanie: permission: server.command.losowanie trigger: set {_player} to random player out of all players Rzecz jasna zmienna taka utrzymuje w pamięci swoją wartość do momentu zakończenia wykonywania wyzwalacza komendy. Poza nim jej wartość już nie istnieje. Pozdrawiam.
  3. Zakładam, że kod rzeczywiście znajduje się w jakimkolwiek wyzwalaczu (listenerze zdarzenia, wyzwalaczu komendy, periodicalu, itp.). Dwie uwagi. W przypadku Pana kodu nie ma sensu zapętlać wszystkich przedmiotów, gdyż warunek w trzeciej linijce jakkolwiek nie wykorzystuje zapętlanych przedmiotów. Warunek ten sprawdza tylko to czy gracz posiada wskazany przez Pana przedmiot. Efekt będzie taki, że dla każdego zapętlanego przedmiotu warunek ten będzie sprawdzany, co w sytuacji gdy gracz posiada ów telefon, sprawi, że dla n przedmiotów w ekwipunku gracza wiadomość zostanie wysłana n razy. Należy pamiętać o tym, że warunek sprawdza czy coś jest dokładnie tym przedmiotem. Nie może on więc posiadać różnic w nazwie, lore, zaklęciach, a nawet znacznikach NBT. Dla pewności może Pan do sprawdzenia wykorzystać poniższy kod. command /testitem: executable by: players trigger: player's tool is brick named "&7&lTelefon" with lore "test" send "&aWarunek został spełniony." to player Pozdrawiam.
  4. Proszę skorzystać z efektu 'exit loop'. Jak nazwa wskazuje, powoduje on zakończenie pętli i wykonanie kodu następującego po niej. Pozdrawiam.
  5. Bossbar zgodnie ze skryptem ma zniknąć po 180 sekundach (o ile Pan tego nie zmienił). Co do składni, napisałem skrypt zgodnie z tym artykułem opisującym użycie dodatku SkBee do tworzenia bossbarów, tak więc nie powinno być jakichkolwiek problemów. Dla pewności może Pan użyć poniższej komendy i spróbować ponownie. command /clearbossbars: permission: server.command.clearbossbars trigger: loop all players: delete bossbar named "privateBossbar - %player%" send "&6Wyczyszczono bossbary wszystkich graczy obecnych na serwerze." to sender Po jej użyciu bossbary wszystkich graczy na serwerze zostaną wyczyszczone, co pozwoli na ponowne wypróbowanie skryptu, który udostępniłem wyżej. Dodatkowo, podsyłam Panu wersję skryptu, w której przy wykonaniu skryptu usuwa się poprzedni bossbar, jeśli nie minęło 180 sekund od poprzedniego użycia komendy /bossbar. Co prawda nadal będzie następowało wykonywanie operacji usuwania gdy bossbar już nie istnieje po upłynięciu 180 sekund, jednakże wydaje mi się, że dodatek SkBee powinien obsługiwać taki przypadek. Jeśli jest inaczej, będziemy dalej kombinowali jak rozwiązać ów problem. options: bossbarDuration: 180 seconds bossbarCost: 10 command /bossbar [<text>]: executable by: players permission: server.command.bossbar permission message: "&cBrak permisji!" trigger: if arg is not set: send "&cUżycie: /bossbar <wiadomość>" stop if player's balance is smaller than {@bossbarCost}: send "&cNie masz wystarczająco pieniędzy! Koszt: {@bossbarCost}$." stop delete bossbar named "privateBossbar - %player%" set {_bossBar} to bossbar named "privateBossbar - %player%" with title arg with color yellow with style solid bar add player to bossbar players of {_bossBar} remove {@bossbarCost} from player's balance send "&aKosztowało cię to {@bossbarCost}$." send "&aUtworzono bossbar z wiadomością: &e%arg%" wait {@bossbarDuration} remove player from bossbar players of {_bossBar} delete {_bossBar} Pozdrawiam.
  6. Niech Pan przeczyta wszystko od początku do końca, aby zrozumieć schemat postępowania w skrypcie. Gdy już Pan to zrobi, może Pan skorzystać z przykładowego kodu, który udostępniłem na końcu mojej przedostatniej odpowiedzi. Pozdrawiam.
  7. Poprawiłem kod napisany przez ChatGPT. Morał jest taki, że nie wystarczy jedynie poprosić sztuczną (nie)inteligencję o kod. Trzeba również rozumieć jego działanie, aby móc zweryfikować poprawność odpowiedzi. Jeśli Pan chce, może Pan samemu przeanalizować mój kod, porównać go z odpowiedzią od ChatGPT i wywnioskować co było złe lub niepotrzebne. W razie pytań służę pomocą. Wracając do meritum, proszę uprzejmie. Kod nie był testowany. Skrypt wymaga dodatku SkBee do działania bossbaru i dowolnego pluginu zarządzającego ekonomią wspieranego przez Skript. options: bossbarDuration: 180 seconds bossbarCost: 10 command /bossbar [<text>]: executable by: players permission: server.command.bossbar permission message: "&cBrak permisji!" trigger: if arg is not set: send "&cUżycie: /bossbar <wiadomość>" stop if player's balance is smaller than {@bossbarCost}: send "&cNie masz wystarczająco pieniędzy! Koszt: {@bossbarCost}$." stop set {_bossBar} to bossbar named "privateBossbar - %player%" with title arg with color yellow with style solid bar add player to bossbar players of {_bossBar} remove {@bossbarCost} from player's balance send "&aKosztowało cię to {@bossbarCost}$." send "&aUtworzono bossbar z wiadomością: &e%arg%" wait {@bossbarDuration} remove player from bossbar players of {_bossBar} delete {_bossBar} Pozdrawiam.
  8. Kormic

    turbocash

    Pan nie podał błędów, które wyświetlił Skript przy przeładowaniu skryptu, więc nie wiem nawet co mam naprawić. Odnośnie tej naprawy, rozumiem, że jest to zlecenie naprawy skryptu, zgadza się? Jeśli tak, proszę podać wersję serwera i Skript wraz z listą dodatków do niego. Dzięki temu będę mógł napisać kod w inny sposób w razie potrzeby kompatybilności. Pozdrawiam.
  9. Należy użyć efektu 'open %inventory type% to %players%'. W miejsce %inventory type% należy wstawić odpowiednią wartość typu Inventory Type. Panu chodzi o 'enchanting table inventory'. Pozdrawiam.
  10. Kormic

    Skrypt na schowek

    Cytując klasyka, u mnie działa bez zarzutu. Nie widzę co by miało tutaj Panu nie działać, ponieważ nie mam zarzutów co do wyglądu kodu w linijkach od 46 do 56 (kod odpowiadający za pobieranie nadmiaru przedmiotów). Niech Pan spróbuje załadować ten skrypt gdy na serwerze jest sam Skript, bez wszelkich dodatków. Wyłączenie pozostałych skryptów również jest wskazane. Dodam, że poprawiłem ten skrypt. Może Pan wyczyścić listę {storage::*} (wystarczy prosta komenda wykonująca 'clear {storage::*}) i wykorzystać poniższy kod, aby sprawdzić wszystko jeszcze raz. Ponownie, proszę to robić mając jedynie Skript na serwerze, bez dodatków do niego i pozostałych skryptów. Co do pytania o rejestrowanie nowych receptur, SkQuery umożliwia to. Proszę znaleźć odpowiedni efekt w dokumentacji na stronie SkUnity. Pozdrawiam.
  11. Kormic

    Dzienne Misje

    No dobrze. Podsumujmy to jak ma wyglądać i (co ważniejsze) działać skrypt według Pana zaleceń, a właściwie to co ma zrobić zleceniobiorca. Na początku zleceniobiorca (od teraz będę określał jako skrypter) ma dokonać rozeznania (tak zwanego "researchu") na podanym przez Pana serwerze celem zbadania jak jest skonstruowany system zadań na tym serwerze. Następnie, skrypter ma za zadanie wymyślić co najmniej kilka zadań (a i pewnie nie na tym się skończy, ponieważ Skript umożliwia nasłuchiwanie do łącznie ponad 100 (bliżej 150) zdarzeń) i zaimplementować je w skrypcie. Brzmi łatwo, ale takim nie jest. Dalej, należy zaprojektować system losujący zadania i śledzący postęp wszystkich graczy, aby umożliwić chociażby wręczanie im nagród w zamian za ich wysiłek. Na koniec skrypter ma wszystko zapakować w ładne GUI, zapewne wielostronicowe. Z całym szacunkiem, ale w obliczu powyższych wymogów Pana zlecenie budzi jedynie pusty śmiech. Jeśli Pan faktycznie oczekuje, że ktoś się tego podejmie, proszę wyłożyć karty na stół i zaproponować jakieś sensowne wynagrodzenie. Innym rozwiązaniem jest skorzystanie z istniejących już pluginów implementujących systemy zadań na serwerze. Dodam tylko, że Pana drugie zlecenie jest trochę mniej, ale nadal wymagające. Właściwie to te drugie zlecenie ma wprowadzić system stałych misji, czyli jest bezpośrednio powiązane z tym zleceniem. Pozdrawiam.
  12. Kormic

    Skrypt na schowek

    Zdaje się, że ja kiedyś napisałem ten skrypt. Ów skrypt działa na zasadzie przenoszenia nadmiaru przedmiotów (ściślej mówiąc, obu rodzajów złotych jabłek, pereł i totemów). Aby skrypt zadziałał, musi Pan posiadać >= n+1 sztuk danego przedmiotu w ekwipunku, gdzie n to dozwolona jego ilość określona w sekcji 'options'. Skoro więc Pan ustawił limit pereł na 4, musi Pan mieć co najmniej 5 pereł w ekwipunku, aby skrypt pobrał (czy też jak to Pan ujął - wpłacił) Pana nadmiarowe perły. Jeśli skrypt nadal nie działa, proszę podać: wersję serwera, wersję Skript, dodatki do Skript. Proszę również uprzednio zweryfikować czy żaden z innych skryptów nie wpływa jakkolwiek na działanie tego skryptu. Pozdrawiam.
  13. Kormic

    Skrypt na Stoniarki

    Już powstało wiele takich skryptów na tym forum. Niech Pan znajdzie sobie jakiś, który przypadnie Panu do gustu. Nawet wyręczę Pana i dam Panu link, aby mógł sobie samemu wyszukać. https://skript.pl/szukaj/?q=stoniarki&quick=1&type=forums_topic&nodes=134 Pozdrawiam.
  14. Kormic

    turbocash

    Jesli Pan posiada Skript w wersji 2.3+, nie ma potrzeby korzystania z dodatków do niego w celu wysyłania wiadomości na action bar. Proszę skorzystać z tego efektu. Wystarczy zamienić linijkę 29. i 3 ostatnie linijki. Dodam, że wyczyszczenie zawartości action bar można zrealizować poprzez wysłanie pustej wiadomości (tekst ""). EDIT: Trzy sprawy dodatkowe. Linijka 16. nie będzie działała tak jak powinna, gdyż próbuje ona pobierać wartość nieistniejącej zmiennej {arg-2}, a w dodatku próbuje przemianowywać argument 2. na listę graczy online, chociaż argument ten przekazuje informację o jednym graczu. Należy więc zamienić typ drugiego argumentu w nagłówku (pierwszej linijce) komendy na 'players' i napisać linijkę 16. jak poniżej. set {_targets::*} to arg-2 Dzięki temu można również usunąć linijki 17-19, gdyż już sam Skript sprawdza poprawność podanego argumentu komendy. Teraz tak. Jeśli chcemy na przykład dać graczom o nazwach abc123, def456, xyz789 turbodrop, należy wykonać komendę w poniższy sposób. /turbocash <ilość minut> <lista graczy> # Przykłady: /turbocash 10 abc123,def456,xyz789 Turbodrop będzie trwał 20 razy krócej niż powinien. Proszę zauważyć, że Pan w pętli while odczekuje 1 tick, a powinien Pan odczekiwać 1 sekundę. Nie ma potrzeby parse'owania w linijce 8., ponieważ argument 1. już jest liczbą. Definicja komendy tego wymaga (mowa o [<number>]]). Ponadto, ponieważ już sama komenda sprawdza poprawność argumentu, można usunąć linijki od 9 do 11. Pozdrawiam.
  15. Kormic

    skrypt na /ekwipunek

    Proszę bardzo. command /ekwipunek: executable by: players trigger: if {equipmentDrop::toggle::%player's uuid%} is not set: set {equipmentDrop::toggle::%player's uuid%} to true send "&aWyrzucanie przedmiotów włączone." to player stop clear {equipmentDrop::toggle::%player's uuid%} send "&6Wyrzucanie przedmiotów wyłączone." to player on player drop: {equipmentDrop::toggle::%player's uuid%} is not set cancel event send "&6Aby móc wyrzucać przedmioty z ekwipunku, wykonaj komendę /ekwipunek." to player Pozdrawiam.
  16. Kormic

    brush w regionie spawn

    No dobrze. Modyfikacja jest prosta, proszę spojrzeć na poniższy kod. on left click with blaze rod: if name of event-item contains "&8» &6Brush ": if "%regions at player%" contains "spawn": send "&cNie możesz używać brusha na spawnie" to player stop set {_b1} to block at event-block set {_b2} to block at event-block # Dalszy kod... Przepisałem kod z pierwszego listenera zdarzenia 'on right click' do drugiego listenera, a więc połączyłem je tak jak sugerowałem Panu. Jedynie dwie różnice to brak anulowania eventu (jeśli Pan tego potrzebuje, może Pan dopisać 'cancel event' wewnątrz warunku sprawdzającego region) i brak możliwości używania dowolnego pędzla w regionie "spawn", a nie tylko pędzla poziomu 1. jak to wcześniej miało miejsce. Pozdrawiam.
  17. Kormic

    skrypt na nie moby

    Proszę bardzo. on spawn: block below event-entity is not air cancel event Pozdrawiam.
  18. Przyczyną braku poprawnego działania skryptu (a właściwie błędu interpretacji) jest brak wcięć (spacje lub tabulacje, zalecam stosować te drugie) w kodzie podlegającym warunkom 'if' i 'else if'. Pozdrawiam.
  19. Pan dodaje do kodu NBT prawidłowe dla wersji 1.20.5+ pomimo faktu, iż Pana serwer korzysta z wersji gry 1.20.1. Mówiłem, aby Pan zwrócił na to uwagę. To jest przyczyną braku działania skryptu. Dla wersji poniżej 1.20.5, informacje o właścicielu głowy i jej teksturze zawiera znacznik 'SkullOwner'. Proszę więc wybrać na stronie wersję 1.20 i użyć poprawnych dla niej NBT. Pozdrawiam.
  20. Kormic

    Kody

    Zapętlanie wszystkich graczy to złe rozwiązanie. Niech Pan poprosi użytkownika w formularzu o nazwę na serwerze i wygenerowany kod. Wtedy nie ma potrzeby martwienia się o unikalność kodu i możliwość wpisania kodu przez kogoś nieupoważnionego. A przynamniej prawdopodobieństwo takiego zdarzenia drastycznie spada. Pozdrawiam.
  21. Proszę usunąć przedimek 'the'. Co prawda Skript pozwala na używanie przedimków określonych i nieokreślonych, ale należy mieć na uwadze to, że większa ilość słów wiąże się w pewnych sytuacjach z większym obciążeniem dla interpretera, a w skrajnym przypadku z nieuzasadnionymi błędami zgłaszanymi przez Skript. Tak więc najlepiej po prostu ich nie używać. Nie mają one jakiegokolwiek pozytywnego wpływu na działanie skryptu. Jedyny wyjątek od tej reguły to sprawdzanie czy jakiś obiekt jest jakiegoś typu, na przykład: if attacker is a player: # Dalszy kod # Czy też: if {_i} is an integer: # Dalszy kod Zapisywanie liczby jako tekst, a następnie interpretowania owego tekstu jako liczby jest działaniem całkowicie zbędnym. Proszę tak nie robić. Dlaczego Pan przesyła przedmiot i typ kliknięcia jako tekst? Dla przedmiotu proszę użyć typu 'item', a dla typu kliknięcia 'click type'. Niech Pan jeszcze sprawdzi poniższy kod. Jeśli on nie działa, oznacza to problemy z Vaultem lub pluginem odpowiadającym za ekonomię, ewentualnie ze Skriptem. command /portfel: trigger: send "%player's balance%" to player Pozdrawiam.
  22. Proszę bardzo. on death of player: attacker is a player execute console command "give %attacker% diamond %random integer between 1 and 6%" Pozdrawiam.
  23. W porządku, nie ma najmniejszego problemu. Jestem niemalże pewien, że warunek 'is between' definiuje przedział obustronnie domknięty. Jednak jeśli Pan mi nie wierzy, może Pan samemu to przetestować. Właśnie tak jest. Dlatego zasugerowałem wyżej sprawdzenie czy ostatnio dodane zabezpieczenie w skrypcie działa poprawnie (a zwłaszcza czy w ogóle działa). Co do sensu skryptu, ja go postrzegam jako jedną z wielu prób uczynienia trybu offline równie bezpiecznym co tryb online, choć jest to niezwykle trudne, a koszty rozwoju dobrego mechanizmu zabezpieczeń niejednokrotnie przekraczają cenę zakupu kopii Minecrafta. Pozdrawiam.
  24. Po primo, proszę poprawić formatowanie kodu i wstawić go w formatowanie "Kod" oznaczone symbolem "<>". Po secundo, Pana skrypt działa tylko dla przypadku gdy jeden gracz jest na serwerze. Musi Pan śledzić ilość graczy w regionie. Można w tym celu stworzyć zmienną zwiększającą się i zmniejszającą o 1 gdy gracz odpowiednio wejdzie i wyjdzie z regionu. Jeśli jej wartość wynosi 0, oznacza to, że w regionie nie ma graczy. Warto również nasłuchiwać do zdarzeń 'on join' i 'on quit', aby zwiększać i zmniejszać wartość tego licznika w przypadku gdy jakiś gracz dołączy na serwer będąc w regionie lub wyjdzie z serwera będąc w nim. Pozdrawiam.
  25. Proszę uprzejmie. # Wersja z blokowaniem otwierania stołu rzemieślniczego: on right click on crafting table: cancel event send "&cNie możesz używać stołu rzemieślniczego do wytwarzania przedmiotów." to player # Wersja z blokowaniem wytwarzania przedmiotów: on craft: cancel event send "&cNie możesz używać stołu rzemieślniczego do wytwarzania przedmiotów." to player Pozdrawiam.
×
×
  • Dodaj nową pozycję...