Teraz jest Cz 19 cze, 2025 20:39


Wybuch wyzwalaczem

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

Wybuch wyzwalaczem

PostWt 25 wrz, 2007 08:09

Witam, mam pytanie. Czy da się zrobić tak, by przy aktywacji wyzwalacza kodem np.:
Kod: Zaznacz cały
xyz = "shell120" camcreate getpos nazwa_wyzwalacza

nie podawać nazwy wyzwalacza? Chcę zrobić dzięki temu pole minowe i nie musieć nazywać każdego triggera osobno.
Może być tak, że jeśli ktoś wejdzie w obręb małego wyzwalacza aktywuje minę znajdującą się w środku triggera, albo wybuchnie dokładnie pod tą osobą (player i AI)
Sprawdzałem już:
Kod: Zaznacz cały
xyz = "shell120" camcreate getpos this

i nie działa :cry:

Pomożecie?
Obrazek
Offline
Avatar użytkownika

Kadryl

Major

Major

  • Posty: 883
  • Dołączył(a): Cz 14 wrz, 2006 14:04
  • Lokalizacja: Wa-wa

PostWt 25 wrz, 2007 11:42

Pomożemy :grin:
Z tego co zrozumiałem szukasz uniwersalnego wyzwalacza dla każdego miejsca gdzie chcesz zlokalizować minę ? - może być z tym kłopot.
Jak sądze można Twój problem inaczej rozwiazać - trochę uprościć za pomoca jednego wyzwalacza i prawdopodobieństwa zadziałania.

Mianowicie całe pole minowe pokryj 1 wyzwalaczem z warunkiem:
Kod: Zaznacz cały
player and akt

w aktywacji:
Kod: Zaznacz cały
 [] exec "mina.sqs"; akt = false

W skrypcie mina.sqs:
Kod: Zaznacz cały
__ob = thislist select 0
_m = random (10)
? _m > 3: goto "czysto"
xyz = "shell73" camcreate getpos _ob
#czysto
~4
akt = true
exit

oraz w init.sqs albo inicjalizacji gracza itp:
Kod: Zaznacz cały
akt = true

W ten sposób gracz będzie uruchamiał wyzwalacz co około 4 sekundy ale nie koniecznie spowoduje wybuch pod graczem - zależeć będzie od prawdopodobieństwa "_m".
Ostatnio edytowano Cz 27 wrz, 2007 22:47 przez Kadryl, łącznie edytowano 2 razy
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

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

PostWt 25 wrz, 2007 12:44

Już na początku mam kłopot...
Wyzwalacz z warunkiem
Kod: Zaznacz cały
player and akt
nie działa (swoją drogą widzę takie coś pierwszy raz). Wyświetla mi
Kod: Zaznacz cały
and: Typ Obiekt, powienien być Logiczny
Obrazek
Offline
Avatar użytkownika

Kadryl

Major

Major

  • Posty: 883
  • Dołączył(a): Cz 14 wrz, 2006 14:04
  • Lokalizacja: Wa-wa

PostWt 25 wrz, 2007 13:18

No tak sorki zamiast player powinien być vehicle.
Przeciągnij kursorem (naciskając lewy klawisz myszy) w trybie GRUPA od gracza do wyzwalacza. W ten sposób zamiast this będzie aktywacja przez daną jednostkę.
Czyli warunek aktywacji wyzwalacza:
Kod: Zaznacz cały
vehicle and akt

----------------------------------------
Ewentualnie II wariant aktywacji, bez prawdopodobieństwa.
Wyzwalacz jak w wariancie poprzednim natomiast w pliku mina.sqs:

Kod: Zaznacz cały
_ob = thislist select 0
_m = [m1, m2, m3, m4]
;m1, m2 ... puste obiekty o nazwach m1 m2 (miny)
_mn = count _m
_i = 0
#dalej
? _i >= _mn: goto "end"
_mx = _m select _i
_i = _i + 1
? (_ob distance _mx) > 5: goto "dalej"
xyz = "shell73" camcreate getpos _mx
#end
~0.5
akt = true
exit
Ostatnio edytowano Cz 27 wrz, 2007 22:27 przez Kadryl, łącznie edytowano 1 raz
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

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

PostWt 25 wrz, 2007 15:11

Sprawdzę później, ale mam wątpliwości co do wariantu pierwszego. Jeśli "zaprogramuję" wyzwalacz, by działał na moją obecność (ew. mojej grupy) nie aktywuje się jak wejdą w niego inne jednostki (np. wroga)
Obrazek
Offline
Avatar użytkownika

Kadryl

Major

Major

  • Posty: 883
  • Dołączył(a): Cz 14 wrz, 2006 14:04
  • Lokalizacja: Wa-wa

PostWt 25 wrz, 2007 22:24

To jest najmniejszy problem.
Dla obu wariantów wystarczy ustawić wyzwalacz na "anybody" (ktokolwiek), i w warunku:
Kod: Zaznacz cały
this and akt
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

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

PostWt 25 wrz, 2007 23:05

Działa, ale to nie o to mi chodziło. Jak wyślę żołnierza z grupy na teren, to nie on ginie, lecz ja. Mogę stać 500 metrów od pola minowego, ale jak on wejdzie w jego obręb, mina (z nikąd) wybucha pode mną. A chciałbym by wybuchła pod nogami osoby wchodzącej na pole minowe.
Obrazek
Offline
Avatar użytkownika

Kadryl

Major

Major

  • Posty: 883
  • Dołączył(a): Cz 14 wrz, 2006 14:04
  • Lokalizacja: Wa-wa

PostWt 25 wrz, 2007 23:29

Zastosuj wariant 2 z warunkiem w pliku mina.sqs
zamiast
if ((player distance _mx) > 1): goto "dalej"
wpisz
if ((this distance _mx) > 1): goto "dalej".

Natomiast w wariancie 1 można spróbować z:
xyz = "shell120" camcreate getpos this
powinno zadziałać pod pierwszą osobą aktywującą wyzwalacz.
Offline
Avatar użytkownika

ASAD

Szeregowy

Szeregowy

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

PostŚr 26 wrz, 2007 12:58

Pierwszy wariant: I znowu pojawia się problem, gdyż kod
Kod: Zaznacz cały
xyz = "shell120" camcreate getpos this
jak napisałem na początku, nie działa. Sprawdziłem i dalej błąd.
Drugi wariant: To samo
Kod: Zaznacz cały
if ((this distance _mx) > 1): goto "dalej"
nie działa i wyskakuje ten sam błąd. Nie może być "this". Jeśli istnieje nazwa osoby aktywującej wyzwalacz, to pewnie ją trzeba podać. Ja jej nie znam :cry:
Dzięki, ale chyba będę musiał się "pobawić" z około 200 wyzwalaczy :/ Mam nadzieję, że ani ja, ani komputer nie zamulimy :]
Obrazek
Offline
Avatar użytkownika

Kadryl

Major

Major

  • Posty: 883
  • Dołączył(a): Cz 14 wrz, 2006 14:04
  • Lokalizacja: Wa-wa

PostŚr 26 wrz, 2007 16:25

że ani ja, ani komputer nie zamulimy


Zamulony to ja byłem :ups:

Zamiast
Kod: Zaznacz cały
xyz = "shell120" camcreate getpos this


zrób
Kod: Zaznacz cały
_ob = thislist select 0
xyz = "shell120" camcreate getpos _ob

Powrót do Operation Flashpoint

Kto przegląda forum

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

cron