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
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