Gość Usunięty#10777 Opublikowano 28 kwietnia 2020 Udostępnij Opublikowano 28 kwietnia 2020 Witam. Załóżmy, że chcę wystrzelić strzałę od gracza w kierunku w którym się patrzy. on rightclick: shoot arrow from player Teraz, chciałbym aby strzała nie leciała idealnie, tylko za każdym razem losowo zbaczała nieco na boki lub góra/dół. Jak to zrobić? Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 PanNiedzwiadek 173 Opublikowano 28 kwietnia 2020 Udostępnij Opublikowano 28 kwietnia 2020 (edytowane) Potrzebna nam prosta manipulacja wektorem. shoot arrow from player korzysta z wektora, który w silniku gier, nazywałby się czymś w stylu Vector3.forward, czyli po prostu kierunek, w którym patrzy gracz. Do wektorów możemy po prostu dodawać wartości, dzięku czemu bardzo łatwo jest osiągnąć upragniony efekt. W spoilerze przykład wektora w przestrzeni 3D, czyli taki z jakiego będziemy teraz korzystać. Spoiler A więc nasz kod może wyglądać tak: set {_arrowvector} to location of player set {_arrowspreadyaw} to random integer between -5 and 5 set {_arrowspreadpitch} to random integer between -5 and 5 add {_arrowspread} to yaw of {_arrowvector} add {_arrowspread} to pitch of {_arrowvector} shoot arrow from {_arrowvector} Chciałbym zaznaczyć, że wcale nie testowałem tego kodu, więc może nie działać - ale głównie przez błędy składni czy zły syntax, logika kodu jest jak najbardziej okej. Tutaj wyjaśnienie wartości yaw i pitch: Spoiler Edytowane 28 kwietnia 2020 przez PanNiedzwiadek Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-243958 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość Usunięty#10777 Opublikowano 28 kwietnia 2020 Udostępnij Opublikowano 28 kwietnia 2020 Zastosowałem kod, strzała pojawia się w pozycji gracza i upada w dół na ziemię. Próbowałem zwiększyć jej prędkość, taki sam rezultat. Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-243988 Udostępnij na innych stronach Więcej opcji udostępniania...
0 PanMaruda 624 Opublikowano 28 kwietnia 2020 Udostępnij Opublikowano 28 kwietnia 2020 2 godziny temu, Aberforth napisał: Zastosowałem kod, strzała pojawia się w pozycji gracza i upada w dół na ziemię. Próbowałem zwiększyć jej prędkość, taki sam rezultat. no bo ten kod nie działa, zamiary może pan powyżej miał dobre, ale wykonanie średnie. To może ja to teraz wytłumaczę to tak po 'skriptowemu': #zacznijmy od tego samego - pobieramy położenie gracza do zmiennej set {_loc} to location of player #teraz dodajemy ten rozrzut i coś czego powyżej zabrakło - zastosowanie go w późniejszych działaniach #moim zdaniem wahania od -5 do 5 będą za duże, bardziej bym proponował coś -0.5 do 0.5 #losujemy liczbę i dodajemy ją do kątów yaw i pitch w zmiennej add (random number between -0.5 and 0.5) to yaw of {_loc} add (random number between -0.5 and 0.5) to pitch of {_loc} #mamy kąty, mamy dla nich rozrzut - teraz kolej na stworzenie wektora, który w skript ma swój osobny obiekt set {_v} to vector from yaw (yaw of {_loc}) and pitch (pitch of {_loc}) #mamy wektor więc teraz tylko strzelamy strzałą czy innym entity w jego kierunku shoot an arrow from {_loc} with speed 4 {_v} PanNiedzwiadek 1 Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-244025 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość Usunięty#10777 Opublikowano 28 kwietnia 2020 Udostępnij Opublikowano 28 kwietnia 2020 26 minut temu, PanMaruda napisał: no bo ten kod nie działa, zamiary może pan powyżej miał dobre, ale wykonanie średnie. To może ja to teraz wytłumaczę to tak po 'skriptowemu': #zacznijmy od tego samego - pobieramy położenie gracza do zmiennej set {_loc} to location of player #teraz dodajemy ten rozrzut i coś czego powyżej zabrakło - zastosowanie go w późniejszych działaniach #moim zdaniem wahania od -5 do 5 będą za duże, bardziej bym proponował coś -0.5 do 0.5 #losujemy liczbę i dodajemy ją do kątów yaw i pitch w zmiennej add (random number between -0.5 and 0.5) to yaw of {_loc} add (random number between -0.5 and 0.5) to pitch of {_loc} #mamy kąty, mamy dla nich rozrzut - teraz kolej na stworzenie wektora, który w skript ma swój osobny obiekt set {_v} to vector from yaw (yaw of {_loc}) and pitch (pitch of {_loc}) #mamy wektor więc teraz tylko strzelamy strzałą czy innym entity w jego kierunku shoot an arrow from {_loc} with speed 4 {_v} Nie zwraca błędu, ale nie działa (strzały w ogóle się nie pojawiają) Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-244029 Udostępnij na innych stronach Więcej opcji udostępniania...
0 PanNiedzwiadek 173 Opublikowano 29 kwietnia 2020 Udostępnij Opublikowano 29 kwietnia 2020 19 godzin temu, Aberforth napisał: Nie zwraca błędu, ale nie działa (strzały w ogóle się nie pojawiają) Czyli prawdopodobnie "shoot an arrow" w teorii jest poprawne, ale jednak nie do końca. Często tak jest w Skript niestety, musisz teraz polecieć metodą prób i błędów jak dla mnie. Być może w którymś miejscu nie można umieścić zmiennej, itp. Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-244164 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość Usunięty#10777 Opublikowano 29 kwietnia 2020 Udostępnij Opublikowano 29 kwietnia 2020 Metodą prób i błędów od paru dni "latam", ale jakoś nie idzie. Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-244179 Udostępnij na innych stronach Więcej opcji udostępniania...
0 nwse 131 Opublikowano 3 maja 2020 Udostępnij Opublikowano 3 maja 2020 Można próbować pushować entity (strzałę) po jej wystrzeleniu Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-244653 Udostępnij na innych stronach Więcej opcji udostępniania...
0 PanMaruda 624 Opublikowano 6 maja 2020 Udostępnij Opublikowano 6 maja 2020 jedyne czego ten kod wymaga to Skript 2.2-dev28 ja sprawdzałem na PaperSpigocie 1.15.2 (v201) i ostatnim Skripcie - wszystko działa bez najmniejszego problemu jedyne co bym ewentualnie zmienił to faktycznie większy rozrzut (powiedzmy na 3), większą prędkość i punkt z którego strzelamy na wyższy, bo aktualnie strzały lecą z okolic nóg set {_loc} to location of player add (random number between -3.5 and 3.5) to yaw of {_loc} add (random number between -3.5 and 3.5) to pitch of {_loc} set {_v} to vector from yaw (yaw of {_loc}) and pitch (pitch of {_loc}) shoot an arrow from (head location of player) with speed 7 {_v} #ale to nie jest żadna zmiana, która coś zmienia w mechanice - raczej ci kod od niej nie zadziała magicznie Misio12320 1 Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-245143 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość Usunięty#10777 Opublikowano 6 maja 2020 Udostępnij Opublikowano 6 maja 2020 2 godziny temu, PanMaruda napisał: jedyne czego ten kod wymaga to Skript 2.2-dev28 ja sprawdzałem na PaperSpigocie 1.15.2 (v201) i ostatnim Skripcie - wszystko działa bez najmniejszego problemu jedyne co bym ewentualnie zmienił to faktycznie większy rozrzut (powiedzmy na 3), większą prędkość i punkt z którego strzelamy na wyższy, bo aktualnie strzały lecą z okolic nóg set {_loc} to location of player add (random number between -3.5 and 3.5) to yaw of {_loc} add (random number between -3.5 and 3.5) to pitch of {_loc} set {_v} to vector from yaw (yaw of {_loc}) and pitch (pitch of {_loc}) shoot an arrow from (head location of player) with speed 7 {_v} #ale to nie jest żadna zmiana, która coś zmienia w mechanice - raczej ci kod od niej nie zadziała magicznie Sprawdzałem na Spigocie 1.15.2 z najnowszym skriptem, i z jakiegoś powodu nie działa. Nie wyrzuca jednak błędów. Na pewno nie są potrzebne żadne dodatki? Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-245189 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Tymekd 154 Opublikowano 6 maja 2020 Udostępnij Opublikowano 6 maja 2020 Sprawdziłem u mnie na 1.13.2 i też działa bez problemu Misio12320 1 Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-245198 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość Usunięty#10777 Opublikowano 7 maja 2020 Udostępnij Opublikowano 7 maja 2020 (edytowane) Czy ktoś może podlinkować silnik i wersję skripta z którymi im to działa? Bo sprawdziłem już kilka opcji i jakoś dalej skript nie reaguje. Edytowane 7 maja 2020 przez Aberforth Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-245300 Udostępnij na innych stronach Więcej opcji udostępniania...
0 shuliar 51 Opublikowano 7 maja 2020 Udostępnij Opublikowano 7 maja 2020 3 godziny temu, Aberforth napisał: Czy ktoś może podlinkować silnik i wersję skripta z którymi im to działa? Bo sprawdziłem już kilka opcji i jakoś dalej skript nie reaguje. Zrób testowy serwer na localhoście. Wgraj tylko: Silnik np. PaperSpigot np. #260 https://papermc.io/downloads Skripta np. wersję 2.4.1 https://github.com/SkriptLang/Skript/releases/tag/2.4.1 Dodatków nie trzeba, Skript obsługuje wektory bez problemu. Wrzuć plik.sk tam gdzie trzeba. Szybki restarcik. Sprawdź czy działa. Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-245336 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość Usunięty#10777 Opublikowano 8 maja 2020 Udostępnij Opublikowano 8 maja 2020 16 godzin temu, Turas napisał: Zrób testowy serwer na localhoście. Wgraj tylko: Silnik np. PaperSpigot np. #260 https://papermc.io/downloads Skripta np. wersję 2.4.1 https://github.com/SkriptLang/Skript/releases/tag/2.4.1 Dodatków nie trzeba, Skript obsługuje wektory bez problemu. Wrzuć plik.sk tam gdzie trzeba. Szybki restarcik. Sprawdź czy działa. Nie działa. Sprawdziłem dokładnie te wersje które podlinkowałeś. Zawsze wszystko robiłem na 1.12, teraz dopiero przenoszę się na 1.15. Coś się zmieniło w ostatnich wersjach o czym mogę nie wiedzieć? Nie wiem jak to wyjaśnić, pierwszy raz się spotykam z takim problemem. Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-245423 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Gość Usunięty#10777 Opublikowano 17 maja 2020 Udostępnij Opublikowano 17 maja 2020 Udalo mi sie rozwiazac problem. on right click with iron ingot: set {_yaw} to yaw of player set {_pitch} to pitch of player add (random number between -3.5 and 3.5) to {_yaw} add (random number between -3.5 and 3.5) to {_pitch} set {_v} to vector from yaw {_yaw} and pitch {_pitch} shoot an arrow from (head location of player) with speed 7 {_v} Nadal jednak wydaje mi sie to dziwne, ze niektorym poprzednia wersja dzialala, a mi nie. Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-246447 Udostępnij na innych stronach Więcej opcji udostępniania...
0 xAxee 1968 Opublikowano 17 maja 2020 Udostępnij Opublikowano 17 maja 2020 Ten temat został zamknięty. Odnośnik do komentarza https://skript.pl/temat/38696-tor-lotu-pocisku/#findComment-246454 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
Gość Usunięty#10777
Witam. Załóżmy, że chcę wystrzelić strzałę od gracza w kierunku w którym się patrzy.
on rightclick: shoot arrow from playerTeraz, chciałbym aby strzała nie leciała idealnie, tylko za każdym razem losowo zbaczała nieco na boki lub góra/dół. Jak to zrobić?
Odnośnik do komentarza
https://skript.pl/temat/38696-tor-lotu-pocisku/Udostępnij na innych stronach
15 odpowiedzi na to pytanie
Rekomendowane odpowiedzi