Teraz jest Cz 28 mar, 2024 19:07


Wydzielenie z drużyny nowej grupy

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

Wydzielenie z drużyny nowej grupy

PostŚr 09 cze, 2010 17:25

Kontynuując poprzedni problem z drużyną idącą na spotkanie jednostki transportowej.
Jak już wspomniałem poprzednio, ową jednostką jest humvee (dokładnie gromu). Mieści 7 ludzi, w tym dwójka załogi. Grupa gracza liczy do 12 żołnierzy (zależnie od tego, ilu uda się doprowadzić do punktu zbiórki ;) ). Czyli cała grupa nie wejdzie do pojazdu. Do tej pory używałem takiego chwytu, że każdy z grupy dostał nazwę, skrypt sprawdzał, czy ilość ludzi w grupie nie przekracza 5 i odłączał po kolei pojedynczych żołnierzy, aż grupa mieściła się w samochodzie. Każdy żołnierz lądował w pustej grupie. I wszystko fajnie, tylko...
Czy da się obejść potrzebę nazywania każdego z osobna- czyli np skrypt bierze w przypadku nadmiaru ludzi pierwszego żołnierza po graczu i go odłącza. Później dołącza do niego ewentualnie innych (jeśli tacy są) i tak powstała grupa udaje się pieszo do jakiegoś punktu. Myślałem, żeby dołączać ich do konkretnego żołnierza, ale przecież nie mam pewności, że on przeżyje, więc... nie mam na to pomysłu :/
Offline
Avatar użytkownika

Kadryl

Major

Major

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

PostŚr 09 cze, 2010 18:18

Sądzę że można rozwiązać problem następującym skryptem:
Wywołanie [nazwa pojazdu, jeden z grupy żołnierzy, miejsce alternatywne (el. logiczny)] exec "spadac.sqs"

skrypt "spadac.sqs"
Kod: Zaznacz cały
_pojazd = _this select 0
_zolnierz = _this select 1
_punkt = getpos (_this select 2)

_grupa = units (group _zolnierz)
_i = 0
_m = ["getindriver", "getincargo"]
{_x action [_m select _i, _pojazd]; _i = 1} foreach _grupa

~10
; dajmy im z 10 sekund na wsiadanie

{ if !(_x in (crew _pojazd)) then {_x join grpnull; _x move _punkt}} foreach _grupa
;jezeli nie zmieszcza sie w wozie to pójda w miejsce zdefinowane jako punkt.
Ostatnio edytowano N 13 cze, 2010 15:05 przez Kadryl, łącznie edytowano 1 raz
Offline
Avatar użytkownika

Jethro

Szeregowy

Szeregowy

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

PostCz 10 cze, 2010 13:18

Tylko kwestia jest taka, że gracz i jeszcze jedna konkretna jednostka MUSZĄ znaleźć się w samochodzie. Ogólne założenie misji jest takie, że trzeba dotrzeć na miejsce katastrofy śmigłowca, odbić ocalałego pasażera, udzielić mu pierwszej pomocy i eskortować do bazy.
Niby logiczne jest, że każdy jemu pierwszemu każe wsiąść do samochodu, jednak mam nawyk tworzenia zabezpieczeń "debiloodpornych". Bo trochę głupio, żeby ewakuowana, nieuzbrojona (zazwyczaj) jednostka samodzielnie biegła przez teren kontrolowany przez przeciwnika, a obstawa jechała wygodnie samochodem ;) Niby to osobista sprawa każdego, jak to rozegrać, ale wolałbym, żeby tu nie było ryzyka, że VIP się odłączy od gracza ;)
Myślałem nad czymś takim:
Kod: Zaznacz cały
;podzial.sqs

_punkt = getpos baza
_team = units (group Player)
_stan = count units group Player
_i = 1

#PODZIAL
;odłącza od gracza jednostki, które nie mieszczą się do samochodu
?(_stan < 6):goto "FIN"
   _m = (_team select _i)
   _m join grpNull
   _m move _punkt
   _i = _i + 1
goto "PODZIAL"

#FIN
przelacz = true

exit

Powrót do Operation Flashpoint

Kto przegląda forum

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

cron