fasdasdsaatrewq 0 Opublikowano 10 grudnia 2020 Udostępnij Opublikowano 10 grudnia 2020 (edytowane) Cześć, posiadam ową linijkę skryptu: set {distance::%loop-player%} to distance between loop-player and a nearest loop-block i chodzi głównie o tą cześć a nearest loop-block Chyba wiadomo o co chodzi... Jeśli trzeba mogę udostępnić cały skrypt. Pozdrawiam Edytowane 10 grudnia 2020 przez xNightPower_ Naprawiam formatowanie na ciemnym stylu, umieszczam kod w code. Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 10 grudnia 2020 Udostępnij Opublikowano 10 grudnia 2020 Teraz, fasdasdsaatrewq napisał: Chyba wiadomo o co chodzi... Nie, nie wiadomo o co chodzi. Nie wyjaśniłeś co w ogóle zleceniobiorca ma zrobić. Teraz, fasdasdsaatrewq napisał: Jeśli trzeba mogę udostępnić cały skrypt. Wręcz powinieneś. Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272538 Udostępnij na innych stronach Więcej opcji udostępniania...
0 fasdasdsaatrewq 0 Opublikowano 10 grudnia 2020 Autor Udostępnij Opublikowano 10 grudnia 2020 (edytowane) 19 minut temu, Kormic napisał: Nie, nie wiadomo o co chodzi. Nie wyjaśniłeś co w ogóle zleceniobiorca ma zrobić. Wręcz powinieneś. Jakoś przed chwilą wiedizałeś o co chodzi? To jest zbyt ciężkie do wytłumaczenia, ale ok: Chce zrobić, aby wyświetlało mi odległość pomiędzy borderem, a graczem, czyli jako action bar... if {distance::%loop-player%} < 25: set action bar of loop-player to "&dGranica Spawna &8» &e%{distance::%loop-player%}%" if {distance::%loop-player%} < 15: set action bar of loop-player to "&dGranica Spawna &8» &c%{distance::%loop-player%}%" if {distance::%loop-player%} < 5: set action bar of loop-player to "&dGranica Spawna &8» &4%{distance::%loop-player%}%" I tutaj masz/cie cały kod: every 1 seconds: loop all players: loop all blocks in radius 25 around the loop-player: if loop-block is furnace: set {distance::%loop-player%} to distance between loop-player and loop-block if {distance::%loop-player%} < 25: set action bar of loop-player to "&dGranica Spawna &8» &e%{distance::%loop-player%}%" if {distance::%loop-player%} < 15: set action bar of loop-player to "&dGranica Spawna &8» &c%{distance::%loop-player%}%" if {distance::%loop-player%} < 5: set action bar of loop-player to "&dGranica Spawna &8» &4%{distance::%loop-player%}%" I jakbyś(cie) mógł(ogli) zrobić tak, aby zamiast tych piecyków był worldborder wracając... Skrypt działa tak że gdy podchodze do "linii" piecyków, czyli do większej ilości to dzieje się to... Spoiler A gdy (p)odchodzę do 1 piecyka to wszystko działa dobrze.. Mam nadzieję, że dobrze wytłumaczyłem Edytowane 10 grudnia 2020 przez xNightPower_ Zamieniam link w obraz, który umieszczam w spoilerze. Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272542 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xAxee 1968 Opublikowano 10 grudnia 2020 Udostępnij Opublikowano 10 grudnia 2020 (edytowane) every 1 seconds: loop all players: loop all blocks in radius 25 around the loop-player: if loop-block is furnace: set {distance::%loop-player%} to distance between loop-player and loop-block if {distance::%loop-player%} < 25: set action bar of loop-player to "&dGranica Spawna &8» &e%{distance::%loop-player%}%" if {distance::%loop-player%} < 15: set action bar of loop-player to "&dGranica Spawna &8» &c%{distance::%loop-player%}%" if {distance::%loop-player%} < 5: set action bar of loop-player to "&dGranica Spawna &8» &4%{distance::%loop-player%}%" stop loop Edytowane 10 grudnia 2020 przez xAxee Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272543 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 10 grudnia 2020 Udostępnij Opublikowano 10 grudnia 2020 (edytowane) 27 minut temu, fasdasdsaatrewq napisał: Jakoś przed chwilą wiedizałeś o co chodzi? Miej na uwadze, że nie jestem jedyną osobą znającą się na Skript'cie na tym forum. Istnieje możliwość, że kto inny chciałby ci pomóc. 27 minut temu, fasdasdsaatrewq napisał: I jakbyś(cie) mógł(ogli) zrobić tak, aby zamiast tych piecyków był worldborder Niestety nie jest to możliwe. Skript nie posiada składni dotyczącej worldborderu, a z użyciem Javy w skript-reflect również tego nie zrobisz, gdyż nie ma sposobu na sprawdzenie dystansu do worldbordera. 27 minut temu, fasdasdsaatrewq napisał: Skrypt działa tak że gdy podchodze do "linii" piecyków, czyli do większej ilości to dzieje się to... Dzieje się tak dlatego, ponieważ wyświetlasz dystans dla wszystkich piecyków w promieniu 25 kratek od gracza. Dlatego też jeżeli w promieniu 25 kratek jest przykładowo 10 piecy to action bar (pasek akcji) zostanie wysłany 10 razy. Musisz wyznaczyć najbliższy blok względem gracza. Skrypt: every 1 seconds: loop all players: loop all blocks in radius 25 around loop-player: loop-block is furnace if {_t} is not set: set {_t} to loop-block continue distance between loop-player and loop-block is less than distance between loop-player and {_t} set {_t} to loop-block {_t} is not set: set action bar of loop-player to "&dGranica Spawna &8» &ePonad 25 kratek" continue set {_d} to distance between loop-player and loop-block if {_d} <= 25: set action bar of loop-player to "&dGranica Spawna &8» &e%{_d}%" if {_d} < 15: set action bar of loop-player to "&dGranica Spawna &8» &c%{_d}%" if {_d} < 5: set action bar of loop-player to "&dGranica Spawna &8» &4%{_d}%" Mimo wszystko jestem pewien, że przez ten skrypt wskaźnik TPS poleci na łeb na szyję. Zapętlanie bloków co sekundę w promieniu 25 kratek od wszystkich graczy z pewnością nie będzie lekką operacją. Jeżeli już miałbym to zrobić, popróbowałbym z pętlą 'while', gdyż wszystko nie będzie obliczane w jednym momencie. Powinno to nieco odciążyć procesor. on join: while player is online: loop all blocks in radius 25 around player: loop-block is furnace if {_t} is not set: set {_t} to loop-block continue distance between player and loop-block is less than distance between player and {_t} set {_t} to loop-block {_t} is not set: set action bar of player to "&dGranica Spawna &8» &ePonad 25 kratek" else: set {_d} to distance between player and loop-block if {_d} <= 25: set action bar of player to "&dGranica Spawna &8» &e%{_d}%" if {_d} < 15: set action bar of player to "&dGranica Spawna &8» &c%{_d}%" if {_d} < 5: set action bar of player to "&dGranica Spawna &8» &4%{_d}%" wait 1 second Edytowane 10 grudnia 2020 przez Kormic Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272544 Udostępnij na innych stronach Więcej opcji udostępniania...
0 fasdasdsaatrewq 0 Opublikowano 10 grudnia 2020 Autor Udostępnij Opublikowano 10 grudnia 2020 2 minuty temu, xAxee napisał: every 1 seconds: loop all players: loop all blocks in radius 25 around the loop-player: if loop-block is furnace: set {distance::%loop-player%} to distance between loop-player and loop-block if {distance::%loop-player%} < 25: set action bar of loop-player to "&dGranica Spawna &8» &e%{distance::%loop-player%}%" if {distance::%loop-player%} < 15: set action bar of loop-player to "&dGranica Spawna &8» &c%{distance::%loop-player%}%" if {distance::%loop-player%} < 5: set action bar of loop-player to "&dGranica Spawna &8» &4%{distance::%loop-player%}%" exit loop Em... Dzięki za chęci, ale problem nie został rozwiązany Pokaże ci o co chodzi na przykładzie innego serwera: Spoiler https://prnt.sc/vzooco A potem jak odejdę to dzieje się to... Spoiler https://prnt.sc/vzop1p Nie myślcie, że jestem aż tak szalony, że chcę robić sektory w skripcie, tylko próbuje zrobić granicę. Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272545 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xAxee 1968 Opublikowano 10 grudnia 2020 Udostępnij Opublikowano 10 grudnia 2020 function checkBorder(p: player): loop all blocks in radius 25 around {_p}: if loop-block is furnace: if {_dis} is not set: set {_dis} to distance between {_p} and loop-block if {_dis} > (distance between {_p} and loop-block): set {_dis} to distance between {_p} and loop-block if {_dis} < 25: send action bar "&dGranica Spawna &8» &e%{_dis}%" to {_p} if {_dis} < 15: send action bar "&dGranica Spawna &8» &c%{_dis}%" to {_p} if {_dis} < 5: send action bar "&dGranica Spawna &8» &4%{_dis}%" to {_p} every 1 seconds: loop all players: checkBorder(loop-player) Niestety nie do borderu bo border nie jest blokiem Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272546 Udostępnij na innych stronach Więcej opcji udostępniania...
0 fasdasdsaatrewq 0 Opublikowano 10 grudnia 2020 Autor Udostępnij Opublikowano 10 grudnia 2020 9 minut temu, Kormic napisał: Miej na uwadze, że nie jestem jedyną osobą znającą się na Skript'cie na tym forum. Istnieje możliwość, że kto inny chciałby ci pomóc. Niestety nie jest to możliwe. Skript nie posiada składni dotyczącej worldborderu, natomiast z użyciem Javy w skript-reflect również tego nie zrobisz, gdyż nie ma sposobu na sprawdzenie dystansu do worldbordera. Dzieje się tak dlatego, ponieważ wyświetlasz dystans dla wszystkich piecyków w promieniu 25 kratek od gracza. Dlatego też jeżeli w promieniu 25 kratek jest przykładowo 10 piecy to action bar (pasek akcji) zostanie wysłany 10 razy. Musisz wyznaczyć najbliższy blok względem gracza. Skrypt: every 1 seconds: loop all players: loop all blocks in radius 25 around loop-player: loop-block is furnace if {_t} is not set: set {_t} to loop-block continue distance between loop-player and loop-block is less than distance between loop-player and {_t} set {_t} to loop-block {_t} is not set: set action bar of loop-player to "&dGranica Spawna &8» &ePonad 25 kratek" continue set {_d} to distance between loop-player and loop-block if {_d} <= 25: set action bar of loop-player to "&dGranica Spawna &8» &e%{_d}%" if {_d} < 15: set action bar of loop-player to "&dGranica Spawna &8» &c%{_d}%" if {_d} < 5: set action bar of loop-player to "&dGranica Spawna &8» &4%{_d}%" Mimo wszystko jestem pewien, że przez ten skrypt wskaźnik TPS poleci na łeb na szyję. Zapętlanie bloków co sekundę w promieniu 25 kratek od wszystkich graczy z pewnością nie będzie lekką operacją. Jeżeli już miałbym to zrobić, popróbowałbym z pętlą 'while', gdyż wszystko nie będzie obliczane w jednym momencie. Powinno to nieco odciążyć procesor. on join: while player is online: loop all blocks in radius 25 around player: loop-block is furnace if {_t} is not set: set {_t} to loop-block continue distance between player and loop-block is less than distance between player and {_t} set {_t} to loop-block {_t} is not set: set action bar of player to "&dGranica Spawna &8» &ePonad 25 kratek" continue set {_d} to distance between player and loop-block if {_d} <= 25: set action bar of player to "&dGranica Spawna &8» &e%{_d}%" if {_d} < 15: set action bar of player to "&dGranica Spawna &8» &c%{_d}%" if {_d} < 5: set action bar of player to "&dGranica Spawna &8» &4%{_d}%" wait 1 second Co do twojego skryptu nie rozumiem czemu się to wyświetla, skoro jak dla mnie jest poprawny, ale proszę: https://prnt.sc/vzory5 6 minut temu, xAxee napisał: function checkBorder(p: player): loop all blocks in radius 25 around {_p}: if loop-block is furnace: if {_dis} is not set: set {_dis} to distance between {_p} and loop-block if {_dis} > (distance between {_p} and loop-block): set {_dis} to distance between {_p} and loop-block if {_dis} < 25: send action bar "&dGranica Spawna &8» &e%{_dis}%" to {_p} if {_dis} < 15: send action bar "&dGranica Spawna &8» &c%{_dis}%" to {_p} if {_dis} < 5: send action bar "&dGranica Spawna &8» &4%{_dis}%" to {_p} every 1 seconds: loop all players: checkBorder(loop-player) Niestety nie do borderu bo border nie jest blokiem Oj.. nie.. znowu te funkcje :(... korzystam z wersji Skript 2.3.5 i tu masz errory: Spoiler [ERROR] 'checkBorder(p: player)' is not a text (odpychanie.sk, line 1: function checkBorder(p: player):') [ERROR] 'checkBorder(loop-player)' is not a boolean (yes/no) (odpychanie.sk, line 16: checkBorder(loop-player)') Łączę posty Notatka dodana przez xAxee Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272547 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 10 grudnia 2020 Udostępnij Opublikowano 10 grudnia 2020 (edytowane) 4 minuty temu, fasdasdsaatrewq napisał: Co do twojego skryptu nie rozumiem czemu się to wyświetla, skoro jak dla mnie jest poprawny, ale proszę: Powodem jest zbyt stara wersja Skripta. Aby to zadziałało, musiałbyś posiadać wersję Skripta minimum 2.2-dev37. Podaj wersję serwera i silnik serwera, a będę w stanie wybrać możliwie najlepszy Skript dla twojego serwera. EDIT: Poprawiłem w drugim skrypcie niewielki błąd, mianowicie zamiast bloku 'else' użyłem 'continue'. Edytowane 10 grudnia 2020 przez Kormic Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272549 Udostępnij na innych stronach Więcej opcji udostępniania...
0 fasdasdsaatrewq 0 Opublikowano 10 grudnia 2020 Autor Udostępnij Opublikowano 10 grudnia 2020 Teraz, Kormic napisał: Powodem jest zbyt stara wersja Skripta. Aby to zadziałało, musiałbyś posiadać wersję Skripta minimum 2.2-dev37. Podaj wersję serwera i silnik serwera, a będę w stanie wybrać możliwie najlepszy Skript dla twojego serwera. Spigot 1.8.8 - bazowany na hostingu server.pro Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272550 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xAxee 1968 Opublikowano 10 grudnia 2020 Udostępnij Opublikowano 10 grudnia 2020 (edytowane) 2 minuty temu, fasdasdsaatrewq napisał: Oj.. nie.. znowu te funkcje :(... korzystam z wersji Skript 2.3.5 i tu masz errory: Pokaż ukrytą zawartość [ERROR] 'checkBorder(p: player)' is not a text (odpychanie.sk, line 1: function checkBorder(p: player):') [ERROR] 'checkBorder(loop-player)' is not a boolean (yes/no) (odpychanie.sk, line 16: checkBorder(loop-player)') No można wywalić funkcje ale najlepiej gdybyś pobrał odpowiednią najnowszą wersje skripta na serwer every 1 seconds: loop all players: set {_p} to loop-player loop all blocks in radius 25 around {_p}: if loop-block is furnace: if {_dis} is not set: set {_dis} to distance between {_p} and loop-block if {_dis} > (distance between {_p} and loop-block): set {_dis} to distance between {_p} and loop-block if {_dis} < 25: set action bar of {_p} to "&dGranica Spawna &8» &e%{_dis}%" if {_dis} < 15: set action bar of {_p} to "&dGranica Spawna &8» &c%{_dis}%" if {_dis} < 5: set action bar of {_p} to "&dGranica Spawna &8» &4%{_dis}%" Edytowane 10 grudnia 2020 przez xAxee Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272551 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 10 grudnia 2020 Udostępnij Opublikowano 10 grudnia 2020 Teraz, fasdasdsaatrewq napisał: Spigot 1.8.8 - bazowany na hostingu server.pro Skript 2.3.5 nie jest przeznaczony na wersję 1.8.8. Najnowsza dostępna wersja Skripta na 1.8.8 to 2.2. Możesz opcjonalnie spróbować z forkiem Matocolotoe, który wprowadza Skripta 2.5 na 1.8. https://github.com/Matocolotoe/Skript-1.8/releases/tag/2.5 Nie zapomnij o (opcjonalnie - kopii zapasowej skryptów i zmiennych) usunięciu folderu Skript po starym pluginie i ponownym włączeniu serwera, aby nowy Skript na nowo utworzył folder. Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272552 Udostępnij na innych stronach Więcej opcji udostępniania...
0 fasdasdsaatrewq 0 Opublikowano 10 grudnia 2020 Autor Udostępnij Opublikowano 10 grudnia 2020 Dzięki chłopaki za pomoc... Skrypt od xAxee działa na moją obecną (jeszcze) wersję Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272556 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xAxee 1968 Opublikowano 10 grudnia 2020 Udostępnij Opublikowano 10 grudnia 2020 Problem został rozwiązany. Odnośnik do komentarza https://skript.pl/temat/43531-nearest-loop-block/#findComment-272559 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
fasdasdsaatrewq 0
Cześć, posiadam ową linijkę skryptu:
i chodzi głównie o tą cześć
Chyba wiadomo o co chodzi...
Edytowane przez xNightPower_Jeśli trzeba mogę udostępnić cały skrypt.
Pozdrawiam
Naprawiam formatowanie na ciemnym stylu, umieszczam kod w code.
Odnośnik do komentarza
https://skript.pl/temat/43531-nearest-loop-block/Udostępnij na innych stronach
13 odpowiedzi na to pytanie
Rekomendowane odpowiedzi