Teraz jest Pt 29 mar, 2024 13:07


Aktywacja wyzwalacza przy wyłączeniu pojazdu z walki

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

Jethro

Szeregowy

Szeregowy

  • Posty: 29
  • Dołączył(a): Pt 07 maja, 2010 22:04

Aktywacja wyzwalacza przy wyłączeniu pojazdu z walki

PostPn 07 cze, 2010 15:57

Tak... ostatnio często mam problemy ;)
Sprawa jest taka: gracz wzywa pojazd ewakuacyjny (nazwijmy go transport) i ma dotrzeć do punktu zbiorczego, skąd zostanie zabrany. Ale żeby za łatwo nie było, to pojazd po drodze może zostać poważnie uszkodzony lub zniszczony - czyli ogólnie nie będzie nadawał się do jazdy. Wówczas wyświetla się komunikat, że sorry bardo, ale trzeba wiać z buta, bo z transportu nici ;)
Ogólnie wyzwalacz ma się aktywować, kiedy:
1) Samochód/transporter zostanie zniszczony
2) Samochód/transporter zostanie zbyt uszkodzony, by dalsza jazda była możliwa
3) Załoga zostanie zabita

Pierwszy punkt idzie bez problemu i załatwia go
Kod: Zaznacz cały
not alive transport

Gorzej z pozostałymi. Próbowałem to załatwić sprawdzeniem, czy w pojeździe jest załoga:
Kod: Zaznacz cały
?(isNull (_zaloga select 0)):goto "byfoot" (gdzie _zaloga = crew transport)

Ale nijak to nie działa. Wyzwalacz aktywuje się tylko w przypadku zniszczenia pojazdu.
Jeśli ktoś miałby na to jakiś pomysł, to byłbym dźwięczny ;)
Offline
Avatar użytkownika

Sejtan

Major

Major

  • Posty: 676
  • Dołączył(a): Pn 19 lip, 2004 21:26
  • Lokalizacja: Starogard Gdański

PostPn 07 cze, 2010 17:12

W warunku wyzwalacza:

Kod: Zaznacz cały
0 == {alive _x} count units zaloga OR damage transport > 0.5 OR not alive transport


OR..., żeby było ładniej, napisz to samo tylko w notatniku i zapisz jako *sqs. Jak się wywołuje skrypty chyba już wiesz ;]

Aaa... wartość 0.5 w warunku damage można zmienić na inną, bardziej odpowiednią, ale to już sam musiesz sobie sprawdzić jaka będzie właściwa.

Mam nadzieje, że zadziała... sprawdzałem na ArmA II
Offline
Avatar użytkownika

alderous

Pułkownik

Pułkownik

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

PostPn 07 cze, 2010 17:17

Uważałbym z stosowaniem isNull i grpNull. One nie są równe niczemu nawet sobie samym. Stosowałbym raczej count sprawdzając czy jest większe od 0. Domyślam się, że istotne jest tak na prawdę to czy kierowca żyje, więc może po prostu alive driver jakisPojazd?

PS. W crew są też "zwykli" pasażerowie pojazdu

PS2. Jest komenda canMove do sprawdzania czy pojazd jest w stanie jechać
Offline
Avatar użytkownika

Sejtan

Major

Major

  • Posty: 676
  • Dołączył(a): Pn 19 lip, 2004 21:26
  • Lokalizacja: Starogard Gdański

PostPn 07 cze, 2010 19:09

To co wyżej napisałem miałoby dobre zastosowanie gdyby, w przypadku śmierci kierowcy, inny członek załogi przesiadał by się na jego miejsce. Głowe dam, że już coś takiego kiedyś widziałem, tylko nie wiem gdzie i czy to było do OFP, czy do ArmA ;/ A zamiast damage _x faktycznie lepiej by było zastosować canMove :)
Offline
Avatar użytkownika

Jethro

Szeregowy

Szeregowy

  • Posty: 29
  • Dołączył(a): Pt 07 maja, 2010 22:04

PostPn 07 cze, 2010 23:06

Dziękuję, działa :) W moim przypadku wsparcie przyjeżdża w postaci samochodu z MG, czyli załogę tworzą tylko 2 osoby.
Kod: Zaznacz cały
#loop
?((not alive transport) or ((not alive drive transport) and (not alive gunner transport))):goto "switch"
?canMove transport:goto "loop"

SWITCH jest występującą zaraz poniżej częścią skryptu odpowiedzialną za przełączenie punktu trasy, zaliczenie (czy raczej - niezaliczenie ;) ) punktu z briefingu itp, czyli rzeczy mało istotne z punktu widzenia problemu.
Jeszcze raz dziękuję :)
Za cienki jeszcze jestem w edytorze, żeby poradzić sobie z tego typu sprawami samemu. Tzn - ramowy algorytm się zrobi, gorzej, kiedy przyjdzie dodać do tego kodowanie :P

Sejtan napisał(a):To co wyżej napisałem miałoby dobre zastosowanie gdyby, w przypadku śmierci kierowcy, inny członek załogi przesiadał by się na jego miejsce. Głowe dam, że już coś takiego kiedyś widziałem, tylko nie wiem gdzie i czy to było do OFP, czy do ArmA


Owszem, też to widziałem ;) W temacie, gdzie poruszano właśnie problem zastąpienia kierowcy/strzelca przez inną osobę z załogi (dokładnie cargo) w razie śmierci. Natknąłem się na ten temat szukając właśnie czegoś o unieruchomionych pojazdach ;)
Offline
Avatar użytkownika

Sejtan

Major

Major

  • Posty: 676
  • Dołączył(a): Pn 19 lip, 2004 21:26
  • Lokalizacja: Starogard Gdański

PostPn 07 cze, 2010 23:24

A co jeśli transport żyje, driver nie, a gunner tak?

Jeszcze raz dziękuję
Za cienki jeszcze jestem w edytorze, żeby poradzić sobie z tego typu sprawami samemu. Tzn - ramowy algorytm się zrobi, gorzej, kiedy przyjdzie dodać do tego kodowanie


Spoko ;] od tego jest forum.

Owszem, też to widziałem W temacie, gdzie poruszano właśnie problem zastąpienia kierowcy/strzelca przez inną osobę z załogi (dokładnie cargo) w razie śmierci. Natknąłem się na ten temat szukając właśnie czegoś o unieruchomionych pojazdach


Daj linka...
Offline
Avatar użytkownika

Jethro

Szeregowy

Szeregowy

  • Posty: 29
  • Dołączył(a): Pt 07 maja, 2010 22:04

PostWt 08 cze, 2010 13:30

Pomyłka, tam rozwiązanie było inne.
LINK

Co do sytuacji, kiedy kierowca ginie, a gunner nie... zazwyczaj atakujący, jeśli wykończą kierowcę to dopadają i strzelca. Ale faktycznie lepiej się zabezpieczę przed czymś takim, że kierowca zginie, gunner załatwi przeciwnika i będzie stał w polu oddalony o, powiedzmy, pół kilometra od punktu zbiórki... Spróbuję go przesadzić na miejsce kierowcy i nakazać odwrót (i przy okazji kazać grupie gracza iść dalej pieszo). Dam znać, jeśli coś mi z tego wyjdzie.

EDIT

Skrypt z każdą chwilą jest coraz bardziej rozbudowany ;) Jak już z nim skończę, to wrzucę, bo dostał jeszcze kilka innych funkcji i może komuś się przyda :)

Powrót do Operation Flashpoint

Kto przegląda forum

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

cron