Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik
Moderatorzy: kondor, Inkwizytor
Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik
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ę.
Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik
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.
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.
Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik
Nie,
(_this select 1) mówi czy silnik jest włączony, czyli warunek na wyłączony silnik to
(_this select 0) to pojazd, czyli w Twoim przypadku śmigłoPassed 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 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ą }}
Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik
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.
Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik
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ę.

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ę.
Re: Wyzwalacz sprawdzanie czy smiglowiec ma wlaczony silnik
Zapamiętuje, bo nigdzie nie zmieniasz zmiennej zniszczenie przy włączeniu silnika. Spróbuj tak:
Btw: staraj się nazywać tak zmienne, by jasnych było ich znaczenie. Nazwa "zniszczenie" dla wskazywania wyłączenia silnika jest myląca
Kod: Zaznacz cały
smiglo addEventHandler["engine", { zniszczenie = not (_this select 1) }];