Teraz jest Pt 29 mar, 2024 04:36


Problem z warunkami podczas coopa

Dział poświęcony edytorowi ArmA II i Operation Arrowhead, czyli tworzeniu misji.
  • Autor
  • Wiadomość
Offline
Avatar użytkownika

Gorki

Kapral

Kapral

  • Posty: 73
  • Dołączył(a): Pt 10 lip, 2009 22:42

Problem z warunkami podczas coopa

PostPn 26 lis, 2012 15:57

Witam, mam problem ze spełnianiem warunków w misji coop. Załóżmy, że jest misja w której należy zdobyć dwie walizki z dwóch różnych obozów. W pierwszym wariancie dowódca (lub inny gracz) zabiera dwie walizki - wtedy jest wszystko ok. W drugim wariancie walizkę zabierają przykładowo Heniek i Józek - wtedy skrypt nie chce się aktywować, kolejne zadanie w misji nie aktywuje się.
Jak to naprawić?
"Poland" dla obcokrajowców. Dla Nas, Polaków "Polska".

Wklej to do podpisu, jeśli popierasz zaprzestanie używania obcych wyrazów w języku polskim.
Offline

Exe

Major

Major

  • Posty: 762
  • Dołączył(a): Pn 28 cze, 2010 18:35
  • Lokalizacja: Rzeszów

Re: Problem z warunkami podczas coopa

PostPn 26 lis, 2012 16:42

Pokaż, jak skonstruowałeś ten drugi wyzwalacz.
Widocznie bug tak chciał.
Offline
Avatar użytkownika

Gorki

Kapral

Kapral

  • Posty: 73
  • Dołączył(a): Pt 10 lip, 2009 22:42

Re: Problem z warunkami podczas coopa

PostPn 26 lis, 2012 17:47

Warunek wyzwalacza odpowiadający za uaktywnienie się akcji zdobycia walizki:
Kod: Zaznacz cały
(player distance walizka2)<2 AND walizka2n

Jego "przy aktywacji":
Kod: Zaznacz cały
_wal2 = walizka2 addAction ["Odzyskaj dane", "walizka2.sqf"]


Analogicznie dla walizki pierwszej, tylko numerki zmienione.

Tutaj skrypt walizka.sqf:

Kod: Zaznacz cały
walizka2n=false; obj2=true; walizka2 setpos getpos walizka2p;
_walizka2 = _this select 0;
_caller = _this select 1;
_id = _this select 6;
_walizka2 removeAction _id;
hint "Dane odzyskane!";
nul = ["obj2","succeeded"] call TASKMASTER_upd;


I wszystko fajnie, niby zalicza mi w taskmasterze, ale chyba nie aktywuje sie zminna obj2=true w przypadku gdy walizkę podniesie dwóch różnych graczy.
"Poland" dla obcokrajowców. Dla Nas, Polaków "Polska".

Wklej to do podpisu, jeśli popierasz zaprzestanie używania obcych wyrazów w języku polskim.
Offline

Exe

Major

Major

  • Posty: 762
  • Dołączył(a): Pn 28 cze, 2010 18:35
  • Lokalizacja: Rzeszów

Re: Problem z warunkami podczas coopa

PostPn 26 lis, 2012 19:47

Hmm, na skryptach się nie znam za bardzo, ale moim zdaniem można to naprawić na chama: skopiuj plik skryptu, i przy drugim wyzwalaczu odpal tę jego drugą wersję. W kopii pozmieniaj te "this select" na inne numerki, żeby ze sobą nic nie kolidowało.
Widocznie bug tak chciał.
Offline
Avatar użytkownika

Gorki

Kapral

Kapral

  • Posty: 73
  • Dołączył(a): Pt 10 lip, 2009 22:42

Re: Problem z warunkami podczas coopa

PostPn 26 lis, 2012 21:16

Niestety nadal to samo. Jeśli przykładowy Heniek zabierze obie walizki to wszystko jest w porządku, ale jeśli walizki zabiorą Heniek i Józek, to wtedy nie działa.
"Poland" dla obcokrajowców. Dla Nas, Polaków "Polska".

Wklej to do podpisu, jeśli popierasz zaprzestanie używania obcych wyrazów w języku polskim.
Offline
Avatar użytkownika

gremdek

Porucznik

Porucznik

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

Re: Problem z warunkami podczas coopa

PostPn 26 lis, 2012 23:52

Skrypty z addaction wykonywane są lokalnie.
rozwiązania:
a) klient informuje serwer/resztę ludzi - w najprostszym przypadku ustawianie jakiejś flagi.
b) inne

briefingi też mają kontekst lokalny więc każdy może widzieć co innego.
:(
Offline
Avatar użytkownika

Gorki

Kapral

Kapral

  • Posty: 73
  • Dołączył(a): Pt 10 lip, 2009 22:42

Re: Problem z warunkami podczas coopa

PostWt 27 lis, 2012 00:17

O co dokładnie chodzi z tą flagą i jakie zalecasz rozwiązanie?
"Poland" dla obcokrajowców. Dla Nas, Polaków "Polska".

Wklej to do podpisu, jeśli popierasz zaprzestanie używania obcych wyrazów w języku polskim.
Offline
Avatar użytkownika

gremdek

Porucznik

Porucznik

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

Re: Problem z warunkami podczas coopa

PostWt 27 lis, 2012 23:33

addaction wykona się tylko lokalnie więc co jest w jego skrypcie wykona się tylko na komputerze gracza co wcisnął tę akcję.

aby wszyscy mieli to wykonane muszą zostać poinformowani, że ktoś to wcisnął. najczęściej jest jakaś zmienna globalna, wspólna dla wszystkich (ta flaga), jeżeli zmieni stan to zapewne ktoś wcisnął akcję. w ofp była jakaś komenda do propagacji po klientach stanu zmiennej. zdaje się że w armie to poprawili, nie wiem nie wnikałem.

https://community.bistudio.com/wiki/Mul ... _scripting

polecam przeczytać całą stronę, nie tylko ten dział z linka.
:(

Powrót do [ArmA II] Edytor

Kto przegląda forum

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

cron