Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik

Edytor Arma (Arma, Arma2, Arma2OA)

Moderatorzy: kondor, Inkwizytor

ODPOWIEDZ
kmax1
Posty: 36
Rejestracja: 01 listopada 2009, 19:08
ID Steam:
ID gracza: 0

Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik

Post autor: kmax1 »

Mam problem. Pilot musi nisko polecieć (to juz sam rozwiązałem w innym poście) i zabrać grupę żołnierzy z zagrożonego terenu (Primary mission) i dostarczyć ich do bazy (Secondary mission). Czy wiecie może ,co i jak mam wpisać w wyzwalaczu, żeby sprawdzał czy śmigłowiec ma włączony silnik? Potrzebuję tego do zakończenia cząstkowej misji jako nie udanej (Jeśli gracz zabierze ludzi ale nie dostarczy ich do bazy bo zostanie np. trafiony i będzie musiał awaryjnie wylądować to 2. cel misji nie zostanie wykonany ). Pomóżcie proszę.
kmax1
Posty: 36
Rejestracja: 01 listopada 2009, 19:08
ID Steam:
ID gracza: 0

Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik

Post autor: kmax1 »

Dziękuję za pomoc. Niestety trafiłem już na to ale nie znając się na skryptach, nie bardzo wiem jak tego użyć. W skrócie chodzi mi o to, że jeśli silnik jest wyłączony w śmigło1 to zadanie jest niezaliczone.

aktualizacja
Chyba działa. W init dałem smiglo addEventHandler["engine",{ [this select 0] exec "silnik.sqs"}], a w silnik.sqs wpisałem zadanie=true.
Czyli jeśli smiglo wykona pierwsze zadanie (czego teraz nie opisałem)ale dostanie rakietą i wyladuje awaryjnie wczesniej to zadanie=true, bo zgaśnie mu silnik i tym np. zakoncze misję. A co będzie jeśli pilot wyląduje normalnie na lotnisku? Tez wyłączy silnik. Przepraszam ale tak nakombinowałem, że sam się już gubię w tych swoich zależnościach (warunkach) w misji.
Ostatnio zmieniony 16 grudnia 2010, 20:00 przez kmax1, łącznie zmieniany 1 raz.
Awatar użytkownika
kondor
Posty: 1526
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik

Post autor: kondor »

Nie,
Passed array: [vehicle, engineState]
* vehicle: Object - Vehicle the event handler is assigned to
* engineState: Boolean - True when the engine is turned on, false when turned off
(_this select 0) to pojazd, czyli w Twoim przypadku śmigło
(_this select 1) mówi czy silnik jest włączony, czyli warunek na wyłączony silnik to

Kod: Zaznacz cały

not (_this select 1)

Kod: Zaznacz cały

smiglo addEventHandler["engine", { if (not (_this select 1)) then { zakończ misje porażką }}
kmax1
Posty: 36
Rejestracja: 01 listopada 2009, 19:08
ID Steam:
ID gracza: 0

Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik

Post autor: kmax1 »

Dziękuję! Zaktualizowałem swoj poprzedni post, bo chyba działa to co sam za pomocą prób i błędów ( i Twojej wskazówki) zrobiłem ale chętnie zaraz sprawdzę to co teraz Ty mi napisałeś. Bo wydaje mi się bardziej profesjonalne niż moje wypociny.
kmax1
Posty: 36
Rejestracja: 01 listopada 2009, 19:08
ID Steam:
ID gracza: 0

Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik

Post autor: kmax1 »

Sprawdziałem i działa! :) Dziękuję.
Mam jeszcze mały problem: Wpisałem to - smiglo addEventHandler["engine", { if (not (_this select 1)) then { zniszczenie=true }}]; w init.sqf
Zakończenie zrobiłem w wyzwalaczu przy zniszczeniu=true i zadaniu1=true (dla testów samolot musiał wleciec w obszar- wyzwalacz gdzie zadanie1=true)
Zauważyłem, że jak raz się wyłączy silnik (bez zadania1=true) to mimo, że póżniej jest włączony to i tak "pamięta" jego wyłączenie i wlatując w obszar drugiego wyzwalacza i tak kończy misję. Czy da się to jakoś obejść?
Nie wiem czy zrozumiale napisałem, bo na bieżąco testuję i piszę.
Awatar użytkownika
kondor
Posty: 1526
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik

Post autor: kondor »

Zapamiętuje, bo nigdzie nie zmieniasz zmiennej zniszczenie przy włączeniu silnika. Spróbuj tak:

Kod: Zaznacz cały

smiglo addEventHandler["engine", { zniszczenie = not (_this select 1) }];
Btw: staraj się nazywać tak zmienne, by jasnych było ich znaczenie. Nazwa "zniszczenie" dla wskazywania wyłączenia silnika jest myląca
ODPOWIEDZ

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