xSebixx1 2 Opublikowano piątek o 19:52 Udostępnij Opublikowano piątek o 19:52 Chciałem, stworzyć kule bez srodka, ale jak używam loop blocks around, to zazwyczaj nie jest rowna wsensie ze po 1 stronie jest inna i po 2 inna ma któs na to jakis pomysl? Cytuj Odnośnik do komentarza https://skript.pl/temat/59131-pomoc-z-hollow-sphere/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1952 Opublikowano wczoraj o 12:18 Udostępnij Opublikowano wczoraj o 12:18 (edytowane) W dniu 12.06.2026 o 21:52, xSebixx1 napisał: Chciałem, stworzyć kule bez srodka, ale jak używam loop blocks around, to zazwyczaj nie jest rowna wsensie ze po 1 stronie jest inna i po 2 inna ma któs na to jakis pomysl? Trzeba mieć na uwadze to, że wyrażenie `blocks around %location% in radius %number%` bierze pod uwagę wszystkie bloki, których środki są odległe o nie więcej niż zadany promień. W konsekwencji, jeśli zadana lokacja do zapętlania bloków nie leży w środku bloku, powstała sfera (czyli, jak to ująłeś, kula pusta w środku) nie będzie symetryczna. Jednym z możliwych rozwiązań jest wykorzystanie `location of block at %location%` jako środka sfery, którą chcesz utworzyć. Wtedy masz gwarancję symetrii. Inny sposób stworzenia sfery to wykorzystanie promienia wodzącego, który wskazuje miejsce utworzenia bloku. Tworzysz wektor o długości promienia sfery, którego yaw (obrót lewo/prawo) i pitch (obrót góra/dół) są modyfikowane z pewnym krokiem, dostosowanym do promienia sfery (im większy promień, tym mniejszy musi być krok, ponieważ powstaną dziury w powierzchni). Przykład implementacji takiego rozwiązania podałem poniżej. set {_r} to 5 set {_centerLoc} to location(100, 100, 100, "world") set {_rotationStep} to 10 set {_v} to vector(0, -{_r}, 0) loop ceil(180 / {_rotationStep}) times: loop ceil(360 / {_rotationStep}) times: set block at {_centerLoc} ~ {_v} to obsidian add {_rotationStep} to yaw of {_v} remove {_rotationStep} from pitch of {_v} Nie jest to optymalne rozwiązanie, ponieważ ustawia ono te same bloki wielokrotnie, szczególnie bliżej "spodu" i "szczytu" sfery. Dobrze napisany kod powinien brać to pod uwagę i modyfikować `yaw` ze zmiennym krokiem. Niemniej jednak, jest to i tak lepsze rozwiązanie niż zapętlanie wszystkich bloków, włącznie z tymi wewnątrz sfery. Mogłem także użyć wektorów sferycznych, ale uznałem składnię zwykłych wektorów za czytelniejszą. Pozdrawiam. Edytowane 2 godziny temu przez Kormic 1. Zapomniałem, że pitch = 90 oznacza spoglądanie prosto w dół, dlatego należy zmniejszać pitch, aby wektor stopniowo się "podnosił". 2. Zmieniłem '+' na '~', ponieważ Skript nie wspiera dodawania lokalizacji i wektorów. gnomq 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347782 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Fendi 190 Opublikowano wczoraj o 13:30 Udostępnij Opublikowano wczoraj o 13:30 (edytowane) 17 godzin temu, xSebixx1 napisał: Chciałem, stworzyć kule bez srodka, ale jak używam loop blocks around, to zazwyczaj nie jest rowna wsensie ze po 1 stronie jest inna i po 2 inna ma któs na to jakis pomysl? ale używasz around w nawiązaniu od czego? bo twoja lokacja jezeli jest lekko krzywa to i kula bedzie krzywa dlatego najlepiej wez sobie around (location of block at player) bo blok krzywy nie bedzie Edytowane wczoraj o 13:30 przez Fendi Cytuj Odnośnik do komentarza https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347783 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xSebixx1 2 Opublikowano 20 godzin temu Autor Udostępnij Opublikowano 20 godzin temu 3 godziny temu, Fendi napisał: ale używasz around w nawiązaniu od czego? bo twoja lokacja jezeli jest lekko krzywa to i kula bedzie krzywa dlatego najlepiej wez sobie around (location of block at player) bo blok krzywy nie bedzie Uzywałem around loc of player, ale i tak zmienilem na przykład który dał kormic bo spełnia on moje oczekiwania Cytuj Odnośnik do komentarza https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347784 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Fendi 190 Opublikowano 17 godzin temu Udostępnij Opublikowano 17 godzin temu 3 godziny temu, xSebixx1 napisał: Uzywałem around loc of player, ale i tak zmienilem na przykład który dał kormic bo spełnia on moje oczekiwania może i działa, ale zamiast loc of player uzycie location of block at player jest duzo prostsze niz dodawanie dodatkowej matematyki chyba ze nie działa, to whatever Ale to raczej wina tego Bo loc of player moze dac kordy: 10.340, 30, 15.670 A loc of block at player da kordy: 10.5, 30. 15.5 Co będzie równe Cytuj Odnośnik do komentarza https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347785 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1952 Opublikowano 3 godziny temu Udostępnij Opublikowano 3 godziny temu 13 godzin temu, Fendi napisał: może i działa, ale zamiast loc of player uzycie location of block at player jest duzo prostsze niz dodawanie dodatkowej matematyki Fendi, mam podejrzenie graniczące z pewnością, że nie przeczytałeś mojego posta. W pierwszym akapicie podałem instrukcję, którą można wykorzystać, tę samą co ty. Ta dodatkowa matematyka to opis rozsądniejszego sposobu tworzenia sfery, bez konieczności zapętlania bloków wewnątrz niej. Cytuj Odnośnik do komentarza https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347787 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
xSebixx1 2
Chciałem, stworzyć kule bez srodka, ale jak używam loop blocks around, to zazwyczaj nie jest rowna wsensie ze po 1 stronie jest inna i po 2 inna ma któs na to jakis pomysl?
Odnośnik do komentarza
https://skript.pl/temat/59131-pomoc-z-hollow-sphere/Udostępnij na innych stronach
5 odpowiedzi na to pytanie
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.