judosmok 1 Opublikowano 2 maja 2024 Udostępnij Opublikowano 2 maja 2024 Czy da się używając shoot wystrzelić strzałę czy cokolwiek żeby leciała do osoby która na zaatakuje? Cytuj Odnośnik do komentarza https://skript.pl/temat/57457-pytanie-do-effektu-shoot/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 2 maja 2024 Udostępnij Opublikowano 2 maja 2024 6 minut temu, judosmok napisał: Czy da się używając shoot wystrzelić strzałę czy cokolwiek żeby leciała do osoby która na zaatakuje? Jak najbardziej. Wyjaśnię w kilku krokach jak można taki skrypt napisać. Nasłuchujemy do listenera zdarzenia 'on damage:'. Sprawdzamy czy ofiara (victim) to gracz. Zapisujemy do jakiejś zmiennej lokalnej (na przykład {_v}) wektor zaczynający się w lokalizacji zaatakowanego i kończący się w lokalizacji atakującego. Tutaj przyda się te wyrażenie z dokumentacji. Normalizujemy ów wektor (zmniejszamy jego moduł (długość) do 1). Powinniśmy tak zrobić, gdyż obrażenia zadawane przez strzałę zależą od jej prędkości, a bez normalizacji mielibyśmy sytuację, że im dalej stałby atakujący, tym szybciej strzała wędrowałaby w jego kierunku (a więc zadawałaby więcej obrażeń). Możemy przemnożyć (ale nie musimy) ten wektor przez jakąś stałą, aby zmienić prędkość strzały. Niestety, Skript nie wspiera mnożenia wektorów przez skalar. Jesteśmy zmuszeni więc stworzyć wektor o identycznych współrzędnych (np. 'set {_scalarVector} to vector 0.8, 0.8, 0.8'). Gdy już stworzyliśmy sobie taki wektor, możemy go przemnożyć przez nasz wektor z punktu 3 i zapisać wynik tego mnożenia (który jest rzecz jasna wektorem) do jakiejś zmiennej lokalnej. Najprościej jest posłużyć się tym wyrażeniem. Finalnie, możemy użyć efektu 'shoot'. Na końcu musimy dodać nasz wektor, aby Skript wiedział w jakim kierunku ma zostać wystrzelona strzała. CoFFeIN04 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/57457-pytanie-do-effektu-shoot/#findComment-342154 Udostępnij na innych stronach Więcej opcji udostępniania...
0 judosmok 1 Opublikowano 2 maja 2024 Autor Udostępnij Opublikowano 2 maja 2024 Nie wiem czy zrozumiałem dobrze, ale wyszło mi coś takiego set {_loc1} to location of victim set {_loc2} to location of attacker set {_v} to vector between {_loc1} and {_loc2} set {_v} to normalized {_v} set {_scalarVector} to vector 0.8, 0.8, 0.8 set {_cel} to {_v}*{_scalarVector} shoot an arrow from victim {_cel} nie mam jak sprawdzić, ale jak zrobiłem reload to nie było błędów powiesz czy to dobrze zrobiłem, czy źle zrozumiałem? Kormic 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/57457-pytanie-do-effektu-shoot/#findComment-342168 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 2 maja 2024 Udostępnij Opublikowano 2 maja 2024 9 minut temu, judosmok napisał: nie mam jak sprawdzić, ale jak zrobiłem reload to nie było błędów powiesz czy to dobrze zrobiłem, czy źle zrozumiałem? Jeśli kod został zawarty w listenerze zdarzenia 'on damage:' i sprawdzono czy obaj uczestnicy zdarzenia (victim i attacker) to gracze, to prawie bezbłędnie Pan to napisał, bardzo ładnie. Jedyny błąd to pojedynczy znak mnożenia. Jeśli chcemy przemnożyć dwa wektory przez siebie (a więc wszystkie współrzędne pierwszego przez odpowiadające współrzędne drugiego), należy użyć podwójnego znaku mnożenia '**'. W razie niepewności ponownie odsyłam do dokumentacji. Cytuj Odnośnik do komentarza https://skript.pl/temat/57457-pytanie-do-effektu-shoot/#findComment-342169 Udostępnij na innych stronach Więcej opcji udostępniania...
0 judosmok 1 Opublikowano 3 maja 2024 Autor Udostępnij Opublikowano 3 maja 2024 Okej, dziękuje. Cytuj Odnośnik do komentarza https://skript.pl/temat/57457-pytanie-do-effektu-shoot/#findComment-342172 Udostępnij na innych stronach Więcej opcji udostępniania...
0 judosmok 1 Opublikowano 3 maja 2024 Autor Udostępnij Opublikowano 3 maja 2024 Tylko przy odpaleniu serwer napisało że ta funkcja zostanie niedługo usunięta: Cytat This expression was deprecated in favor of the arithmetic expression, and will be removed in the future. Please use that instead. E.g. 'vector(2, 4, 1) + vector(5, 2, 3)' Line: set {_cel} to {_v}**{_scalarVector} Cytuj Odnośnik do komentarza https://skript.pl/temat/57457-pytanie-do-effektu-shoot/#findComment-342173 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 3 maja 2024 Udostępnij Opublikowano 3 maja 2024 (edytowane) 2 godziny temu, judosmok napisał: Tylko przy odpaleniu serwer napisało że ta funkcja zostanie niedługo usunięta: Faktycznie. Zapomniałem, że te wyrażenia zostały przeznaczone do usunięcia w wersji 2.8.0. Miło widzieć, że twórcy faktycznie chcą uczynić wektory w Skript wektorami w sensie matematycznym, a nie ich marnymi imitacjami. Być może jednak w najnowszej wersji jest już możliwy iloczyn skalara z wektorem (nie mylić z iloczynem skalarnym). Nie rozumiem jednak dlaczego Skript sugeruje dodanie tych wektorów. Zakładam, że twórcy tylko jedną taką wskazówkę dla dodawania. Nam rzecz jasna zależy na operacji iloczynu skalara i wektora. Niech Pan w takim razie spróbuje napisać tę instrukcję na dwa poniższe sposoby i po zapisaniu zmiennej {_cel} wyświetli ją na czacie. # 1. sposób (o ile można dokonać przemnożenia współrzędnych wektora przez skalar): set {_cel} to 0.8 * {_v} # Powyższa linijka powinna zwrócić wektor, którego moduł jest równy 80% modułu wektora {_v} # Moduł wektora: https://docs.skriptlang.org/expressions.html#ExprVectorLength # 2. sposób (o ile wystarczy pojedynczy znak mnożenia): set {_cel} to {_scalarVector} * {_v} Mam duże wątpliwości co do drugiego, gdyż matematycznie jest to operacja niedopuszczalna - mowa o mnożeniu macierzowym, gdzie ilość kolumn w pierwszej macierzy jest różna od ilości wierszy w drugiej macierzy (przy założeniu, że to są wektory wierszowe). Niemniej jednak warto to przetestować. Edytowane 3 maja 2024 przez Kormic Cytuj Odnośnik do komentarza https://skript.pl/temat/57457-pytanie-do-effektu-shoot/#findComment-342175 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
judosmok 1
Czy da się używając shoot wystrzelić strzałę czy cokolwiek żeby leciała do osoby która na zaatakuje?
Odnośnik do komentarza
https://skript.pl/temat/57457-pytanie-do-effektu-shoot/Udostępnij na innych stronach
6 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ą.