Teraz jest So 30 sie, 2025 07:25


Respawn żołnierzy, czyli mięso armatnie

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

Yarek

Szeregowy

Szeregowy

  • Posty: 33
  • Dołączył(a): So 25 lut, 2006 04:07

Respawn żołnierzy, czyli mięso armatnie

PostN 01 paź, 2006 19:13

Witam
Wymyśliłem sobie taką małą misję w której gracza atakuje ogromna ilość przeciwników. Najprościej było by to zrobić ustawiając w edytorze kilka (-naście -dziesiąt !!) grup przeciwników i posyłać ich do boju.
A ja wymyśłiłem taki skrypt:

Kod: Zaznacz cały
_Group     = _this select 0
_createPos = _this select 1
_movePos   = _this select 2

_listunits = units _Group

_A = 0
_B = count _listunits
#NEXT

_soldier = typeOf (_listunits select _A) createUnit [_createPos, _Group]
_soldier Join GrpNull
_soldier Move _movePos

_A=_A+1
~1
?_B >_A:goto "NEXT"


Działać ma on tak: podajemu jako parametry nazwę grupy "wzorcowej", miejsce respawnu i miejsce gdzie mają żołnierze biec.
W miejscu respawnu powinni pojawiać się żołnierze będący tego samego typu co żołnierze w podanej grupie po czym ruszają na podaną pozycje.
Wszytko ładnie, pięknie tylko tworzy mi się 3 żołnierzy którzy zaraz biegną do grupy wzorcowej (trzech bo pewno tyle wolnych miejsc w teamie)
. Wygląda to tak jakby nie działało odłączanie od grupy???

Czy ma ktoś pomysł jak rozwiązać ten problem?? A może całkiem inny skrypt??

------------------------------------------------------------------
Ok znalazłem rozwiązanie. Może się komuś przyda:

Kod: Zaznacz cały
;CloneGroup.sqs
; Uruchomienie:
; [grupa, pozcyja1, pozycja2] exec "CloneGroup.sqs"
; gdzie:
;    grupa - nazwa grupy którą chcemy "klonować"
;   pozcyja1 - pozycja gdzie jednostki sie respawnuja
;   pozycja2 - pozycja dokad maja sie przemiescic

_Group     = _this select 0
_createPos = _this select 1
_movePos   = _this select 2

_listunits = units _Group

_A = 0
_B = count _listunits
#NEXT

typeOf (_listunits select _A) createUnit [_createPos, _Group]

_listunits2 = units _Group
_soldier = ( _listunits2 select( (count _listunits2) -1)  )
[_soldier] Join GrpNull
_soldier Move _movePos

_A=_A+1
?_B >_A:goto "NEXT"

Offline

Zielarz

Chorąży

Chorąży

  • Posty: 106
  • Dołączył(a): Cz 08 cze, 2006 10:42
  • Lokalizacja: Bydgoszcz

PostWt 26 gru, 2006 12:48

fajny pomysł szczególnie dla posiadaczy gorszych kompów...

Tylko jest mały problem nie działa mi... Pewnie coś źle zrobiłem :cry:

Pozycje to mają być elementy logiczne?
W kodzie w notatniku trzeba jakieś nazwy zmieniać? Które?

ten skrypt jest na SP?? Bo ja robie na SP
Offline

PoP

Chorąży

Chorąży

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

PostWt 26 gru, 2006 15:53

Bawilem sie tym kiedys, i zauwazylem ze ja sie tworzy wielu wojakow naraz to im sie cos zwiesza, i stoja jak cioly... zrob sekunde albo pol pauzy miedzy kolejnymi...

Wogole to szkoda ze ofp wywalilem bo mialem misje z losowym respawnem roznie uzbrojonych wojakow, calych oddzialow z losowymi rozkazami ktore walczyly o mala wysepke na wschod od everonu :D
Offline
Avatar użytkownika

kastleF83

Kapral

Kapral

  • Posty: 85
  • Dołączył(a): So 23 wrz, 2006 21:31
  • Lokalizacja: black mesa research facility

PostWt 26 gru, 2006 16:38

PoP napisał(a):Bawilem sie tym kiedys, i zauwazylem ze ja sie tworzy wielu wojakow naraz to im sie cos zwiesza, i stoja jak cioly... zrob sekunde albo pol pauzy miedzy kolejnymi...

Wogole to szkoda ze ofp wywalilem bo mialem misje z losowym respawnem roznie uzbrojonych wojakow, calych oddzialow z losowymi rozkazami ktore walczyly o mala wysepke na wschod od everonu :D
Może podpowiesz skąd pochytać tą misje, albo jak to zrobić?
"Ten kto staje się potworem, zrzuca z siebie ciężar bycia człowiekiem..."

This is pure hell on earth.
Offline

PoP

Chorąży

Chorąży

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

PostWt 26 gru, 2006 19:52

Misji nie pozna pochytac, gdyz swoich tworow nie publikowalem :P

A zrobilem to w ten sposob ze po spawnowaniu wojaka losowalem liczbe z przedzialu i w zalezonosci jaka wypadla odsyalalem do fragmentu skryptu uzbrajajacego spawnowanego w okreslony ekwipunek.
Offline

Zielarz

Chorąży

Chorąży

  • Posty: 106
  • Dołączył(a): Cz 08 cze, 2006 10:42
  • Lokalizacja: Bydgoszcz

PostŚr 17 sty, 2007 14:48

To nadal nikt nie wytłumaczy mi jak uruchowić tego skrypta???? :cry:

Jest skrypt respawnu w modzie BOH, ale jest dość nie stabilny i często zawodzi.
Offline
Avatar użytkownika

Matte

Chorąży

Chorąży

  • Posty: 246
  • Dołączył(a): Pn 28 lis, 2005 19:09

PostŚr 17 sty, 2007 14:59

[grupa, pozcyja1, pozycja2] exec "CloneGroup.sqs"
Grupa- Nazwa dowódcy grupy którą chcesz klonować
Pozycja1 - Element logiczny położony w bazie lub tam gdzie grupa ma sie zresować
Pozycja2 - dokąd grupa ma pobiec
np.
[off1, base1, battlefield] exec "CloneGroup.sqs"
zapomniał bym wpisz to w jakimś wyzwalaczu...
Obrazek
Offline

Zielarz

Chorąży

Chorąży

  • Posty: 106
  • Dołączył(a): Cz 08 cze, 2006 10:42
  • Lokalizacja: Bydgoszcz

PostŚr 17 sty, 2007 15:04

Wielkie dzięki wreszcie jakaś inteligentna odpowiedź na temat!!! Mam nadzieję że bedzie działać...
Offline

Yarek

Szeregowy

Szeregowy

  • Posty: 33
  • Dołączył(a): So 25 lut, 2006 04:07

PostCz 18 sty, 2007 12:16

Jeśli dobrze pamiętam to grupa którą klonujemy musi być "niepełna" czyli musi byc przynajmniej jedno wolne miejsce w tej grupie ponieważ po sklonowaniu żołnierza jest on automatycznie dodawny do tej grupy i dopiero później odłączany.

A opis jak odpalić masz przecieżnapisany na początku skryptu :grin:
Offline

Zielarz

Chorąży

Chorąży

  • Posty: 106
  • Dołączył(a): Cz 08 cze, 2006 10:42
  • Lokalizacja: Bydgoszcz

PostŚr 24 sty, 2007 09:50

No niby jest opis, ale nic mi to nie dało... Nadal wywala... Tera zrobiłem znowu inaczej i nadal nie działa. Wyskakuje jakiś napis na górze ekranu (nie pamiętam jaki), żołnierze automatycznie się klonują na początku misji i jak pierwsza drużyna zginie to druga stoi w miejscu...
Offline

Yarek

Szeregowy

Szeregowy

  • Posty: 33
  • Dołączył(a): So 25 lut, 2006 04:07

PostŚr 24 sty, 2007 17:44

Hmm ale klonujesz żywą dużynę??
Umieść gdzieś drużynę którą chcesz sklonować na skraju planszy (żeby nie przeszkadzali i nie gineli)
Offline

Zielarz

Chorąży

Chorąży

  • Posty: 106
  • Dołączył(a): Cz 08 cze, 2006 10:42
  • Lokalizacja: Bydgoszcz

PostCz 25 sty, 2007 10:55

Ok tak zrobię ale oni stoją w miejscu, bo wyskakuje u góry ekranu komunikat coś o "move"!!
Offline
Avatar użytkownika

Sejtan

Major

Major

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

PostCz 25 sty, 2007 13:26

Zielarz napisał(a):Ok tak zrobię ale oni stoją w miejscu, bo wyskakuje u góry ekranu komunikat coś o "move"!!


Zmień w skrypcie Move na doMove.
Może pomoże.
Offline

Zielarz

Chorąży

Chorąży

  • Posty: 106
  • Dołączył(a): Cz 08 cze, 2006 10:42
  • Lokalizacja: Bydgoszcz

PostCz 25 sty, 2007 13:30

ok spróbuje, na chłopski rozum to powinno pomóc....


ZMIENIONY (27.01.07)

doMove nie działa
Ostatnio edytowano So 27 sty, 2007 15:13 przez Zielarz, łącznie edytowano 1 raz
Offline
Avatar użytkownika

reyhard

Pułkownik

Pułkownik

  • Posty: 1455
  • Dołączył(a): So 12 mar, 2005 09:56
  • Lokalizacja: wielkiego brata

PostCz 25 sty, 2007 17:06

Na moje oko to jest błąd z podaniem parametrów do skryptu wynikający z mylnej interpretacji wskazówki Matte'ego
[off1, base1, battlefield] exec "CloneGroup.sqs"

Powinno być getpos battlefield w przypadku gdy battlefield jest obiektem lub getmarkerpos "battlefield" gdy punktem jest marker.

Czyli już z uwzględnieniem tego co wcześniej napisałem, aktywacja powinna wyglądać tak:
[off1, base1,getpos battlefield] exec "CloneGroup.sqs"
Po prostu przyjmij do wiadomości, że nadciąga rewolucja proletariacka, lada dzień Chavez z Castro i Bin Ladenem nadjadą na białym traktorze i uwolnią ciemiężony lud polski spod władzy międzynarodowego kapitału.
Następna 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

cron