-
Ilość zawartości
11014 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
231
Treść opublikowana przez Kormic
-
Wyrażenie 'with lore' nie pochodzi domyślnie ze Skripta, gdyż zostało wprowadzone dopiero w wersji 2.4. Te wyrażenie początkowo pochodziło z SkQuery.
-
Koniec duel'a i teleport z powrotem po wyjściu jednego z graczy
Kormic odpowiedział(a) na Naczosik pytanie w Pytania i problemy
W evencie 'on quit' sprawdź czy gracz wyszedł podczas duelu, jeżeli tak to zapisujesz mu zmienną z lokalizacją, do której ma zostać teleportowany. Przy ponownym wejściu na serwer sprawdzasz czy gracz posiada tę zmienną, jeżeli tak to teleportujesz go do tej lokalizacji. W kodzie zapewne przyda się jeszcze warunek sprawdzający czy duel w ogóle jeszcze trwa, czy też nie. -
Podaj: wersję serwera silnik serwera wersję Skripta listę pluginów (same dodatki do Skripta wystarczą) błędy w konsoli 1. Ubolewam nad tym, że używasz mieszanki delayów w formatowaniu GUI i SkQuery do formatowania slotów. Nie dość, że ten dodatek sam w sobie pozwala graczom na bugowanie GUI to te delaye znacznie ułatwiają robotę. 2. Niepotrzebnie w linijce nr 18 wykonujesz poprzez gracza komendę, GUI przecież nie jest zamykane. 3. Sprawdź za pomocą serii 'send' w evencie 'on right click' do którego momentu jest wykonywany kod. Przy zatrzymaniu pracy serwera powinna ukazać się jakaś poszlaka.
-
Teoretycznie tak, ale zbędnie ustawiasz yaw i pitch zmiennej. Dodatkowo z tego co mi wiadomo to wyrażenie 'direction' ma problemy w Skript, dlatego lepiej jest użyć wektorów. Mimo wszystko to nie jest ze Skripta, a ze Skelletta. Z dwojga wybrałbym skript-reflect, gdyż jest w stanie wykonać 80-90% tego, co potrafią wszystkie inne dodatki razem wzięte. Na koniec powiem, że siła wyrzutu nie jest adekwatna do odległości, a to mój skrypt zawiera.
-
Nie, nie dałoby się, gdyż Skript nie wie gdzie znajdują się wszystkie end stone'y. Jeżeli chcesz zapętlić wszystkie bloki, odradzam. Skończy się to natychmiastowym zatrzymaniem pracy serwera. Najlepszym sposobem jest dodawanie lokalizacji bloków do listy i zapętlanie jej.
-
Poprawiłem kod. import: org.bukkit.event.player.PlayerFishEvent on PlayerFishEvent: set {_player} to event.getPlayer() event.getState() is CAUGHT_ENTITY or IN_GROUND push {_player} (vector from {_player} to event.getHook()) with force (distance between {_player} and event.getHook() * 0.1)
-
Tak, można tak zrobić. every 1 second: loop {stoniarki::*}: set block above block at loop-value to stone
-
Świetnie, że wcześniej o tym wspomniałeś. Ehh... w takim razie poprzez Skripta tego nie zrobisz. Musiałbyś w kodzie tych minionów ustawić odnawianie stoniarek.
-
Spróbuj zastąpić wszystkie 'player' w ostatniej linijce z 'event.getPlayer()'.
-
Proszę, oto skrypt. on place: {stoniarki::*} contains location of block below event-block: cancel event stop player's tool is end stone named "&6Stoniarka" if block above event-block is not air: cancel event send "&cNie możesz tutaj postawić stoniarki!" to player stop add location of event-block to {stoniarki::*} set block above event-block to stone on break: if {stoniarki::*} contains location of block below event-block: wait 3 seconds set event-block to stone else if {stoniarki::*} contains location of event-block: remove location of event-block from {stoniarki::*} cancel drops drop 1 end stone named "&6Stoniarka" at event-block command /stoniarka: trigger: give player 64 end stone named "&6Stoniarka"
-
Tak, da się. Skoro skrypt ma problem to dlaczego go nie pokażesz?
-
Pokaż w takim razie błędy w konsoli.
-
Zaraz, zaraz, bo ja czegoś nie rozumiem. To problem w końcu jest z Vixio czy z GUI?
-
Nie, nie da się.
-
Bardzo dobrze, że chcesz dodać plik konfiguracyjny. Plugin powinien być możliwie najmniej hard-code'owany. Powinieneś również rozważyć podłączenie pluginu do PAPI (PlaceholderAPI). Sądzę, że wielu użytkowników to doceni. Życzę powodzenia przy rozwoju projektu
-
2.2-dev36 jest stabilną wersją, więc nie powinno być z nią większych problemów. Skoro masz horrendalne 240 błędów, zabierz się za naprawianie skryptów.
-
W linijce nr 16 sprawdzasz zmienną dla gracza, który wyszedł (player). Ty natomiast powinieneś sprawdzać zmienną dla zapętlanego gracza (loop-player).
-
Co konkretnie nie działa? Jak to ma działać?
-
1. Nie zablokowałeś wyciągania przedmiotów z GUI. Nie wiem czy to jest zamierzony zabieg z twojej strony, jeżeli nie to dodaj za pierwszym lub drugim warunkiem (w zależności od tego czy zablokowany ma być jedynie ten slot czy też całe GUI) efekt 'cancel event'. 2. W skrypcie sprawdzasz czy wartość zmiennej dokładnie wynosi 5. Jesteś pewien, że nie wynosi przykładowo 7 albo 5.01? Możesz wysłać wartość zmiennej na czacie, aby sprawdzić czy problem wynika z tej właśnie wartości. send "%{sqcoin.kupio.%player%}%" EDIT: Pamiętaj również, aby upewnić się, że zmienna jest typem 'integer' lub 'number'. 3. W zły sposób nazywasz zmienne. Powinieneś używać list zmiennych, które pozwalają na o wiele łatwiejszą kontrolę nad wieloma zmiennymi. Dla list zmiennych charakterystyczne są podwójne dwukropki jako separatory. loop {sqcoin::kupio::*}: # Zapętlasz wszystkie zmienne zaczynające się na "sqcoin::kupio" send "Gracz %loop-index% posiada %loop-value% coinsów!" clear {sqcoin::kupio::*} # Czyścisz wszystkie zmienne, które zaczynają się na "sqcoin::kupio" send "%size of {sqcoin::kupio::*}%" # Wysyłasz ile łącznie zmiennych zaczynających się na "sqcoin::kupio" jest zapisanych Powyższych operacji nie wykonasz ze zwykłymi zmiennymi.
-
Były świat i przyszły świat są takie same? Nie wiem dlaczego tak jest, być może to jest błąd ze state'ami. Rozumiem, że nic nie zmieniałeś w tym skrypcie, który ci podałem, tak? Zobaczę jeszcze dzisiaj działanie skryptu na moim serwerze i poprawię skrypt. W razie czego jeszcze dam znać.
-
Nie udzieliłeś odpowiedzi na wszystkie pytania/kwestie.
-
1. Pytania dotyczące Skripta zadajemy w dziale "Skript > Pytania i problemy". Pamiętaj o tym na przyszłość. 2. Nick w komendzie? W takim wypadku definiujesz w komendzie argument nr 1 jako 'text' i w triggerze komendy sprawdzasz czy 'arg 1' jest tym samym co 'player's name'. Jeżeli tak, wykonujesz dalszy kod, jeżeli nie, w bloku 'else' wysyłasz wiadomość informującą, iż gracz nie podał swojego nicku. Z tego co widzę to stawiasz pierwsze kroki w Skript'cie. W takim wypadku zalecam przejrzeć kilka poradników. https://skript.pl/temat/41229-komendy-w-skript/ https://wiki.skript.pl/Komendy
-
Cała składnia poszła w... 1. Skript jest językiem opierającym się głównie na eventach i periodicalach. Skąd Skript ma wiedzieć kiedy należy wykonać ten warunek? Poza tym wystarczy sobie przetłumaczyć ten warunek na j. polski, aby zrozumieć zawarty w nim absurd. if player join - jeżeli gracz dołączyć Tak jak wcześniej wspomniałem, kod zwykle zaczyna się od eventów, dlatego też należy użyć jednego z nich. W twoim przypadku będzie to event 'on join', który jest wywoływany przy dołączeniu jakiegokolwiek gracza. 2. Druga rzecz to wysyłanie wiadomości. Zrobiłeś je źle, gdyż składnia wygląda następująco: (send|message) %texts% to %players/console% # Przykład: send "test" to all players Jeżeli chcemy wysłać wiadomość do konkretnego gracza, używamy magicznego wyrażenia 'parsed as', które zamieni nam w tym przypadku tekst (nick gracza) na rzeczywistego gracza. send "test" to ("Gracz" parsed as player) Może być z nawiasem lub bez niego. Mimo wszystko dobrze jest używać nawiasów, aby zachować porządek oraz przejrzystość kodu. Zalecam przejrzeć poradniki dotyczące Skripta, gdyż widzę, że dopiero co zaczynasz przygodę. https://wiki.skript.pl/Kategoria:Skript Będzie cię interesowała część opisana jako "Składnia". Warto podczas skryptów posiłkować się również dokumentacjami Skripta, jest ich kilka.
-
W kodzie błędów nie widzę, więc problem nie jest związany z nim. Sprawdziłem właśnie SkRayFall i jedna rzecz mnie zaniepokoiła. https://dev.bukkit.org/projects/skrayfall/files Jeżeli spojrzysz, dla wielu wersji tylko major update jest wypisany (np. 1.13, 1.12, nie ma 1.12.2 itd.), natomiast dla wersji 1.8 są tylko konkretne patch update'y wypisane (1.8, 1.8.1, 1.8.3). Nie masz możliwości sprawdzenia zachowania dodatku na nowszej wersji? U mnie na Spigot'cie na wersji 1.12.2 działa bezproblemowo. Upewnij się również, że nie ma błędów w konsoli. EDIT: Dodatkowo mam wątpliwości co do tego, że wersja Skripta 2.2.2 działa na serwerze 1.8.8. Z tego co mi się wydaje to wszystkie wersje powyżej 2.2 mają problemy z współpracą.
-
O panie, kierownik z krwi i kości. Proszę, skrypt nietestowany. Wymagany dodatek skript-reflect. import: org.bukkit.event.player.PlayerFishEvent on PlayerFishEvent: event.getState() is CAUGHT_ENTITY or IN_GROUND push player (vector from player to event.getHook()) with force (distance between player and event.getHook() * 0.1)
