-
Ilość zawartości
11012 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
230
Treść opublikowana przez Kormic
-
Nie widzę jakichkolwiek błędów syntaktycznych (składniowych) i tym bardziej błędów logicznych. Nie rozumiem zwłaszcza tego w jaki sposób komendy wysyłane z poziomu konsoli mogą być blokowane, ponieważ w każdym przypadku jest konieczność spełnienia warunku, iż wysyłający nie jest konsolą. Możliwości są więc dwie: Jakiś inny skrypt (możliwe, że nieco zmieniona kopia powyższego skryptu) powoduje blokadę tych komend. Proszę przejrzeć wszystkie skrypty na serwerze. Być może jest to nawet jakiś plugin, ale to można sprawdzić dopiero po upewnieniu się, że żaden skrypt nie jest przyczyną problemu. Na serwerze znajduje się jakaś starsza wersja Skripta lub jego niestabilne wydanie (z dopiskiem 'pre' lub 'beta'). Warto przejrzeć również listę dodatków, ponieważ niektóre (a szczególnie te od dawna nieaktualizowane) dodatki mogą powodować problemy nawet z tak prostymi skryptami. Warto więc sprawdzić wersję Skripta, sprawdzić czy wszystkie dodatki są aktualne i dopasować wszystko do wersji serwera. Jeżeli nie wie Pan jak je dobrać do wersji serwera, proszę podać te informacje i pomogę. Naniosłem również kilka poprawek do skryptu tak, aby kod był czytelniejszy. Logika działania jest prawie ta sama. Jedyne co uległo zmianie to opcjonalność argumentów (teraz są obowiązkowe, tak powinno być w przypadku tego skryptu) i wiadomość w przypadku blokady dopełnienia tabulatorem konkretnej komendy ('tab complete'). Pozdrawiam.
-
Musi Pan podstawić (czy też jak Pan powiedział, wkleić) ilość cyfr po przecinku, tryb zaokrąglania i podstawić dzielenie placeholderu '{player_max_health}' przez 2. Wydaje mi się, że Pan nadal nie rozumie tego, iż ten placeholder wymaga podstawienia do jego nazwy pewnych danych. W oryginalnej formie nic nie zrobi. To tak jakby oczekiwał Pan, że działanie 'a + b' zwróci konkretną liczbę bez podstawienia jakichś wartości za a i b.
-
Mam wrażenie, że Pan nie przeczytał. Cała moja wypowiedź była poświęcona podstawianiu wartości do placeholdera. Jeszcze raz przypominam o przeczytaniu instrukcji użycia rozszerzenia 'Math'. Link do niej wysyłałem wyżej.
-
Czyli Pan w ogóle nie podstawił wartości do tego placeholdera. Co więcej, nie przeczytał Pan tego co napisałem i oczekuje Pan, że to zadziała poprawnie. Proszę przeczytać wszystko to co pisałem wyżej.
-
Za mało informacji. Proszę opisać zwięźle czym jest ten "syzyf symulator". Po nazwie mogę się domyślić, że jest to nawiązanie do mitologii greckiej, ale mimo to chciałbym wiedzieć w jaki sposób ma działać skrypt. Co do ustawiania szybkości poruszania się, muszę zobaczyć fragment kodu. Proszę pamiętać, że te wyrażenie działa tylko na graczy. Jeżeli chodzi o stojak na zbroję, też muszę ujrzeć fragment kodu, bo inaczej nie będę w stanie Panu pomóc. Mogę się jedynie domyślać, że stojak jest teleportowany ze zbyt małą częstotliwością lub też gracz porusza się ze zbyt dużą prędkością. Nie ma co się martwić teleportowaniem stojaka na większe odległości, ponieważ Minecraft w takich sytuacjach dokonuje swoistej interpolacji i sprawia wrażenie szybkiego ruchu z punktu A do punktu B (nie ma efektu nagłego "przeskoku"). Pozdrawiam.
-
Co konkretnie nie działa? Komenda czy przyciąganie?
-
Proszę pokazać jak Pan użył tego placeholdera. Mam wrażenie, że Pan nie do końca poprawnie podstawił do niego wartości. Proszę również wpisać komendę '/papi ecloud list installed'. Wśród nich powinno pokazać się rozszerzenie 'Math' (może się nazywać 'math-expansion').
-
Czy dał Pan między 'precision' i 'rounding' dwukropek? Proszę spojrzeć na szablon placeholdera. Fakt, popełniłem czeski błąd, ale proszę też czytać wiki PlaceholderAPI i to co napisałem.
-
Ten temat został przeniesiony.
-
Zlecenie zostało wykonane.
-
Proszę. Naniosłem w skrypcie kilka poprawek, ale logika działania pozostała ta sama. import: net.citizensnpcs.api.event.NPCClickEvent options: NPCName: <#FF0000>&lA<#00FF00>B<#0000FF>C GUIName: <#FF0000>&lD<#00FF00>E<#0000FF>F local function bBuyTicket(p: player, type: text, world: text, price: number): if {_p}'s balance < {_price}: send "Nie jesteś godzien przejścia przez bramy piekła." to {_p} stop close {_p}'s inventory remove {_price} from {_p}'s balance execute console command "mv tp %{_p}% %{_world}%" send "Kupiłeś bilet %{_type}%." to {_p} on NPCClickEvent: set {_npc} to event.getNPC() {_npc}.getFullName() is "{@NPCName}" set {_p} to event.getClicker() set {_gui} to chest inventory with 1 row named "{@GUIName}" set slot 4 of {_gui} to paper named "Bilet do piekła" with lore "wart 100$" open {_gui} to {_p} on inventory click: event-inventory is not player's inventory name of event-inventory is "{@GUIName}" cancel event if index of clicked slot is 4: bBuyTicket(player, "nether", "world_nether", 100) Teraz opiszę pokrótce działanie skryptu i uzasadnię dlaczego napisałem go w ten sposób. Myślę, że opisanie działania zaczynając od kliknięcia na NPC będzie najbardziej sensowne. Więc tak. Zdarzenie 'on click on entity' będzie działało tylko dla kliknięć prawego przycisku myszy, ponieważ kliknięcie lewym przyciskiem myszy na byt jest rejestrowane przez listener zdarzenia 'on damage'. Skript zresztą o tym ostrzegł na jednym z załączonych obrazów. Aby to ominąć, moglibyśmy nasłuchiwać jednocześnie do zdarzeń 'on damage' i 'on right click on entity', jednakże twórcy pluginu Citizens oferują narzędzia ułatwiające pracę twórców pluginów (a więc i częściowo skryptów), które określamy mianem API. Citizens API pozwala na nasłuchiwanie do zdarzenia NPCClickEvent, które rejestruje każde kliknięcie na NPC, więc problem jest rozwiązany. Aby jednak wykorzystać API, musimy skorzystać z dodatku skript-reflect, który pozwala na korzystanie z (prawie) wszystkich instrukcji udostępnianych przez pluginy i przez Javę, więc jest to obiektywnie najpotężniejszy dodatek do Skripta, który daje najwięcej możliwości, ponieważ de facto to sam skrypter wytycza granice. Wróćmy do opisu. Dodałem dwa załączniki do dokumentacji Citizens API, które pokazują dlaczego i jakie metody (dla niewtajemniczonych, metody dla uproszczenia można traktować jak funkcje przypisane do klasy) wykorzystuję. Samo tworzenie GUI zalecam realizować przy pomocy samego Skripta, bez użycia innych dodatków. Myślę, że powyższy kod pokazuje jak należy to robić. Inne przykłady wykorzystania można znaleźć tutaj i tutaj. Co do samej funkcji, uczyniłem ją lokalną. Więcej o lokalnych funkcjach może Pan przeczytać zapoznając się z tą odpowiedzią, w której opisałem czym one się różnią od funkcji zwykłych (globalnych) i do czego mogą być stosowane. Ostatnia zmiana, o której chciałem wspomnieć to wykorzystanie heksadecymalnych kodów kolorów zamiast wielokrotnego używania podstawowych kodów kolorów (choć może to się nie przydać, wszystko zależy od tego czy wspiera je również plugin Citizens). Więcej informacji o hex kolorach można znaleźć w dokumentacji. Dodatkowo, przeniosłem nazwy NPC i GUI do sekcji 'options', aby można było łatwo je modyfikować w razie potrzeby. Poza tym, ładniej to wygląda gdy nazwy nie są bezpośrednio wklejone do kodu. Jeżeli jest Pan ciekaw niektórych linijek w kodzie, zachęcam do zapoznania się z dokumentacjami Skripta i dodatku skript-reflect. Pozdrawiam.
-
Trochę się zdziwiłem tym, że gracz ma maksymalnie 18 serduszek, ale ufam, że Pan po prostu zmodyfikował maksymalną ilość punktów życia gracza. W takim przypadku przyda się drugi placeholder: %math_[precision]:[rounding]_<expression>% gdzie (jeśli dobrze zrozumiałem kod źródłowy rozszerzenia): precision - liczba miejsc po przecinku, rounding - tryb zaokrąglania (możliwe wartości: up, down, ceiling, floor, half-down, half-even), dokładne ich opisy można znaleźć tutaj. W naszym przypadku chodzi o pozbycie się części ułamkowej, więc należy ustawić 'precision' na zero, a 'rounding' najlepiej będzie ustawić jako 'down', ponieważ zaokrąglenie w kierunku zera wydaje się najbardziej sensowne. A więc placeholder przyjmie finalnie postać: %math_0:down_<wyrażenie matematyczne>% W miejsce wyrażenia matematycznego należy wstawić te dzielenie placeholdera przez 2, bez nawiasów ostrokątnych rzecz jasna. Pozdrawiam.
-
Powinny. Ręki nie dam sobie uciąć, bo oczywiście nie pamiętam wszystkich, ale powinny. Pozdrawiam.
-
Ten temat został zamknięty.
-
W takim razie najprawdopodobniej nie będę nic w stanie z tym zrobić, ponieważ inny skrypt lub plugin musi sterować dropem bloków za pomocą efektu 'drop', a ja nie mam możliwości zareagowania na to. Oczywiście mogę usuwać każdy przedmiot kamienia pojawiający się na ziemi, jednakże jestem w stanie wykonywać to jedynie globalnie - to znaczy nie jestem w stanie tego zdarzenia jakkolwiek powiązać z graczem. Jedyne wyjście to podpięcie się pod ten skrypt lub plugin wyrzucający przedmioty na ziemię po wykopaniu bloku i zmodyfikowanie dropu zgodnie z wartością zmiennej przypisanej do gracza. Co prawda wątpię, aby w moim kodzie był jakiś błąd, ale może Pan sprawdzić go na zwykłym kamieniu. Nie powinno nic wylecieć podczas kopania kamienia z zaklęciem jedwabnego dotyku. Dlaczego jedwabny dotyk? Myślę, że to oczywiste. Pozdrawiam.
-
Zlecenie zostało wykonane.
-
Proszę. Skrypt nie był testowany. options: GUIName: &aUstawienia command /ustawienia [<text>]: executable by: players trigger: set {_gui} to chest inventory with 1 row named "{@GUIName}" if {settings::%uuid of player%::stoneDropDisabled} is not set: set slot 4 of {_gui} to lime wool named "&aDrop kamienia włączony" else: set slot 4 of {_gui} to red wool named "&cDrop kamienia wyłączony" open {_gui} to player on inventory click: event-inventory is not player's inventory name of event-inventory is "{@GUIName}" cancel event index of clicked slot is 4 if {settings::%uuid of player%::stoneDropDisabled} is not set: set {settings::%uuid of player%::stoneDropDisabled} to true send "&cDrop kamienia został wyłączony." to player else: clear {settings::%uuid of player%::stoneDropDisabled} send "&aDrop kamienia został włączony." to player close player's inventory on break: set {_drops::*} to drops of event-block using player's tool {_drops::*} contains stone {settings::%uuid of player%::stoneDropDisabled} is set cancel drops of items remove all stone from {_drops::*} drop {_drops::*} at event-block Pozdrawiam.
-
Podałem link do rozszerzenia Math. Posiada ono tylko dwa placeholdery, z czego drugi pozwala dodatkowo na dokładność i zaokrąglanie wyniku działania matematycznego. Panu on się jednak nie przyda, więc proszę użyć ten pierwszy. Wystarczy po 'math_' wstawić dzielenie placeholderu %player_max_health% przez 2. Zanim Pan napisze, że nie działa, proszę przeczytać opis tego rozszerzenia i jak należy posługiwać się tym placeholderem. Pozdrawiam.
-
Jeżeli ma Pan wersję 1.20.1, proszę zaktualizować Skripta do wersji 2.8.7, czyli najnowszego stabilnego wydania. Proszę również przetestować skrypt bez dodatków do Skripta obecnych na serwerze. Swoją drogą, zauważyłem właśnie błąd w skrypcie. Zapomniałem podmienić nazwę funkcji przy jej wywoływaniu. options: GUIName: &6&lNazwa GUI local function execCommandCloseInv(p: player, t: text): close {_p}'s inventory execute {_p} command {_t} on right click: name of player's tool is "&6&lSerwery" set {_gui} to chest inventory with 3 rows named "{@GUIName}" set slot (integers from 0 to 26) of {_gui} to lime glass pane named " " set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE" set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE" set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE" open {_gui} to player on inventory click: event-inventory is not player's inventory name of event-inventory is "{@GUIName}" cancel event if index of clicked slot is 12: execCommandCloseInv(player, "/komenda1") else if index of clicked slot is 13: execCommandCloseInv(player, "/komenda2") else if index of clicked slot is 14: execCommandCloseInv(player, "/komenda3") Pozdrawiam.
-
Potrzebuje Skrypt na Smoczy Miecz z Anarchia.GG
Kormic odpowiedział(a) na Kna9946 pytanie w Pytania i problemy
Cóż... z tego co mi wiadomo, Aternos nie udostępnia wersji nowszej niż 2.1.2, a według słów członków zespołu Aternos powodem jest między innymi to, iż nowsze wersje Skripta posiadają możliwości, które pozwalają na przekraczanie wytyczonych przez nich granic. Przykładem jest te wyrażenie, które pozwala na ustawienie fałszywej ilości graczy na serwerze. Kolejnym powodem jest następujący fakt - nowe wersje Skripta są udostępniane na Githubie, co skutkuje problemem z pobraniem tego pluginu przez ich wyszukiwarkę pluginów, ponieważ system nie jest w stanie tego automatycznie zaktualizować, a im się nie chce ręcznie usuwać niewygodnych dla nich elementów składni i aktualizować Skripta. Wracając do meritum, sam skrypt powinien zadziałać na wersji 2.1.2, a więc powinno być możliwe załadowanie go na Aternosie. Jedynym ograniczeniem jest to, że netherytowe przedmioty nie będą przez niego obsługiwane. Jest to spowodowane tym, że netheryt pojawił się w wersji 1.16 w 2020 roku, a Skript 2.1.2 został wydany w marcu 2014 roku, czyli za czasów wersji MC 1.7. Pozdrawiam.- 6 odpowiedzi
-
- anarchia.gg
- smoczymiecz
-
(i 3 więcej)
Oznaczone tagami:
-
Jak grochem o ścianę. Nadal brak informacji o serwerze, o które prosiłem, a będąc uczciwym, ja i jeszcze inna osoba prosiła. Zakładam, że ma Pan wersję Skripta 2.7 lub wyższą, bo bez tego skrypt (ściślej mówiąc, fragment z wykonywaniem komendy) nie ma prawa zadziałać. Być może jest problem ze składnią 'make %command senders% execute command %texts%', nie wiem i nie mam jak tego sprawdzić. Można spróbować zamienić ostatnią linijkę w funkcji 'execCommandCloseInv' na: execute {_p} command {_t} Jeżeli to nie pomoże, proszę odpowiedzieć na powyższe pytania dotyczące serwera. Proszę również pokazać skrypt, to znaczy jak on został zmodyfikowany pod względem komend i nazw. Pozdrawiam.
-
Wypadało wspomnieć o tym na początku, warto być dokładnym w zleceniach. Proszę. on inventory close: name of event-inventory is "NazwaGUI" set {_items::*} to (all items in event-inventory) where [name of item input is "domek"] loop {_items::*}: execute console command "/komenda" remove loop-value from event-inventory Pozdrawiam.
-
Proszę. on join: wait 1 tick teleport player to location(100, 100, 100, world "world", 0, 0) clear player's inventory add compass named "&6&lSerwery" to player's inventory on player drop: cancel event send action bar "&6Nie możesz wyrzucać przedmiotów." to player on player pickup: cancel event send action bar "&6Nie możesz podnosić przedmiotów." to player Pozdrawiam.
-
Ten temat został przeniesiony.
-
Zlecenie zostało wykonane.
