-
Ilość zawartości
11014 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
231
Treść opublikowana przez Kormic
-
Skrypt: Rejestrowanie placeholderów: Wymagany dodatek skript-placeholders, skrypt PyraTop REBORN (v. 4.3.0) i PlaceholderAPI. on placeholderapi request for prefix "skript": placeholder contains "skript_mined_blocks_" set {_placeholder::*} to placeholder split at "_" set {_n} to {_placeholder::5} parsed as integer set {_top::*} to createTop("minedBlocks::%{_placeholder::4}%", {_n}, "&e[I]. &b[P] &7- &6[V]") set result to {_top::%{_n}%} Placeholdery wyglądają następująco: %skript_mined_blocks_<blok>_<numer>% # <blok> - tutaj możesz dać jedną z następujących rzeczy: stone, coal, iron, gold, diamond, redstone, emerald, lapis # <numer> - miejsce w topce # Przykłady użycia: %skript_mined_blocks_gold_1% %skript_mined_blocks_lapis_3% %skript_mined_blocks_diamond_2% Mam nadzieję, że nie będziesz podawał zbyt wysokich numerków, zresztą i tak zapewne wystarczy ci top 3.
-
Już poprawiłem. Z tym scoreboardem to najlepiej jakbyś wybrał sobie któryś z lepszych pluginów na scoreboard (np. FeatherBoard, QuickBoard, itd.). Wtedy będę mógł zarejestrować placeholdery (wymagany będzie plugin PlaceholderAPI), a ty będziesz mógł ich użyć w scoreboardzie.
-
Problem wtedy będzie taki, że scoreboard będzie zdecydowanie zbyt długi i najzwyczajniej w świecie brzydki. Mogę zrobić to w ten sposób: TOPKA Diamenty: <gracz> - <ile wykopał> Żelazo: <gracz> - <ile wykopał> Złoto: <gracz> - <ile wykopał> # I tak dalej... Lub również w taki sposób: TOPKA Diamenty: 1. <gracz> - <ilość> 2. <gracz> - <ilość> 3. <gracz> - <ilość> Żelazo: 1. <gracz> - <ilość> 2. <gracz> - <ilość> 3. <gracz> - <ilość> Złoto: 1. <gracz> - <ilość> 2. <gracz> - <ilość> 3. <gracz> - <ilość> Dobrze byłoby, aby scoreboard nie był dłuższy niż 15 linijek. Najlepiej jakby mieścił się w granicach 10 linijek. Więc jak chcesz to zrobić?
-
O panie, przecinek się zapodział. Co do topki... Tabelka po prawej, czyli scoreboard? Mam nadzieję, że nie masz zamiaru robić scoreboardu w Skript. Jakby ta topka miała wyglądać? Zaraz zobaczę co jest nie tak i naprawię.
-
Wcięcia się zepsuły, już je poprawiłem. Spróbuj jeszcze raz.
-
W takim razie proszę. Wymagany Skript 2.5 lub nowszy.
-
Nie, ale mogę dokładniej wytłumaczyć. Używamy eventu 'on right click'. Sprawdzamy czy 'clicked block' to jakiekolwiek drzwi (any door). Sprawdzamy czy "%region at clicked block%" zawiera (contains) nazwę naszego regionu. Jeżeli gracz nie posiada permisji (doesn't have permission), anulujesz event poprzez 'cancel event'.
-
Na tak starą wersję nikt ci nie będzie pisał skryptów. Pobierz Skript 2.5.3 od Matocolotoe. Jeżeli nie zadziała, użyj 2.5 od Matocolotoe. Następnie możesz spróbować z 2.2-dev37c i 2.2-dev36 od bensku jeżeli poprzednie nie wypalą.
-
Ma wyglądać to tak jak w zamieszczonym linku, tak?
-
Użyj eventu 'on right click', w którym sprawdzasz czy clicked block to jakiekolwiek drzwi i czy znajdują się w regionie. Jeżeli gracz nie posiada permisji, anulujesz event.
-
Jest XXI wiek, masz takie narzędzia jak tłumacz Google. Wystarczy, że weźmiesz sobie ten kod. # Placeholderem będzie w tym przypadku "skript_placeholder" on placeholderapi request for prefix "skript": if identifier is "placeholder": set result to "Witaj!" Wystarczy, że zmienisz sobie placeholder na swój własny (np. time_played) i rezultat (result) na "%player's time played%".
-
Tablista w Skript? Nie, po prostu nie. To samo tyczy się sidebarów w Skript. Jeżeli już chcesz zrobić własną tablistę, użyj pluginu TAB od Neznamy.
-
Na stronie skript-placeholders masz link do wiki, w której wszystko jest opisane.
-
Musisz mieć plugin, który oferuje taki placeholder poprzez PlaceholderAPI lub stworzyć własny (w tym celu należałoby skorzystać z API tego pluginu na scoreboard, a następnie we własnym pluginie należałoby podmienić placeholder na rzeczywistą wartość), jest to opisane na Githubie pluginu. Możesz również skorzystać z rozwiązań w Skript - albo poprzez skript-reflect, w którym importujemy klasę i tworzymy dość podobny kod (link do poradnika jest na stronie pluginu), albo poprzez dodatek skript-placeholders, w którym rejestrujemy nasz placeholder (link również na stronie pluginu). EDIT: W przypadku rozwiązania tego problemu poprzez Skript, przyda ci się tutaj wyrażenie 'player's time played'. Osobiście polecam ci drugie rozwiązanie poprzez skript-placeholders, gdyż dla typowego laika będzie to o wiele łatwiejsze do zrozumienia.
-
1. Zamiast tworzyć osobny warunek w celu sprawdzania permisji, użyj parametrów 'permission' oraz 'permission message'. Dzięki temu twój kod zyska na czytelności i nie będzie odrzucał osoby potencjalnie go używającej. 2. Warunki w twoim kodzie są podane w dziwnej kolejności i wprowadzają wiele niepotrzebnego chaosu. Na twoim miejscu sprawdzałbym na samym początku argument nr 1, jeżeli jest nim 'ustaw', sprawdzamy argument 2. Jeżeli natomiast jest nim 'usuń', czyścimy jedynie zmienną gracza zawierającą jego tytuł. 3. Za wszelką cenę unikaj zagnieżdżonych warunków (drzew if'ów) w kodzie. Przez nie skrypt traci na czytelności i schludności. # Jak ty to robisz: if arg-1 is set: if arg-2 is set: if arg-3 is set: # Dalszy kod else: send "Podaj argument nr 3!" else: send "Podaj argument nr 2!" else: send "Podaj argument nr 1!" # Jak ja bym to zrobił: if arg-1 is not set: send "Podaj argument nr 1!" stop if arg-2 is not set: send "Podaj argument nr 2!" stop if arg-3 is not set: send "Podaj argument nr 3!" stop # Dalszy kod Widać różnicę, nieprawdaż? 4. Zamiast "hard-code'ować" i wpisywać listę zakazanych słów bezpośrednio do kodu, o wiele lepiej jest ustawić ją w sekcji 'options' i następnie skorzystać z niej w warunku. options: lista: "test", "test1" and "test2" command /test: trigger: ({@lista}) contains "test" send "Tak" to sender
-
W takim razie w czym leży problem?
-
Dobra, czy placeholder '%playeronline%' działa? Czy reszta placeholderów działa? Czy ten plik konfiguracyjny był załączony od razu do pluginu (czy przy włączeniu serwera taki się utworzył)?
-
Na razie tyle zrozumiałem. command /sprawdzitem: trigger: loop player's tool's lore: loop-value contains "Explosion " send loop-value Jeżeli ten kod ci nie wystarczy, wytłumacz mi co mam zrobić z tą szansą na wybuch przy rozwalaniu bloku. Dodam, że w TuSKe możesz stworzyć własne enchanty (o ile posiadasz jakąś starą wersję serwera), Axee zrobił o tym poradnik.
-
Spójrz na mój edytowany post wyżej. Napisałem tam, że możesz spróbować powtórzyć tę procedurę w przypadku zmiany wersji. Nie zaszkodzi również zaktualizować silnik serwera (o ile to możliwe). EDIT: Zauważyłem parę błędów w swoim skrypcie (łącznie 6), więc zwracam honor. Sprawdź jeszcze raz.
-
Spróbowałeś ze wszystkimi wyżej podanymi wersjami? Czy przeczytałeś do końca to, co napisałem? Jeżeli nie, proszę cię o to, abyś to zrobił.
-
W takim razie spróbuj: wyłączyć serwer zapisać swoje skrypty i/lub zmienne w bezpiecznym miejscu usunąć folder Skript włączyć ponownie serwer wrzucić do nowego folderu Skript swoje skrypty i/lub zmienne Rzuć okiem również na wersje, które podrzuciłem. EDIT: W przypadku zmiany wersji również w przypadku braku działania Skripta możesz powtórzyć wyżej opisaną procedurę.
-
Jeżeli powyższe nie zadziała, spróbuj również z wersją 2.5 od Matocolotoe i wersjami 2.2-dev37c oraz 2.2-dev36 od bensku. Nie oczekuj, że ktoś ci będzie pisał skrypty na tak starą wersję, bo skrypt działa, a problemem jest w tej sytuacji twój serwer, nie mój skrypt.
-
Proszę, skrypt nietestowany. Wymagany Skript 2.2 lub nowszy.
-
Proszę. Funkcja getRandomLoc() autorstwa użytkownika ZiemniaQ. function getRandomLoc(xmin: integer=-1000, xmax: integer=1000, zmin: integer=-1000, zmax: integer=1000, world: text="world") :: location: while {_return} is not set: set {_x} to random integer between {_xmin} and {_xmax} set {_z} to random integer between {_zmin} and {_zmax} set {_loc} to highest block at location at {_x}, 0, {_z} in world ({_world} parsed as world) if block at {_loc} != lava or water: add 1 to y-loc of {_loc} if (block at {_loc}) and (block above block at {_loc}) != lava: set {_return} to {_loc} return {_return} command /rtp: trigger: set {_t} to random integer between 1 and 2 if {_t} is 1: set {_loc} to getRandomLoc(-1000, 1000, -1000, 1000, "swiat1") else if {_t} is 2: set {_loc} to getRandomLoc(-1000, 1000, -1000, 1000, "swiat2") teleport player to {_loc} send "&aZostałeś przeteleportowany do &6%{_loc}%" to player
