Teraz jest N 28 kwi, 2024 04:30


Wsparcie śmigłowca szturmowego na żądanie

Archiwum działów sekcji Operation Flashpoint
  • Autor
  • Wiadomość
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

Wsparcie śmigłowca szturmowego na żądanie

PostWt 16 gru, 2008 13:47

Zagadnienie dałem jako przykład modułu, więc przyszedł czas sprawdzić jak to działa w rzeczywistości. Pomysł jest prosty - mamy śmigłowiec szturmowy który na wezwanie radiowe gracza dowódcy wystartuje i przyleci na jego pozycję oraz zacznie szukać i niszczyć cele (raczej nie liczyłbym na zwalczanie piechoty. To służy jedynie do pozbycia się pojazdów opancerzonych wroga). Jeśli odniesie poważne uszkodzenia przerwie misje i wróci na miejsce startu (czyli może nawet nie dolecieć na pozycje graczy). Dodatkowo jeśli śmigłowiec zostanie zestrzelony gracze otrzymają dodatkowy cel sprawdzenia jego wraku.

Aby coś takiego osiągnąć wstawiamy śmigłowiec i w inicjacji wpisujemy heli = vehicle this; this land "LAND". Wstawiamy mu punkt trasy "na nim" i synchronizujemy go z wyzwalaczem z warunkiem getDammage heli > 0.1 i z jakimś sideChatem informującym że śmigłowiec się wycofuje z powodu uszkodzeń. Następnie wstawiamy punkt trasy obok i w polu przy aktywacji wpisujemy heli land "LAND".
Do tego wstawiamy wyzwalacz typu radiowego z wpisanym w polu przy aktywacji heli doMove getPos leader group player. W efekcie śmiglak na wezwanie radiowe np. 0-0-1 przyleci tam gdzie jest wzywający w chwili wezwania i zaatakuje cele w okolicy.

Zauważyłem, że śmiglak nie kwapi się do startu, gdy w okolicy są pojazdy wroga, więc niech ma lądowisko za linią frontu (to zresztą logiczne).

Dodanie celu w przypaku zestrzelenia śmigłowca załatwi wyzwalacz z warunkiem getDammage heli == 1. W polu przy aktywacji można dać stosowny chat. Komendą "obj_1" objStatus "ACTIVE" spowodować pojawienie się celu (trzeba go wcześniej ukryć np. umieszczając w inicjacji śmigłowca wpis "obj_1" objStatus "HIDDEN". Trzeba też sprawdzić czy obj_1 nie został już wykorzystany). Jeśli chcemy oznaczyć markerem pozycję zestrzelonej maszyny to trzeba go najpierw gdziekolwiek wstawić i nazwać np. crashsite oraz zmienić mu oba wymiary na 0 (będzie niewidoczny). Pojawienie i przemieszczenie załatwią komendy "crashsite" setMarkerSize [1, 1]; "crashsite" setMarkerPos getPos heli.

Zaliczenie zadania wykona wyzwalacz z warunkiem getDammage heli == 1 AND player distance heli < 5 i w polu przy aktywacji "obj_1" objStatus "DONE".

Proponuję uśmiercić załogę śmigłowca w przypadku katastrofy co rozwiązuje problem jej ratowania. Zresztą gdyby wyskoczyli na spadochronach to po wylądowaniu ruszą w dalszą drogę do ostatniego punktu trasy. Zagadnienie dodatkowego celu polegającego na uratowaniu załogi zostawię sobie na później. Jest jeszcze kwestia skierowania grupy wrogów na miejsce kraksy, tak by gracze mieli komitet powitalny - do tego celu wystarczy przerwać pętlę jednego z patroli. Ewentualnie spawnować grupę już na miejscu co jest o tyle dziwne, że jeżeli śmigłowiec spadnie niedaleko graczy to "magicznie" pojawią się wokół niego wrogowie - sprawa również do obgadania później.

http://www.toya.net.pl/~rycop/schowek/w ... .Intro.zip
Ostatnio edytowano Cz 25 gru, 2008 13:16 przez alderous, łącznie edytowano 7 razy
Offline
Avatar użytkownika

LostBeyondRetri

Porucznik

Porucznik

  • Posty: 254
  • Dołączył(a): Pt 08 cze, 2007 22:22
  • Lokalizacja: Stąd?

PostWt 16 gru, 2008 20:46

Aby wycofał się w przypadku uszkodzeń trzeba dodać wyzwalacz typu przełącz z warunkiem getDammage heli1 > 0.8


Prawdopodobnie gadam głupoty, więc bijcie, ale ten 0.8, który dałeś jest za duży.
Bo heli ma osobny przedział dammag'u, w którym wyłącza się silnik i osobny, w którym wybucha.
Zresztą to i tak mały problem, a całość super napisana ;-)
Obrazek
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

PostWt 16 gru, 2008 23:26

LostBeyondRetri napisał(a):
Aby wycofał się w przypadku uszkodzeń trzeba dodać wyzwalacz typu przełącz z warunkiem getDammage heli1 > 0.8


Prawdopodobnie gadam głupoty, więc bijcie, ale ten 0.8, który dałeś jest za duży.
Bo heli ma osobny przedział dammag'u, w którym wyłącza się silnik i osobny, w którym wybucha.
Zresztą to i tak mały problem, a całość super napisana ;-)


Nie upieram się przy tym 0.8, ale z zasady sprawdzam czy to działa za nim opublikuje (stąd też tematy pojawiają się powoli). Użyłem standardowego AH-64 - przy 0.8 wycofał się elegancko i w jednym kawałku (tylko szyby miały rysy).
Offline
Avatar użytkownika

LostBeyondRetri

Porucznik

Porucznik

  • Posty: 254
  • Dołączył(a): Pt 08 cze, 2007 22:22
  • Lokalizacja: Stąd?

PostŚr 17 gru, 2008 15:34

Moje doświadczenia płyną z modów "wietnamskich", więc może się to różni od bisu.
Obrazek
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

  • Posty: 1784
  • Dołączył(a): Cz 19 sie, 2004 13:20
  • Lokalizacja: Łódź

PostŚr 24 gru, 2008 18:24

Niestety, ale podane przeze mnie rozwiązanie okazało się wadliwe. Pracując nad kolejnym modułem odkryłem że polecenie setWPPos działa nienajlepiej w przypadku śmigłowców - mimo iż lecą tam gdzie trzeba to nie zaliczają przeniesionego punktu trasy. W każdym razie odkryłem inny (zapewne jeden z wielu) sposób w związku z czym edytuję pierwszy post.

Dodatkowo okazało się że LostBeyondRetrival ma rację odnośnie damage'u śmigłowców tzn. nie jest on zbyt wiarygodnym miernikiem stanu śmigłowca. Podczas testu ostrzeliwałem AH-64 z karabinu kal .50 i wszystko było ok, ale gdy potem wstawiłem Szyłkę już zaczęły się problemy. Pokazuje to także że warto dawać przykłady jako pliki choćby dlatego że zwiększa to szanse na wykrycie błędów.

Powrót do Operation Flashpoint

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 35 gości