Wzywanie heli za pomocą flar

Edytor Arma (Arma, Arma2, Arma2OA)

Moderatorzy: kondor, Inkwizytor

Awatar użytkownika
Vari
Posty: 46
Rejestracja: 15 stycznia 2010, 16:50
ID Steam:
Numer GG: 1022354
ID gracza: 0

Wzywanie heli za pomocą flar

Post autor: Vari »

Witam.
Chciałem zrobić coś takiego:
Jest sobie jednostka plyr1 i jednostka plyr2. Oboje są wyposażeni w flarę czerwoną i zieloną. W momencie, kiedy któryś z nich strzela zieloną flarą w obrębie wysepki, helikopter heli1 rusza do wyznaczonego przeze mnie punktu na tej wysepce wyznaczoną trasą, nie strzelając do nikogo po drodze, zaś kiedy zostanie wystrzelona flara czerwona, helikopter przeleci inną trasą w inne miejsce, będzie też agresywnie ostrzeliwał każdą napotkaną wrogą jednostkę. Po doleceniu do punktu wyląduje i poczeka na plyr1 i plyr2, potem wystartuje i poleci do danego miejsca, oczywiście tez zależnego od wystrzelonej flary.
Próbowałem się od tego zabrać, ale że jestem początkujący, to udało mi się tylko zaznaczyć wyzwalaczem obszar wysepki i wyłożyłem się na warunku wystrzelenia flary...
Wiem, że to, czego chcę, to pewnie dość dużo nieco skomplikowanych czynności, ale jeśli znajdzie się ktoś, kto pomoże, będę bardzo wdzięczny.

Przepraszam za podobny post w dziale z pierwszą częścią, zwyczajnie mi się działy pomyliły, można go usunąć.
Awatar użytkownika
Vari
Posty: 46
Rejestracja: 15 stycznia 2010, 16:50
ID Steam:
Numer GG: 1022354
ID gracza: 0

Re: Wzywanie heli za pomocą flar

Post autor: Vari »

Chyba źle wyraziłem, o co mi chodzi. Obie jednostki mają być kierowane przez gracza i już mają wrzucone do ekwipunku flary, karabiny z wyrzutniami etc. Chodzi mi o samo zmuszenie helikoptera do przylotu w momencie wypuszczenia przez gracza flary i ustawienie mu odmiennych waypointów w zależności od koloru tejże. Mimo wszystko dzięki za odpowiedź.
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Wzywanie heli za pomocą flar

Post autor: kondor »

Wykrycie wystrzelenia flary wykonuje się za pomocą eventhandlera "fired", w ktorym sprawdza sie czy wystrzelony pocisk to pocisk odpowiedniej flary. Dlatego podałem Ci link do dokumentacji.
Być może istnieje łatwiejszy sposób, ale ja go nie znam.
Awatar użytkownika
Vari
Posty: 46
Rejestracja: 15 stycznia 2010, 16:50
ID Steam:
Numer GG: 1022354
ID gracza: 0

Re: Wzywanie heli za pomocą flar

Post autor: Vari »

A mógłbym prosić o jakieś praktyczne wytłumaczenie działania tego na danym przykładzie? Jak już mówiłem, jestem początkujący i ta dokumentacja owszem mówi mi coś, ale nie tyle, żebym wiedział, co dokładnie tam wpisać. Przepraszam, że o tyle proszę, ale to naprawdę nie z lenistwa, tylko braku doświadczenia.
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Wzywanie heli za pomocą flar

Post autor: kondor »

1. musisz dodac eventHandlery do strzelców, czyli tych dwóch gości. Czyli stwórz plik init.sqf (jest to plik, który uruchamia się automatycznie na początku gry), umieść go w katalogu gry, a w środku napisz:

Kod: Zaznacz cały

zielonaWystrzelona = false;
czerwonaWystrzelona = false;
plyr1 addEventHandler ["fired", {[_this select 4] execVM "wykryj_flare.sqf";}];
plyr2 addEventHandler ["fired", {[_this select 4] execVM "wykryj_flare.sqf";}];
2. stwórz ten skrypt o nazwie wykryj_flare.sqf, a w środku napisz:

