Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Jak wykryć func_breakable 20 unitów przed bytem ?


Najlepsza odpowiedź grankee, 16.04.2016 14:42

Ja widzę różne opcje:

- Zwiększ wymiary boxu strzały tak aby sięgały 30 unitów. Wtedy touchem wykryjesz. Opcja o tyle niedokładna, że zależnie od kąta nachylenia itd box bytu będzie większy także w niepotrzebnych wymiarach przez co może przelatywać obok func_breakable i go zniszczyć.

- Licz w częstym thinku tego bytu odległość od wszystkich func_breakable na mapie i jeśli jest odpowiednio mała to wywołuj obrażenia na func_breakable. Tutaj możesz się bawić do woli, zaleznie od kątu nachylenia liczysz odległość tylko w jednym kierunku, w którym leci strzała, w zasadzie ogranicza Cię tylko wiedza z matmy a dokładniej geometrii no i optymalność.

- Ostatni wydaje mi się najsensowniejszy. Nie wiem jaki movetype ma Twoja strzała, ale zakładam, że nie leci po linii prostej tylko działa nań grawitacja. Jeśli nie to nawet prościej będzie.

---Jeśli leci prosto to puszczasz traceline w kierunku gdzie leci. Jak traceline przetnie funca to Tworzysz nextthink na przybliżony czas kiedy doleci. Wzór na prędkość/drogę/czas znasz :D Wtedy w tym thinku sprawdzasz czy jest odpowiednio blisko żeby rozwalić 'kratkę', jeśli nie to tworzysz nextthink na bardzo krótki czas i sprawdzasz ponownie i tak do skutku. Jeśli na drodze nie ma żadnego func_breakable to nie ustawiasz thinka do sprawdzenia, bo i po co. 

---Jeśli leci z lekką grawitacją to już trochę więcej zabawy, ale dalej da się przewidzieć gdzie poleci. Nie wiem jak to dokładnie zrobić, ale widziałem kiedys plugin DarkGL, który malował łukowatą linię wskazującą gdzie poleci granat po rzucie. Może tak znajdziesz sposób jak przewidzieć drogę strzały.

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 NoLiFeR

    Wszechobecny

  • Użytkownik

Reputacja: 103
Zaawansowany

  • Postów:483
  • GG:
  • Imię:Adrian
  • Lokalizacja:Sosnowiec
Offline

Napisano 16.04.2016 13:22

Witam, jest to mój pierwszy post od bardzo dawna, więc chciałbym się przywitać po tej nieobecności ^^

Cześć :)

Ale przejde do rzeczy.
Tworze strzałe, której nadaje określoną prędkość, kąt, movetype, grawitacje etc..
Chciałbym, aby ta strzała rozbijała byty func_breakable, gdy w nie wleci. Ale nie gdy ich dotknie, bo z touchem problemu nie ma, lecz wtedy, gdy byt znajduje się 20-30 unitów przed tym bytem, uwzględniając jego kąty nachylenia.
Najlepiej, aby funkcje dało podpiąć się pod jakiś think, ponieważ chcę graczowi na ekranie wyświetlać przykładową wiadomość informującą o trafieniu ("Przebiłeś tarcze"?)


Problem nie z samym dmg, lecz z wykryciem tego bytu przed strzałą :v


Użytkownik NoLiFeR edytował ten post 16.04.2016 13:32

  • +
  • -
  • 0

#2 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 16.04.2016 14:42   Najlepsza odpowiedź

Ja widzę różne opcje:

- Zwiększ wymiary boxu strzały tak aby sięgały 30 unitów. Wtedy touchem wykryjesz. Opcja o tyle niedokładna, że zależnie od kąta nachylenia itd box bytu będzie większy także w niepotrzebnych wymiarach przez co może przelatywać obok func_breakable i go zniszczyć.

- Licz w częstym thinku tego bytu odległość od wszystkich func_breakable na mapie i jeśli jest odpowiednio mała to wywołuj obrażenia na func_breakable. Tutaj możesz się bawić do woli, zaleznie od kątu nachylenia liczysz odległość tylko w jednym kierunku, w którym leci strzała, w zasadzie ogranicza Cię tylko wiedza z matmy a dokładniej geometrii no i optymalność.

- Ostatni wydaje mi się najsensowniejszy. Nie wiem jaki movetype ma Twoja strzała, ale zakładam, że nie leci po linii prostej tylko działa nań grawitacja. Jeśli nie to nawet prościej będzie.

---Jeśli leci prosto to puszczasz traceline w kierunku gdzie leci. Jak traceline przetnie funca to Tworzysz nextthink na przybliżony czas kiedy doleci. Wzór na prędkość/drogę/czas znasz :D Wtedy w tym thinku sprawdzasz czy jest odpowiednio blisko żeby rozwalić 'kratkę', jeśli nie to tworzysz nextthink na bardzo krótki czas i sprawdzasz ponownie i tak do skutku. Jeśli na drodze nie ma żadnego func_breakable to nie ustawiasz thinka do sprawdzenia, bo i po co. 

---Jeśli leci z lekką grawitacją to już trochę więcej zabawy, ale dalej da się przewidzieć gdzie poleci. Nie wiem jak to dokładnie zrobić, ale widziałem kiedys plugin DarkGL, który malował łukowatą linię wskazującą gdzie poleci granat po rzucie. Może tak znajdziesz sposób jak przewidzieć drogę strzały.


  • +
  • -
  • 1

#3 NoLiFeR

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 103
Zaawansowany

  • Postów:483
  • GG:
  • Imię:Adrian
  • Lokalizacja:Sosnowiec
Offline

Napisano 16.04.2016 14:49

Sytuacja jest na tyle niekonfortowa, że w pluginie który tworzę, będzie możliwa do uzyskania "tarcza" zakrzywiająca tor lotu strzały :/ Muszę to robić z miejsca, w którym strzała jest w danym momencie.. 2 opcja wydaje się ok, jeżeli na mapie jest max 10 breakablesów. Jak jest ich 100 to serwer będzie przy 5 strzałach siadał :/

 

Jeżeli chodzi o traceline, to siada :/ Miałbyś przykład jakiś ? z tego co pamiętam, jeżeli zwróci 1.0 to się nie przetnie ? Ale jak sprawdzić czy przebity ent to breakable ?


Użytkownik NoLiFeR edytował ten post 16.04.2016 15:17

  • +
  • -
  • 0

#4 NoLiFeR

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 103
Zaawansowany

  • Postów:483
  • GG:
  • Imię:Adrian
  • Lokalizacja:Sosnowiec
Offline

Napisano 16.04.2016 16:28

https://amxx.pl/topi...rzedza-graczem/+ EV_VEC_angles + traceline i hit rozwiązało sprawe ;)
Dzięki za pomoc grankee

 


  • +
  • -
  • 0

#5 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 17.04.2016 00:03

Po zakrzywieniu toru lotu dajesz to samo co po wystrzeleniu ale juz z nowymi parametrami lotu wiec to zaden problem.


  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych