Teraz jest So 18 kwi, 2026 05:41


Skrypt - Losowanie jednostek z grupy.

Archiwum działów sekcji Operation Flashpoint
  • Autor
  • Wiadomość
Offline

Oscypek

Major

Major

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

PostSo 07 sty, 2006 15:11

(units group k1) - k3
A gdzie tam losuje?

Iii....co to?
Kod: Zaznacz cały
?"alive _x" count units _group <= 0 : Goto "koniec"

Tam na początku wygląda jakby miała to być funkcja foreach?
Offline
Avatar użytkownika

JaFranek

Major

Major

  • Posty: 581
  • Dołączył(a): Wt 16 lis, 2004 14:46
  • Lokalizacja: Tbg

PostSo 07 sty, 2006 15:23

A to powinno działać tak, że jak lista jednostek będzie już wykorzystana to wychodzi się ze skryptu.
Nie pytaj, co OF może zrobić dla ciebie, ale co Ty możesz zrobić dla OF
Offline
Avatar użytkownika

offtime

Pułkownik

Pułkownik

  • Posty: 1089
  • Dołączył(a): So 21 sie, 2004 10:39
  • Lokalizacja: Katowice

PostSo 07 sty, 2006 15:40

Kod: Zaznacz cały
_grupa = this select 0
_gun = pilot


#Loop1

"?!(alive _x):_grupa - _x" forEach _grupa
?count _grupa == 0 :Exit

_nrand = random(count _grupa)
_nrand=_nrand-(_nrand mod 1)
_target = _grupa select _nrand


#Loop2

_gun doMove [(getPos _target select 0)-5,(getPos _target select 1)+200]

?!(alive _target): Goto "Loop1"
~1
Goto "loop2"

nie testowalem, daj znac jak jakis blad bedzie
i napisz dokladnie jaki blad
Offline
Avatar użytkownika

JaFranek

Major

Major

  • Posty: 581
  • Dołączył(a): Wt 16 lis, 2004 14:46
  • Lokalizacja: Tbg

PostSo 07 sty, 2006 16:29

Dałem w wyzwalaczu [k1] exec "...sqs" (k1 nazwa dowódcy grupy) i wyskoczyło mi takie coś.

"_grupa = this select 0|#|: Error select: Typ Obiekt, powionien być Macierz"

Dzięki za trud włożony w robienie tego skryptu, ale ten skrypt, co podałem wcześniej działa poprawnie tylko rozchodzi się o to by nie losował tej jednostki k3.
Nie pytaj, co OF może zrobić dla ciebie, ale co Ty możesz zrobić dla OF
Offline

Oscypek

Major

Major

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

PostSo 07 sty, 2006 18:03

ma być: _grupa=_this select 0

Kod: Zaznacz cały
#Loop1

"?!(alive _x):_grupa - _x" forEach _grupa
?count _grupa == 0 :Exit


A nie przypadkiem
"if(not alive _x) then { _grupa = _grupa-_x }" foreach _grupa
Offline
Avatar użytkownika

JaFranek

Major

Major

  • Posty: 581
  • Dołączył(a): Wt 16 lis, 2004 14:46
  • Lokalizacja: Tbg

PostSo 07 sty, 2006 18:49

[quote="Oscypek"]ma być: _grupa=_this select 0

A to nie jest to samo co
_grupa= k1 :?:
Nie pytaj, co OF może zrobić dla ciebie, ale co Ty możesz zrobić dla OF
Offline
Avatar użytkownika

offtime

Pułkownik

Pułkownik

  • Posty: 1089
  • Dołączył(a): So 21 sie, 2004 10:39
  • Lokalizacja: Katowice

PostSo 07 sty, 2006 21:07

Oscypek napisał(a):ma być: _grupa=_this select 0

tak to fakt

ale to co pisze Franek "_grupa= k1" tez zadziala tylko grupa musi miec nazwe k1
Oscypek napisał(a):
Kod: Zaznacz cały
#Loop1

"?!(alive _x):_grupa - _x" forEach _grupa
?count _grupa == 0 :Exit


A nie przypadkiem
"if(not alive _x) then { _grupa = _grupa-_x }" foreach _grupa

no tez jest blad
powinno byc
"?!(alive _x):_grupa=_grupa - _x" forEach _grupa
kwestia skladni jest chyba nieistotna
"?" - "if"
"(not alive _x)" = "!(alive _x)"
":" = "then"

DODANO:

Kod: Zaznacz cały
_grupa = _this select 0
_hunter = _this select 0


#Loop1

"?!(alive _x):_grupa = _grupa - _x" forEach _grupa
?count _grupa == 0 :Exit

_nrand = random(count _grupa)
_nrand=_nrand-(_nrand mod 1)
_target = _grupa select _nrand


#Loop2

_hunter doMove [(getPos _target select 0)-5,(getPos _target select 1)+200]

?!(alive _target): Goto "Loop1"
~1
Goto "loop2"

odpalane
[nazwa_grupy,nazwa_jednostki_podazajacej] exec "nazwa_skryptu.sqs"

Jerry: Offtime, zasada edycji postów i nie pisania jednego pod drugim wciąż tu obowiązuje ;) Zescalono :)
Offline
Avatar użytkownika

JaFranek

Major

Major

  • Posty: 581
  • Dołączył(a): Wt 16 lis, 2004 14:46
  • Lokalizacja: Tbg

PostSo 07 sty, 2006 22:00

Tak, aby wszystko było już jasne. Jako nazwę grupy mogę podąć nazwę lidera grupy :?:

Nie chce, aby to, co teraz napisze zostało odebrane jako wybrzydzanie i narzekanie, ale ciągle wybierane są wszystkie jednostki. A głównym problemem było to, że chciałem, aby jednostka z grupy o nazwie k3 była pomijana podczas losowania.
Tak, więc temat ciągle otwarty.
Nie pytaj, co OF może zrobić dla ciebie, ale co Ty możesz zrobić dla OF
Poprzednia strona

Powrót do Operation Flashpoint

Kto przegląda forum

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