Dołączanie jednostki (odległość) i wybór miejsca respawn

Moderator: Inkwizytor

ODPOWIEDZ
akmus101
Posty: 13
Rejestracja: 18 czerwca 2009, 21:41
ID Steam:
ID gracza: 0

Dołączanie jednostki (odległość) i wybór miejsca respawn

Post autor: akmus101 » 18 czerwca 2009, 23:06

Witam,
Jest to mój pierwszy post więc pozdrawiam wszystkich serdecznie.
Od razu zaznaczam że jestem początkującym edytującym.
Tworzę misję multiplayer, w stylu "helikopter w ogniu" z misji standardowych. Oto moje problemy

1) W misji są dwie strony które walczą przeciwko sobie (wschód/zachód), z "ruchu oporu" chce zrobić najemników.
Chciałbym aby jednostki ruchu oporu dołączały się i odłączały od gracza tak jak poszukiwani piloci w misji "helikopter w ogniu". Gdy gracz podchodzi odpowiednio blisko "najemnika" chciałbym aby się on do niego dołączał i walczył po jego stronie (niezależnie czy gracz to wschód czy zachód). A gdy jednostka zostałaby odpowiednio daleko to znów była by niezależna (i neutralna) i mogłaby się dołączyć do innego kto ją "zgarnie". np. podchodzę na odległość 1 metra do najemnika on się do mnie przyłącza a gdy rozdzielimy się na odległość 100 m to staje się „wolny”
Chciałbym takich jednostek ustawić wiele w różnych miejscach mapy (z rozrzutem żeby nie wiadomo było gdzie są).

Próbowałem bawić się ze skryptami rozpakowując misję „helikopter w ogniu” jednak nie mogę sobie poradzić z mnogością skryptów. Prosiłbym żeby ktoś wytłumaczył mi to ŁOPATOLOGICZNIE krok po kroku jak to zrobic :)
Domyślam się że trzeba będzie napisać skrypty i jak je „podpiąć” do tych konkretnych jednostek (zaznaczam że ma ich być sporo i mają być od siebie niezależne,dlatego prosiłbym o wyjaśnienie z uwzględnieniem jak mam to wykonywać z każdą następną jednostką.

2) Czy dało by się zrobić aby takim najemnikiem były też wybrane jednostki wschodu i zachodu?
Żeby np jednostka będąca amerykańskim oficerem zaczynała grę jako członek ruchu oporu,?
(używam modów VILASA i chciałbym aby np tymi najemnikami byli zarówno partyzanci jak i wybrane jednostki NRD, LWP czy inne.) po prostu żeby konkretna jednostka mimo że wygląda jak amerykanin była w rzeczywistości ruchem oporu

3)Chciałbym aby gracze mogli wybierać gdzie po śmierci ma nastąpić ich respawn (przewiduje kilka miejsc) – śmierć, kilka sekund do respawnu i wybieramy miejsce na odrodzenie. Wiem jak zrobić tradycyjny respawn ale nie potrafię zrobić tego z wybieraniem.

4)Chciałbym aby żołnierz odradzał się z bronią w którą wyposażyłem go na początku misji a nie ze standardową dla danej klasy.
np. aby żołnierz wschodu odradzał się wyposażony w pistolet M9 a nie z AK-74 i magazynkami.

Myślę że wszystko wyjaśniłem najdokładniej jak się dało. Bardzo długo szukałem na forum odpowiedzi na moje pytania jednak nie udało mi się. Mam nadzieję że ktoś wykaże ochotę aby rozwikłać moje problemy. Naprawdę długo nad tym siedziałem, i nie przyniosło to zbyt dużych rezultatów. Prosiłbym o wyjaśnienie z uwzględnieniem tego że jestem początkujący i dopiero się uczę. Mam nadzieję że nie przegiąłem z ilością pytań, odpowiedzi mogą się przydać komuś oprócz mnie w przyszłości.
Z góry dziękuję za pomoc i pozdrawiam wszystkich ArmA-maniaków :)

