Teraz jest So 21 cze, 2025 21:23


Problem z warunkiem wyzwalacza i kierowcą

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

ASAD

Szeregowy

Szeregowy

  • Posty: 25
  • Dołączył(a): Pt 14 kwi, 2006 14:17
  • Lokalizacja: Bydgoszcz

Problem z warunkiem wyzwalacza i kierowcą

PostCz 22 mar, 2007 00:59

Witam. Mam problem. Nie wiem jakiej komendy użyć w warunku wyzwalacza, tak aby żołnierz (a1) pełnił funkcję kierowcy w pojeździe (pojazd) . Dokładnie chodzi mi o to, że kiedy dany żołnierz siedzi w pojeździe jako kierowca to coś wskazanego przeze mnie w polu "przy aktywacji" zadziała.
Próbowałem już (przypominam, że chcę to wpisaćw warunku, a nie przy aktywacji):
Kod: Zaznacz cały
a1 MoveInDriver pojazd
Kod: Zaznacz cały
driver pojazd a1
Kod: Zaznacz cały
a1 AssignedAsDriver pojazd

żaden nie działa. Wyskakuje "Typ pusty, powinien być Logiczny", czyli nieodpowiedznia komenda :(
Jeśli ktoś wie jak pomóc, bardzo proszę o odzew. Dzięki!
Offline
Avatar użytkownika

Sejtan

Major

Major

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

Re: Problem z warunkiem wyzwalacza i kierowcą

PostCz 22 mar, 2007 01:45

ASAD napisał(a):Witam. Mam problem. Nie wiem jakiej komendy użyć w warunku wyzwalacza, tak aby żołnierz (a1) pełnił funkcję kierowcy w pojeździe (pojazd) . Dokładnie chodzi mi o to, że kiedy dany żołnierz siedzi w pojeździe jako kierowca to coś wskazanego przeze mnie w polu "przy aktywacji" zadziała.
Próbowałem już (przypominam, że chcę to wpisaćw warunku, a nie przy aktywacji):
Kod: Zaznacz cały
a1 MoveInDriver pojazd
Kod: Zaznacz cały
driver pojazd a1
Kod: Zaznacz cały
a1 AssignedAsDriver pojazd

żaden nie działa. Wyskakuje "Typ pusty, powinien być Logiczny", czyli nieodpowiedznia komenda :(
Jeśli ktoś wie jak pomóc, bardzo proszę o odzew. Dzięki!


Kod: Zaznacz cały
vehicle a1 != a1


O to chyba chodziło...
Wpisując to w warunek, wyzwalacz uaktywni się gdy jednostka a1 będzie w pojeździe.
Offline

PoP

Chorąży

Chorąży

  • Posty: 238
  • Dołączył(a): Pt 14 sty, 2005 17:11

PostCz 22 mar, 2007 02:53

a1 driver pojazd?
albo crew pojazd select 0
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

  • Posty: 25
  • Dołączył(a): Pt 14 kwi, 2006 14:17
  • Lokalizacja: Bydgoszcz

PostCz 22 mar, 2007 10:06

Sejtan, Twój kod działa, ale uaktywnia się wtedy gdy a1 jest gdzieś w pojeździe, ale nie na konkretnym miejscu (np. jako kierowca) :(
Offline
Avatar użytkownika

Sejtan

Major

Major

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

PostCz 22 mar, 2007 12:47

ASAD napisał(a):Sejtan, Twój kod działa, ale uaktywnia się wtedy gdy a1 jest gdzieś w pojeździe, ale nie na konkretnym miejscu (np. jako kierowca) :(


Kod: Zaznacz cały
gunner vehicle a1 != a1 and commander vehicle a1 != a1


Ten warunek wyklucza aktywację wyzwalacza gdy jednostka a1 nie jest na miejscu strzelca lub dowódcy. Wyzwalacz aktywuję się tylko wtedy kiedy a1 siedzi w pojeździe jako kierowca, lub pasażer. Próbowałem dopisać do tego

Kod: Zaznacz cały
cargo vehicle a1 != a1
ale nie działa... :| Nie mam pojęcia dlaczego i nie wiem jak wykluczyć aktywacje, gdy a1 siedzi jako pasażer.

Może zmuś jakoś a1, żeby wlazł jako kierowca, a nie pasażer... tylko narazie nie wiem w jaki sposób, bo nie wiem dokładnie co planujesz... Czyt. jak przebiega misja, czy a1 jest w Twoim oddziale, czy wogóle widać a1 w momęcie wsiadania itp.
Offline

Oscypek

Major

Major

  • Posty: 858
  • Dołączył(a): Pn 01 lis, 2004 12:12
  • Lokalizacja: Maków Podhalański

PostCz 22 mar, 2007 16:33

Czyli tak: jeśli jednostka (a1) jest w pojeździe (pojazd) to aktywuje się wyzwalacz.
To warunek
Kod: Zaznacz cały
driver pojazd == a1


Jeśli chcemy mieć tylko pasażerów, to mamy:

Kod: Zaznacz cały
_pasazere = crew pojazd - [driver pojazd, gunner pojazd]
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

  • Posty: 25
  • Dołączył(a): Pt 14 kwi, 2006 14:17
  • Lokalizacja: Bydgoszcz

PostCz 22 mar, 2007 21:56

No dobra :twisted:
Chciałem zachować to w tajemnicy. Chodzi mi o stworzenie grupy wyzwalaczy o odpowiednich warunkach i aktywacjach, by 4-osobowa grupa żołnierzy jadąca Hummerem z M60 mogła zastępować martwego kierowcę lub celowniczego.
Czyli jest sobie a1 - kierowca (nie patrzcie na wcześniejszą informację o a1), a2 - gunner, a3 i a4 - pasażerowie. Jeśli umrze gunner, to a3 zajmuje miejsce celowniczego i kontynuuje misję. To samo jeśli padnie kierowca. Najpierw zabitego ma zastąpić a3, następnego a4, a jeśli ostatni kierowca padnie, to celowniczy wchodzi na jego miejsce i przełącza wyzwalaczem punkt trasy i wraca do bazy (poniesione za duże straty).
Wiem jak mają brzmieć "po Polsku" komendy, natomiast nie daję rady z "przetłumaczeniem na OFP" :P
Dziękuję Oscypkowi za "driver pojazd == a1 ". Działa. Inym też dziękuję. Nie wiem teraz tylko jak w czasie misji przenieść a3 (pasażera) na miejsce kierowcy (martwego a1). "a3 moveInDriver pojazd" nie działa, "a3 AssignedAsDriver pojazd" też nie, "driver pojazd a3" też :(
Offline
Avatar użytkownika

gremdek

Porucznik

Porucznik

  • Posty: 428
  • Dołączył(a): Pn 27 lut, 2006 15:02

PostCz 22 mar, 2007 23:28

pojazd exec "skrypt.sqs"


Kod: Zaznacz cały
#loop
_n=0
@!(alive (driver _this)) or !(alive (gunner _this)) or (count crew _this == 1)

? count crew _this == 1: goto "koniec"
? !(alive (driver _this)): goto "driver"
? !(alive (gunner _this)): goto "gunner"

#driver
_list = crew _this - [gunner _this]
(_list select 0) moveindriver _this
goto "loop"
#gunner
_list = crew _this - [driver _this]
(_list select 0) moveingunner _this
goto "loop"
#koniec
(crew _this select 0) moveindriver _this
_this domove pozycjabazy
exit


może mieć trochę błędów, ale zobaczysz o co chodzi i poprawisz z pewnością. skrypt działa dla dowolnego pojazdu ze strzelcem. jeśli moveindriver nie zadziała, może trzeba najpierw wywalić jednostkę z pojazdy a potem ją tam wpakować. ale moveindriver działa bo mi zawsze działało a tu nie mogła nastąpić interpolacja czasu jakaś.
:(
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

  • Posty: 25
  • Dołączył(a): Pt 14 kwi, 2006 14:17
  • Lokalizacja: Bydgoszcz

PostPt 23 mar, 2007 14:15

Gremdek, sorry ale nie sprawdziłem Twojego skryptu. Poradziłem sobie przy użyciu samych wyzwalaczy. Dzięki wszystkim :)
PS. Jak ktoś zechce się dowiedzieć co trzeba wpisać do poszczególnych triggerów, to piszcie na GG albo PW.
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

  • Posty: 25
  • Dołączył(a): Pt 14 kwi, 2006 14:17
  • Lokalizacja: Bydgoszcz

PostPt 23 mar, 2007 22:31

Nie o to chodziło. Nie chcę zaśmiecać forum. I nie wiem czy ktoś tego potrzebuje :P
Wrzucę jutro, bo już dziś nie włączam OFP :)
(W końcu odpowiadanie poszczególnym osobom na GG jest pracochłonniejsze niż wrzucenie raz na forum :P)
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

  • Posty: 25
  • Dołączył(a): Pt 14 kwi, 2006 14:17
  • Lokalizacja: Bydgoszcz

PostSo 24 mar, 2007 23:18

Tak jest, Panie majorze :P

A więc tak:
Mamy pojazd z km o nazwie "hmv" (np. HMMWV GROMu) oraz 4-osobową załogę o nazwach:
a1 - w Inicjacji: this moveInDriver hmv
a2 - w Inicjacji: this moveInGunner hmv
a3 - w Inicjacji: this moveInCargo hmv
a4 - w Inicjacji: this moveInCargo hmv

Jest potrzebnych siedem wyzwalaczy. Wypadałoby ustawić ich wielkości na 0 (oś a=0; oś b=0) bo ładniej wyglądają :P Jako czas zwłoki wpisujemy po 2 sekundy (po tym czasie żołnierz będzie zastępował swojego martwego kolegę).

Teraz piszemy w wyzwalaczach:

Pierwszy
Warunek:
Kod: Zaznacz cały
not (alive a1) and not (gunner hmv == a3)

Przy aktywcji:
Kod: Zaznacz cały
a3 action ["Eject",hmv]   ;a3 moveInDriver hmv


Drugi
Warunek:
Kod: Zaznacz cały
not (alive a1) and (not (alive a3) or (gunner hmv == a3)) and not (gunner hmv == a4)

Przy aktywacji:
Kod: Zaznacz cały
a4 action ["Eject",hmv]   ;a4 moveInDriver hmv

Oba odpowiadają za zastąpienie martwego kierowcy pasażerem


Trzeci
Warunek:
Kod: Zaznacz cały
not (alive a2) and not (driver hmv == a3)

Przy aktywacji:
Kod: Zaznacz cały
a3 action ["Eject",hmv]  ;a3 moveInGunner hmv


Czwarty
Warunek:
Kod: Zaznacz cały
not (alive a2) and (not (alive a3) or (driver hmv ==a3)) and not (driver hmv == a4)

Przy aktywacji:
Kod: Zaznacz cały
a4 action ["Eject",hmv]  ;a4 moveInGunner hmv

Te dwa zaś, za zastąpienie martwego celowniczego pasażerem


Piąty
Warunek:
Kod: Zaznacz cały
not (alive a1) and not (alive a2) and not (alive a3)

Przy aktywacji:
Kod: Zaznacz cały
a4 action ["Eject",hmv]   ;a4 moveInDriver hmv


Szósty
Warunek:
Kod: Zaznacz cały
not (alive a1) and not (alive a2) and not (alive a4)

Przy aktywacji:
Kod: Zaznacz cały
a3 action ["Eject",hmv]   ;a3 moveInDriver hmv


Siódmy
Warunek:
Kod: Zaznacz cały
not (alive a1) and not (alive a3) and not (alive a4)

Przy aktywacji:
Kod: Zaznacz cały
a2 action ["Eject",hmv]  ;a2 moveInDriver hmv

Ostatnie trzy odpowiadają za zastąpienie kierowcy przez samotnego celowniczego. Typ tych trzech wyzwalaczy może być "przełącz" i mogą być zsynchronizowane z punktem (punktami) trasy, tak aby mógł (mogły) się dezaktywować i ten co przeżył mógł wrócić do bazy zanim i jego wróg zabije.
Trzeba wtedy dodać ósmy wyzwalacz, też typu "przełącz" o warunku:
Kod: Zaznacz cały
not (alive a2) and not (alive a3) and not (alive a4)
Co da efekt taki, że gdy wróg zabije wszyskich oprócz a1, to wtedy (a1) wróci do bazy.

Można pominąć wyzwalacze 5, 6, 7 i 8, ale dodanie ich sprawia, że gra jest realistyczna.


Przykładem misji w której możnaby to zastosować może być np. wsparcie atakującej piechoty przez wozy z KM-ami właśnie.

Dobra rada! Nie używajcie tych wyzwalaczy gdy w grupie jest gracz. Wyjdą śmieszne rzeczy gdy np. gracz wyjdzie z pojazdu i wtedy dopiero zginie kierowca/strzelec. Dobrym sposobem jest też danie takiej postawy grupie w punkcie trasy by nie wysiadała w trakcie misji, albo dodanie odpowiedniej komendy (jeszcze o niej nie myślałem).

Nie znam się na skryptach, dlatego właśnie robiłem wszystko na wyzwalaczach. Trochę się rozpisałem, więc teraz wszyscy widzą dlaczego nie chciałem "zaśmiecać".
Dzięki :)
Offline
Avatar użytkownika

Sejtan

Major

Major

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

PostN 25 mar, 2007 03:20

Dżizys... :| Zamiast "zaśmiecać" mapę tyloma wyzwalaczami, nie lepiej użyć skryptu Gremdek'a? O ile działa oczywiście...
Ostatnio edytowano N 25 mar, 2007 14:11 przez Sejtan, łącznie edytowano 1 raz
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

  • Posty: 25
  • Dołączył(a): Pt 14 kwi, 2006 14:17
  • Lokalizacja: Bydgoszcz

PostN 25 mar, 2007 08:52

Nie znam się na skryptach, dlatego właśnie robiłem wszystko na wyzwalaczach.
He, he :lol:
Online

xersius

Pułkownik

Pułkownik

  • Posty: 99987
  • Dołączył(a): Pn 29 lip, 2024 15:01

Re: Problem z warunkiem wyzwalacza i kierowcą

PostPt 13 gru, 2024 18:06

инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинйоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоtuchkasинфоинфо
Online

xersius

Pułkownik

Pułkownik

  • Posty: 99987
  • Dołączył(a): Pn 29 lip, 2024 15:01

Re: Problem z warunkiem wyzwalacza i kierowcą


Powrót do Operation Flashpoint

Kto przegląda forum

Użytkownicy przeglądający ten dział: xersius i 23 gości