Kod: Zaznacz cały

_pocisk = _this select 0;
if (_pocisk == "F_40mm_Green") then
{
  zielonaWystrzelona = true;
  publicVariable "zielonaWystrzelona";
}
else
{
  if (_pocisk == "F_40mm_Red") then
  {
    czerwonaWystrzelona = true;
    publicVariable "zielonaWystrzelona";
  }; 
};
po wystrzeleniu zielonej, zmienna "zielonWystrzelona" dostanie wartość true; analogicznie czerwona.
Możesz wtedy wykorzystać te zmienne jako warunki w polu warunku wyzwalacza, lub czegokolwiek.

Nalezy zauwazyc, ze jest tu wykrycie flary amerykanskiej; rosyjska ma inną klasę. Jeśli potrzebujesz rosyjskiej, to napisz, to powiem jak ją "zdobyć".
Załączniki
flara.utes.zip
misja przykladowa wyswietlajaca tekst, gdy zostanie wystrzelona flara czerwona lub zielona (flary sa w skrzynce)
(1.26 KiB) Pobrany 160 razy
Awatar użytkownika
Vari
Posty: 46
Rejestracja: 15 stycznia 2010, 16:50
ID Steam:
Numer GG: 1022354
ID gracza: 0

Re: Wzywanie heli za pomocą flar

Post autor: Vari »

Niech cię Bóg błogosławi! Dziękuję za poświęcony mi czas :)
Awatar użytkownika
Vari
Posty: 46
Rejestracja: 15 stycznia 2010, 16:50
ID Steam:
Numer GG: 1022354
ID gracza: 0

Re: Wzywanie heli za pomocą flar

Post autor: Vari »

Przepraszam za nowy post, ale po edycji nikt nie zobaczy, że coś nowego dopisałem i nie zajrzy, a nie ma możliwości usuwania własnych postów (albo ja jestem ślepy).

Dałem jednostce pilot1 waypoint "wsiądź" na heli1, a potem dalsze waypointy. Waypointowi "wsiądź" dałem warunek "zielonaWystrzelona = true" i pilot1 nie chce wsiadać do heli1 :( Muszę dodać jakieś cykliczne sprawdzanie tego warunku co jakiś czas? Jeśli tak, to w jaki sposób to zrobić?
Awatar użytkownika
Furman
Posty: 84
Rejestracja: 17 sierpnia 2009, 14:08
ID Steam:
ID gracza: 0

Re: Wzywanie heli za pomocą flar

Post autor: Furman »

@vari:a nie lepiej zrobić ,żeby pilot od razu był w helikopterze,a potem jak wystrzelisz dostawał WP?

Kod: Zaznacz cały

pliot1 moveindriver (nazwa helikoptera)
Awatar użytkownika
Vari
Posty: 46
Rejestracja: 15 stycznia 2010, 16:50
ID Steam:
Numer GG: 1022354
ID gracza: 0

Re: Wzywanie heli za pomocą flar

Post autor: Vari »

Wtedy heli od razu startuje i obawiam się, że zanim wystrzelę flarę, paliwo będzie już na wyczerpaniu. Niby mogę pewnie ten stan paliwa zmienić, ale po co się z tym babrać, skoro można zrobić tak? Poza tym to nie rozwiązuje problemu nie wykonywania WP po wystrzeleniu flary :(
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Wzywanie heli za pomocą flar

Post autor: kondor »

Vari pisze: Waypointowi "wsiądź" dałem warunek "zielonaWystrzelona = true" i pilot1 nie chce wsiadać do heli1
1. operator "=" to operator przypisania a nie porównania. Czyli wrzucasz true do zielonaWystrzelona, zamiast sprawdzać (operator porównania to "==")
2. nie potrzeba przyrównywać do true (zielonaWystrzelona = true), wystarczy samo zielonaWystrzelona.
ODPOWIEDZ

Wróć do „Edycja oraz tworzenie misji, skrypty oraz programowanie”