Awatar użytkownika
aszek
Posty: 133
Rejestracja: 11 lipca 2008, 06:17
ID Steam:
Numer GG: 8568774
ID gracza: 0

Re: Dołączanie jednostki (odległość) i wybór miejsca respawn

Post autor: aszek » 19 czerwca 2009, 06:46

Poruszyłeś trochę za wiele problemów jak na jeden post, na dodatek to co chcesz zrobić jest trudniejsze niż sobie wyobrażasz i obawiam się że bez małej praktyki w edycji misji i pisania jakiś podstawowych skryptów nie dasz sobie rady.

ad1.

W Arma masz 4 strony konfliku. EAST dla WEST są zawsze wrogami. Strony CIV i GUER mogą być neutralni, przyjaźni lub wrogami dla EAST i WEST. Można zmienić stronę konfliktu danej jednostce przez danie jej dowódcy 0 prawdopodobieństwa pojawienia się, ale taka jednostka zawsze już będzie daną stroną.

Nie da się natomiast danej jednostce w locie zmieniać strony, można co najwyżej w czasie misji zmienić globalne nastawienie całej strony do innej (obustronna relacja), ale bezpieczne jest to tylko dla GUER:

Kod: Zaznacz cały

GUER setFriend [WEST, x];
WEST setFriend [GUER, x]; 
x = 0-1, dla x:{0-0.5} = wróg, dla x:{0.6-1} = przyjaciel

zmiana nastawienia strony dla CIV jest możliwa, ale tylko jednostronnie:

Kod: Zaznacz cały

CIV setFriend [WEST, 0]; (zachód jest wrogiem cywilów)
ale:

Kod: Zaznacz cały

WEST setFriend [CIV, 0]; (cywile są wrogiem zachodu)
jest już niebezpieczne, bo west atakuje całą infrastrukturę na mapie.

Natomiast możesz sobie ustawić, aby GUER nie sprzyjali nikomu, na mapie postawić jednostkę GUER i dać wywalacz typu logic z podpiętym skryptem:

warunek: true
aktywacja:

Kod: Zaznacz cały

[najemik_01, tigger_01] exec "join.sqs"
Skrypt będzie automatycznie przyłaczał/odlaczał najemnika do najbliższej jednostki WEST lub EAST i pozostawał w jej grupie do czasu śmierci: swojej lub dowódcy, lub kiedy dowódca oddali się na więcej niż 100m. Tyle, że to ostatnie jest mało prawdpodobne, bo dowódca musiałby rozkazać czekać najemikowi a sam sobie gdzieś pujść.


'join.sqs'

Kod: Zaznacz cały

_najemnik = _this select 0;
_sensor = _this select 1;


#start
[_najemnik] join GrpNull;


#szukajponownie
? (not alive _najemnik) : goto "end";
~1
_allUnits = list _sensor;
_index = 0;


#szukaj
_unit = _allUnits select _index;
_index = _index + 1;
? (side _unit == civilian) : goto "szukaj";
? (side _unit == guer) : goto "szukaj";
? (_najemnik distance _unit < 1.1) : goto "dolacz";
? (_index > count _allUnits) : goto "szukajponownie";
goto "szukaj";



#dolacz
[_najemnik] join _unit;
goto "odlacz";



#odlacz
~5
? (not alive _najemnik) : goto "end";
? (not alive _unit) : goto "start";
? (_najemnik distance (leader _najemnik) > 100) : goto "start";


#end
exit;
ad.2. Nie, ale WEST lub EAST mogą być najemnikami tyle, że zawsze jednej i tej samej strony.
ad.3. Można, ale tylko wedle rozmieszczonych markerów na mapie.
ad.3. Można, przez event "killed" + skrypt z addWeapon i addMagazine, np:

Kod: Zaznacz cały

