-
Ilość zawartości
11012 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
230
Treść opublikowana przez Kormic
-
usuwanie danego itemu z ekwipunku gracza
Kormic odpowiedział(a) na block18c pytanie w Pytania i problemy
Jeżeli "skompresowany" wariant bloku ma być blokiem tego samego typu, jedynym wyjściem jest zapętlenie wszystkich przedmiotów w ekwipunku gracza i zliczanie ile zwykłej ziemi gracz ma w ekwipunku. Tutaj z pewnością przyda się te wyrażenie. Zagłębiając się w szczegóły, warto wspomnieć, że można to zrobić na dwa sposoby: leniwy i elegancki. Leniwy sposób polegałby na zapętleniu przedmiotów w ekwipunku gracza dwa razy. Pierwsza pętla służyłaby policzeniu zwykłych bloków ziemi w ekwipunku gracza (czyli sprawdzeniu czy gracz ma w ogóle 64 bloki zwykłej ziemi w ekwipunku), a drugie usuwaniu zwykłych bloków z ekwipunku gracza tak długo aż skrypt nie usunie 64 bloków. Elegancki sposób wiązałby się ze sprawdzaniem slotów w ekwipunku gracza od 0 do 35. Należałoby dodawać indeksy slotów z blokami zwykłej ziemi do jakiejś lokalnej listy tak długo aż nie zliczymy 64 bloków. Po ukończeniu pętli należałoby ustawić sloty o zapisanych indeksach na powietrze. Oczywiście zawsze istnieje prawdopodobieństwo w przypadku obu rozwiązań, że ostatni slot (przedmiot) wraz z resztą slotów (przedmiotów) da nam więcej niż 64 bloki. Wtedy należy odpowiednio zmiejszyć ilość bloków ziemi w tym slocie (przedmiocie) tak, aby dopełnić do liczby 64. Jeśli nie jest to zrozumiałe, proszę wyobrazić sobie przykład, że gracz ma 3 sloty z blokami ziemi: slot nr 13 - 25 zwykłych bloków ziemi slot nr 28 - 29 zwykłych bloków ziemi slot nr 31 - 18 zwykłych bloków ziemi --- Łącznie w tych 3 slotach: 72 zwykłe bloki ziemi. Wniosek: możemy ustawić sloty 13 i 28 jako powietrze, a ze slotu 31 należy zabrać 10 bloków ziemi. Dodam, że odjęcie w przykładzie tych 10 bloków ziemi można zrealizować w poniższy sposób: options: compressedDirtAmount: 64 # [...] # {_totalSum} = 72 set slot 31 of player's inventory to ({_totalSum} - {@compressedDirtAmount}) of dirt Pozdrawiam. -
Proszę. on place of end crystal: name of player's tool is not "&d&lEND CRYSTAL" cancel event send "Nie możesz stawiać zwykłego kryształu Kresu." to player Jeżeli nie zadziała, proszę spróbować ponownie z poniższym skryptem. on place: type of player's tool is end crystal item name of player's tool is not "&d&lEND CRYSTAL" cancel event send "Nie możesz stawiać zwykłego kryształu Kresu." to player Pozdrawiam.
-
Zlecenie zostało wykonane.
-
Ten temat został przeniesiony.
-
Nie działa nic nie mówi o istocie problemu. Zawsze należy podać również błędy zwrócone przez Skripta lub opisać co konkretnie nie działa. Po spojrzeniu na kod skryptu mogę stwierdzić jedno - osoba, która go napisała, stwierdziła, że napisze skrypt metodą prób i błędów bez zaglądania do dokumentacji Skripta. Dodatkowo, wysoce prawdopodobne jest, iż sztuczna inteligencja miała w tym swój niemały udział. Jestem również prawie pewien, że to Pan napisał ten skrypt, bo widziałem wcześniej podobne kreacje, które Pan wysyłał. Zalecam zapoznać się z podstawami Skripta i nie pisać bezmyślnie skryptów. Dokumentacja i strona wiki.skript.pl na dobry początek wystarczą. Pozdrawiam.
-
Proszę. Ze względu na drugi punkt zlecenia musiałem zmienić typ argumentu na 'text', ponieważ podanie nieistniejącego gracza w wersji skryptu z 'offlineplayer' skutkowałoby wyświetleniem wiadomości o poprawnym użyciu, a nie o nieobecności gracza na serwerze. command /sprawdz <text>: usage: poprawne użycie: /sprawdz (nick) trigger: set {_p} to arg parsed as offline player if any: {_p} is offline {_p} is not set then: send "Tego gracza nie ma na serwerze" stop stop if {_p} has permission "admin.admin" send "&cGracz &4%argument% &cjest teraz sprawdzany!" to all players Pozdrawiam.
-
Który? Wysłałem dwa. Poza tym niemożliwe jest aby to tak działało, nie popycham przecież moba do przodu. Popycham go wzdłuż wektora od trafionego do strzelającego. Jeśli chodzi o drugi, nad samym drugim skryptem napisałem również co należy zrobić jeśli popychanie nie będzie działało jak należy. Być może przemnażanie wektora przez stałą działa nie tak jak zaplanowali to sobie twórcy Skripta. To jest jedynie zmiana modułu wektora, ponieważ jest to przemnażanie każdej jego składowej przez stałą. Zdaje się, że autor nie sprawdził tego o co poprosiłem, więc jeśli mógłbyś to przetestować to dziękuję. Pozdrawiam.
-
Ten kod jest nieprawidłowy. Proszę spojrzeć na składnię pokazaną w dokumentacji dodatku skript-placeholders: (placeholder[ ]api|papi) [placeholder] request (for|with) [the] prefix[es] %strings% Jak widać, słowo 'prefix' przed faktyczną nazwą prefiksu placeholdera jest wymagane. Ponadto, każdy placeholder wyróżnia się prefiksem i identyfikatorem oddzielonymi podkreślnikiem, a w kodzie widzę opisany jedynie prefiks, więc placeholder jest niezgodny z zaleceniami PlaceholderAPI. Szczerze mówiąc, nie mam pewności czy taki kod zadziała, bo być może PlaceholderAPI zezwoli na placeholder z samym prefiksem, ale jest to zła praktyka. Poniżej wstawiam przykład z dokumentacji, który pokazuje jak należy rejestrować nowe placeholdery. on placeholderapi placeholder request for the prefix "custom": if the identifier is "message": # The placeholder would be 'custom_message' set the result to "Hey there %player%!" Tak jak widać w komentarzu w kodzie, powyższy skrypt rejestruje placeholder 'custom_message', który można użyć wszędzie tam gdzie jest zapewnione wsparcie PlaceholderAPI. Jeszcze jeden błąd się wkradł do kodu: set the result to "{balance::%player%}" Nawet jeśli placeholder zadziała, za niego zostanie podstawiony napis '{balance::nazwa gracza}'. Powodem jest brak procentów przy zmiennej. Można prosić o treść błędu/ostrzeżenia? Proszę również o podanie: wersji Skripta, listy dodatków do Skripta wraz z ich wersjami (w szczególności skript-placeholders), silnika serwera i jego wersji. Jeżeli rejestrujemy placeholder za pomocą dodatku skript-placeholders, ta komenda nam się w ogóle nie przyda. Niemniej jednak, wytłumaczę dlaczego tak jest i jak można użyć tego rozszerzenia. Powodem takiego stanu rzeczy jest to, że w eCloud (ExpansionCloud) nie istnieje zweryfikowana wersja rozszerzenia Skript, co można sprawdzić tutaj. Wystarczy wyszukać Skript aby zobaczyć, że istnieją łącznie 4 wersje (różnie nazwane, ale podejrzewam, że oferują to samo). Żadna z nich nie posiada symbolu niebieskiej tarczy, a więc są niezweyfikowane. Aby możliwe było pobranie rozszerzenia z poziomu konsoli czy gry za pomocą powyższej komendy, musi ono być zweryfikowane. Jeżeli nie jest, można je pobrać ze strony eCloud, którą podlinkowałem wyżej. PlaceholderAPI jasno informuje, że właściciele serwerów na własną odpowiedzialność instalują niezweryfikowane rozszerzenia. W końcu nie wiadomo co tak właściwie może w nich być. Z ciekawości jednak sprawdziłem kod źródłowy tego rozszerzenia Skript i nie widzę niczego podejrzanego. Zresztą, cały plik .jar waży jedyne 3 KB i składa się z jednej klasy, więc zainstalowanie go na serwerze nie powinno być źródłem jakichś problemów. Gdy już mamy zainstalowany placeholder, możemy pobierać zmienne ze Skript jakie tylko sobie zażyczymy w dowolnym pluginie wspierającym PlaceholderAPI, aby na przykład wstawić ich wartości na scoreboardzie. %skript_<nazwa zmiennej>% Jeżeli potrzebujemy wstawić gracza (lub jego UUID) do nazwy zmiennej, możemy użyć frazy '{player}' lub '{uuid}'. Żeby to zobrazować, założmy, że mamy taką zmienną: {playerStats::%player%::deaths} # Lub: {playerStats::%uuid of player%::deaths} Odpowiadający jej placeholder będzie postaci: %skript_playerStats::{player}::deaths% # Dla UUID: %skript_playerStats::{uuid}::deaths% No, to właściwie tyle. Wydaje mi się, że wytłumaczyłem wszystko tak szczegółowo jak tylko mogłem. Gdyby pojawiły się jakieś pytania, proszę śmiało je zadawać. Postaram się pomóc. Pozdrawiam.
-
Zlecenie zostało wykonane.
-
Używanie listenera zdarzenia 'on server start/stop' jest mylące, ponieważ kod jest wykonywany po załadowaniu/wyładowaniu Skripta. Dlatego też zdarzenie te może zostać wywołane przez komendę /reload lub pluginy takie jak PlugMan. Niemniej jednak, możemy założyć, że autor pytania jest świadomym właścicielem serwera i w przypadku chęci zainstalowania pluginu restartuje serwer i nie korzysta z powyższych metod. Warto dodać, że Skript sam ostrzeże w przypadku napotkania powyższego zapisu przy pomocy poniższego komunikatu: Poza tym, czy te opóźnienie jest potrzebne? Te zdarzenie jest wywoływane gdy już wszystko jest załadowane, a więc wywołanie kodu bez jakiegokolwiek opóźnienia nie powinno sprawić problemów. Jest to informacja od twórców Skripta, którą można przeczytać w klasie SkriptStartEvent: Zbierając wszystko do kupy, poniższy skrypt powinien zadziałać bez problemu. on skript start: execute console command "/komenda" Pozdrawiam.
-
Ten temat został przeniesiony do nieestetycznych prezentacji. W momencie, kiedy poprawisz estetykę prezentacji, zgłoś ten post (lub napisz prywatną wiadomość do moderatora) z prośbą o przywrócenie tematu do głównego działu.
-
Ten temat został przeniesiony.
-
Dodam, że warto przetestować skrypt bez obecności innych skryptów i dodatków do Skripta na serwerze. Jeżeli skrypt będzie działał, należy je przywracać jeden po drugim i restartować cały czas serwer (nie używać komendy /reload ani PlugMan i tym podobnych, zwyczajny restart), aby określić co jest przyczyną braku działania. Jeśli chodzi o mój skrypt, czy sprawdził Pan to co napisałem nad kodem skryptu? Możliwe, że przemnażanie wektora powoduje problem. Pozdrawiam.
-
Zlecenie zostało wykonane.
-
pomoże ktoś naprawić itemy się biorą z eq
Kormic odpowiedział(a) na Jacek1234 pytanie w Pytania i problemy
Ten temat został przeniesiony. -
Ten temat został przeniesiony.
-
Zlecenie zostało wykonane.
-
Ten temat został przeniesiony.
-
Problem został rozwiązany.
-
Ten temat został przeniesiony.
-
Ten temat został przeniesiony.
-
Podwójny hover event showing w jednej wiadomości
Kormic odpowiedział(a) na AllowH4ck pytanie w Pytania i problemy
Pytanie co prawda zostało zadane na początku lipca i zapewne Pan już sobie poradził z tym problemem, ale dla czytających ten wątek szukających rozwiązania mam dobre wieści. Skript już od dawna (dokładnej wersji wprowadzenia tej opcji nie znam) wspiera interaktywne wiadomości na czacie. Odsyłam do poradnika autorstwa @PanMaruda, który wprowadza w temat wysyłania interaktywnych wiadomości: Pozdrawiam. -
Podwójny hover event showing w jednej wiadomości
Kormic odpowiedział(a) na AllowH4ck pytanie w Pytania i problemy
Ten temat został przeniesiony. -
Problem został rozwiązany.
-
Ten temat został przeniesiony.