_najemnik addEventHandler ["Killed", {[_this] exec "killed.sqs"}];
'killed.sqs'

Kod: Zaznacz cały

_unit = _this select 0;
? (side _unit == guer) : goto "rearmGuer";
? (side _unit == west) : goto "rearmWest";
goto "end";

#rearmGuer
_unit addWeapon "G36C";
_unit addMagazine "30Rnd_556x45_G36";

#rearmWest
_unit addWeapon "M16A2";
_unit addMagazine "30Rnd_556x45_Stanag";

#end
exit;
Liste dostępnych zabawek masz tu: http://community.bistudio.com/wiki/ArmA:_Weapons
A po klasy zabawek z addonu musisz zajrzeć do jego dokumentacji.
"True glory consists in doing what deserves to be written, in writing what deserves to be read." - Pliny The Elder

akmus101
Posty: 13
Rejestracja: 18 czerwca 2009, 21:41
ID Steam:
ID gracza: 0

Re: Dołączanie jednostki (odległość) i wybór miejsca respawn

Post autor: akmus101 » 31 lipca 2009, 13:58

witam :)
długo mnie tu nie było, niestety miałem ostatnio sporo zawirowań i nie miałem czasu na zabawę z arma.
Właśnie z powrotem wracam do gry. Próbowałem zastosować podane skrypty niestety się nie udało. Chciałbym na początku skupić się na podmianie broni po śmierci żołnierza.

jeżeli chodzi o tą frazę: "_najemnik addEventHandler ["Killed", {[_this] exec "killed.sqs"}];"
wpisuję ją w inicjacji jednostki czy w innym miejscu?
Gdy próbuję wpisać w inicjacji bądź w wyzwalaczu _najemnik ...etc nie udaje się to i muszę wpisywać frazę najemnik... zamiast _najemnik...
Oczywiście jak rozumiem "najemnik" tyczy się jednostki którą nazywam w ten sposób. Jeżeli mam to wpisać w innym miejscu to czy muszę jakoś konkretnie to nazywać np wyzwalacz pod nazwą "killed"?

Trochę już w edytorze siedziałem więc może nie jestem jakoś skrajnie początkujący.
plik "killed.sqs" stworzyłem dokładnie tak jak podałeś, także myślę że robię coś źle z frazą _najemnik...

Pozdrawiam :)

Awatar użytkownika
aszek
Posty: 133
Rejestracja: 11 lipca 2008, 06:17
ID Steam:
Numer GG: 8568774
ID gracza: 0

Re: Dołączanie jednostki (odległość) i wybór miejsca respawn

Post autor: aszek » 31 lipca 2009, 19:34

Od paru miechów wogóle już w Arma nie gram, więc Ci niestety nie napiszę działającego i przetestowanego skrypu. Próbowałem Cię jedynie nakierwać na pewne aspekty, ale widzę, że musisz sobie najpierw trochę posiedzieć i poczytać. Na forum już wszystko jest, są gotowe kawałki tego co potrzebujesz, wiec wysil swój intelekt i zacznij wreszczie czytać.
"True glory consists in doing what deserves to be written, in writing what deserves to be read." - Pliny The Elder

elgyd
Posty: 111
Rejestracja: 11 sierpnia 2011, 18:27
ID Steam:

Re: Dołączanie jednostki (odległość) i wybór miejsca respawn

Post autor: elgyd » 11 listopada 2012, 17:11

CIV setFriend [WEST, 0]; (zachód jest wrogiem cywilów)

WEST setFriend [CIV, 0]; (cywile są wrogiem zachodu)


Wpisałem i to i to ale w armie 2 oa i cywile nie za bardzo strzelają do zachodu. Strzelą raz a potem normalnie chodzą i nic nie robią. Używam upsmona.
Co robię nie tak?

ODPOWIEDZ

Wróć do „Edytor - tworzenie misji, skrypty oraz programowanie”