Teraz jest Pn 18 gru, 2017 14:27


[Poradnik] ArmA 2 - Podstawowe komendy

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

Jon

Generał

Generał

  • Posty: 10696
  • Dołączył(a): Wt 20 lip, 2004 00:43
  • Lokalizacja: Kraków

[Poradnik] ArmA 2 - Podstawowe komendy

PostPn 03 cze, 2013 16:30

NAJWAŻNIEJSZE KOMENDY UŻYWANE DO OPEROWANIA JEDNOSTKAMI W EDTYORZE.

Poniższy spis zawiera odpowiedzi na najpopularniejsze pytania dot. podstawowego operowania jednostkami i obiektami w procesie tworzenia misji.

Znakomitą większość poniższych komend używa się albo w inicjacji jednostki (pole INIT\Inicjacja\Uruchamianie w edytorowym okienku jednostki - wtedy używamy "this"), albo w polu aktywacji wyzwalacza lub waypointa (czasem działa "this", ale lepiej operować nazwami jednostek, np. "banan1" - pewniejsze). Komend owych możemy oczywiście używać kilka naraz, oddzielając kolejne komendy skryptowe średnikami (np Jarek disableAI "MOVE";Jarek SetUnitPos "UP").

This (jako określenie jednostki) można prawie zawsze zamienić nazwą jednostki, np do wspomnianego już użytku w wyzwalaczu czy skrypcie; Nazwę jednostki ustalamy w polu "Nazwa" w edytorowym oknie jednostki (Patrz: Artykuł "Podstawy").


    WYSOKOŚĆ JEDNOSTKI
By ustawić jednostkę na konkretnej wysokości:
Kod: Zaznacz cały
this setpos [(getpos this select 0),(getpos this select 1),(getpos this select 2) + X]
gdzie X to wysokość; jeśli chcesz wtopić jakis przedmiot w ziemię zastępujesz "+" minusem;
Jeśli chcesz użyć jakieś wartości pośredniej to używasz kropki, np. 2.5 da Ci 2 i pół metra wys.

Przykład:
Kod: Zaznacz cały
banan1 setpos [(getpos this select 0),(getpos this select 1),(getpos this select 2) + 4.5]
da nam efekt w postaci jednostki opisanej jako "banan1" na wysokości 4 i pół metra.


    POZYCJE POSTACI
Sprawia, że AI będzie przebywać tylko w jednej określonej przez Ciebie pozycji.

Stojąca:
Kod: Zaznacz cały
This SetUnitPos "UP"

Kucająca:
Kod: Zaznacz cały
This SetUnitPos "MIDDLE"

Leżąca:
Kod: Zaznacz cały
This SetUnitPos "DOWN"

By przywrócić AI (jednostce banan1) możliwość decydowania o tym w jakiej powinno być pozycji wpisz:
Kod: Zaznacz cały
banan1 SetUnitPos "AUTO"


    TELEPORT
Przeniesienie jednostki "banan1" z aktualnej pozycji na miejsce "bananowe_pole":
Kod: Zaznacz cały
banan1 setpos (getpos bananowe_pole)

by przenieść więcej bananów:
Kod: Zaznacz cały
{_x setpos (Getpos bananowe_pole)}foreach [banan1,banan2]


    KOMUNIKATY
By stworzyć Combat Chatter:
Kod: Zaznacz cały
banan1 sidechat "Baza Foxtrot, tu Alfa, brakuje nam alkoholu"

By komunikaty wysyłał lider grupy:
Kod: Zaznacz cały
(leader group banan1) sidechat "Baza Foxtrot, tu Alfa, brakuje nam alkoholu"

banan1 to w tym wypadku nazwa jednostki, nie grupy!


Możliwe kanały komunikacji:
Kod: Zaznacz cały
globalchat
wiadomość widoczna dla wszystkich
Kod: Zaznacz cały
sidechat
komunikat widoczny jedynie dla jednostek tej samej strony
Kod: Zaznacz cały
groupchat
komunikat widoczny jedynie dla jednostek z tej samej grupy

    BEZ ODWROTU
Jednostki nie będą uciekać\poddawać się po wpisaniu w init dowódcy:
Kod: Zaznacz cały
group this allowfleeing 0


    NAZWANIE GRUPY
Potrzebne\widoczne jedynie w procesie tworzenia misji. W Inicjacji ("Uruchamianiu") dowódcy grupy:
Kod: Zaznacz cały
banany = group this


    DOŁĄCZENIE / ODŁĄCZENIE JEDNOSTEK DO GRUPY
By w trakcie gry manipulować przydziałem jednostki...

By przyłączyć jednostki "przyszly_banan1" i "przyszly_banan2" do grupy o zadeklarowanej wcześniej nazwie "banany":
Kod: Zaznacz cały
[przyszly_banan1,przyszly_banan2] Join banany

Jeśli nie deklarowaliśmy nazwy, a mamy nazwanego dowódcę danej grupy możemy zrobić to tak:
Kod: Zaznacz cały
[przyszly_banan1,przyszly_banan2] Join (Group banan3)


Można też użyć polecenia JoinSilent. Polecenie działa tak samo, jak "Join" tylko nie aktywuje okrzyków dowódcy oddziału (Five follow one, itp).
Kod: Zaznacz cały
[przyszly_banan1,przyszly_banan2] JoinSilent banany


Aby odłączyć jednostki od grupy, wpisujemy następujące polecenie:
Kod: Zaznacz cały
[byly_banan1,byly_banan2] Join GrpNull
Jednostki odłączą się od obecnej grupy i utworzą własną dwuosobową drużynę. Jeśli chcemy, by byli rozdzieleni, musimy wpisać to polecenie osobno dla każdego banana.


    WŁASNE IMIĘ KODOWE GRUPY
Jeśli chcemy, by w grze przy komunikatach radiowych zamiast np. "1-1-A" wyświetlało się, dajmy na to, "Banans", wpisujemy dowódcy grupy następujące polecenie:
Kod: Zaznacz cały
this setGroupID ["Banans",""]


    WSADZANIE JEDNOSTEK DO POJAZDÓW
Kody poniżej, uwaga - "driver" używa się niezależnie od tego czy mamy do czynienia z samolotem, spadochronem, samochodem czy motorówką.

Kod: Zaznacz cały
banan1 MoveInDriver helikopter_bananów6
Jednostka "banan1" będzie kierować pojazdem "helikopter_bananów6"

Kod: Zaznacz cały
banan1 MoveInGunner helikopter_bananów6
Jednostka "banan1" będzie strzelcem pojazdu "helikopter_bananów6"

Kod: Zaznacz cały
banan1 MoveInCargo helikopter_bananów6
Jednostka "banan1" będzie pasażerem pojazdu "helikopter_bananów6"

By umieścić jednostkę na konkretnej pozycji strzelca (gdy pojazd posiada kilka):
Kod: Zaznacz cały
banan1 moveInTurret [bmp4, [0, 0]]
w takim wypadku jednostka "banan1" będzie strzelcem pojazdu nazwanego "bmp4". Zajmie pozycje w wieżyczce pojazdu oznaczoną indeksem [0, 0].


    DESANT
Wyrzucenie jednostki z pojazdu:
Kod: Zaznacz cały
banan1 action ["eject", helikopter_bananów6]

Warto też wpisać:
Kod: Zaznacz cały
[banan1] OrderGetIn false
by jednostka nie próbowała wsiąść z powrotem do pojazdu tuż po jej wyrzuceniu (zdarza się).


    NATYCHMIASTOWE UŚMIERCENIE JEDNOSTKI
Jeżeli chcemy by jakaś jednostka zginęła bez udziału w tym graczy, wystarczy że wpiszemy:
Kod: Zaznacz cały
banan1 setdammage X
gdzie X może przyjmować wartości od 0 (całkowicie zdrowy) do 1 (martwy). Można regulować poziom zadanych obrażeń, włącznie z pośrednimi wartościami, wpisywanymi standardowo z kropką, np. 0.2 dla lekkich, niegroźnych ran.


    ZNISZCZENIE OBIEKTU (via ID)
Powiedzmy, że chcesz zniszczyć sekcję mostu.

Ustaw marker (nazwij go np. demolka1) w pobliżu kawałka mostu który ma zostać zniszczony i wpisz w wyzwalaczu albo w init dowolnej jednostki:
Kod: Zaznacz cały
((getmarkerpos "demolka1") nearestObject IDmostu) setdammage 1


    ZMIANA ILOŚCI PALIWA W POJEŹDZIE
By zmienić ilość dostępnego danej jednostce paliwa wpisujemy:
Kod: Zaznacz cały
banan1 SetFuel 0
gdzie X jest liczbą z przedziału od 0 (pusty bak) do 1 (pełny bak), włączając w to liczby pośrednie. Polecenie przydatne w sytuacjach, gdy chcemy natychmiastowo odciąć paliwo danej jednostce (np. śmigłowcowi - katastrofa lotnicza).


    EKSPLOZJA
Poniższe wpisujemy do aktywacji wyzwalacza:
Kod: Zaznacz cały
bum = "Sh_125_SABOT" createVehicle position TuMaBycBum

TuMaBycBum - nazwa elementu logicznego, jednostki, etc (nie markera).


    ZAPALANIE / GASZENIE OGNISK BĄDŹ LATARNI
Służą do tego komendy:
Kod: Zaznacz cały
banan1 inflame true
Zapala ognisko, beczkę, itd.
Kod: Zaznacz cały
banan1 inflame false
Gasi płonący\świecący obiekt.

Działa to także na latarnie. Żeby zgasić latarnię potrzebujemy jej numeru ID na mapie a następnie wstawić w tym miejscu marker i użyć takiego polecenia:
Kod: Zaznacz cały
((getmarkerpos "latarnia") nearestObject nrIDlatarni) inflame false


    ZMIANA POGODY
By zmienić pogodę:
Kod: Zaznacz cały
Y setOvercast X
gdzie X jest liczbą z przedziału od 0 (słońce, bezchmurne niebo) do 1 (pełne zachmurzenie, bardzo prawdopodobny deszcz i mgła), włączając w to liczby pośrednie, podczas gdy Y oznacza czas (określany w sekundach) w jakim nastąpi dana zmiana. Czyli np:
Kod: Zaznacz cały
1800 setOvercast 0.5
spowoduje płynną zmianę zachmurzenia do poziomu 0.5 (czyli połowa suwaka, który ustawiasz w edytorze), w czasie równym 1800 sekund.

Jeśli chcesz być pewien, że będzie padać, warto także użyć komendy:



    ZMIANA ZASIĘGU WIDZENIA
By ustawić zasięg widzenia gracza\y w misji:
Kod: Zaznacz cały
setviewdistance X
gdzie X jest liczbą między 500 a 9999

Kod: Zaznacz cały
setviewdistance 2000
blokuje zasięg widzenia gracza dla danej misji na odległości 2000 metrów.


    ZMIANA CZASU W GRZE
By "przeskoczyć" o parę godzin do przodu lub do tyłu:
Kod: Zaznacz cały
skipTime X

Gdzie X to żądana liczba godzin.

Żeby efekt wyglądał porządnie, należy go używać razem ze ściemnieniem i rozjaśnieniem ekranu, czyli:
Kod: Zaznacz cały
cutText ["","BLACK OUT",3]
~3
skipTime 5
cutText ["","BLACK IN",3]


    PRZYSPIESZENIE / SPOWOLNIENIE UPŁYWU CZASU
By spowolnić upływ czasu (efekt natychmiastowy):
Kod: Zaznacz cały
setacctime X

gdzie X jest wartością (pośrednią) z przedziału od 0 do 4 gdzie 1 to normalny upływ czasu.

UWAGA: użycie wartości 0 zawiesi grę.

Przydatne do wykreowania efektu "slow motion" (w wypadku użycia wartości albo pokazania wędrówki słońca po niebie.


    ZAMYKANIE / OTWIERANIE POJAZDÓW
By zamknąć dany pojazd (Zarówno gracz, jak i AI nie będzie w stanie do niego wsiąść):
Kod: Zaznacz cały
banan1 lock true

Z kolei by z danego pojazdu można było skorzystać:
Kod: Zaznacz cały
pojazd lock false


Polecenia działa lokalnie, co znaczy, że do prostego użytku nadaje się tylko w misjach singleplayer.


    JEŃCY
Polecenie przydaje się, gdy nie chcemy, by wróg atakował jednostkę, ze strony przeciwnej.
Kod: Zaznacz cały
banan SetCaptive true

Polecenie wyłączamy podobnie, z tym, że zamiast true umieszczamy false.

UWAGA: Jednostka "banan", mimo iż nie nękana wrogimi atakami, sama dalej będzie strzelać do każdego napotkanego przeciwnika. Ponadto jednostka z wpisanym tym poleceniem nie jest rozpoznawana przez wyzwalacze ustawione na aktywację przez obecność danej strony.


    WYŁĄCZANIE POSZCZEGÓLNYCH ZACHOWAŃ AI
By odebrać AI możliwość ruchu:
Kod: Zaznacz cały
banan DisableAI "MOVE"

By wyłączyć sekcję sztucznej inteligencji odpowiedzialnej za celowanie i ostrzał wrogich jednostek:
Kod: Zaznacz cały
banan DisableAI "TARGET"

By wyłączyć sekcję sztucznej inteligencji odpowiedzialnej za samodzielne wyszukiwanie celów i obserwację nieznanych jednostek:
Kod: Zaznacz cały
banan DisableAI "AUTOTARGET"

By uniemożliwić jednostce zmianę obecnej animacji:
Kod: Zaznacz cały
banan DisableAI "ANIM"

Każdą sekcję AI można ponownie włączyć, używając analogicznie polecenia EnableAI w miejsce DisableAI.


    ZMIANA ZACHOWANIA
By zmienić zachowanie AI na

"Stealth":
Kod: Zaznacz cały
banan setBehaviour "STEALTH"

Bojowe:
Kod: Zaznacz cały
banan setBehaviour "COMBAT"

Uważne:
Kod: Zaznacz cały
banan setBehaviour "AWARE"

Spokojne:
Kod: Zaznacz cały
banan setBehaviour "SAFE"

Beztroskie:
Kod: Zaznacz cały
banan setBehaviour "CARELESS"


    ZMIANA UZBROJENIA JEDNOSTKI
Broń i magazynki to w świecie OFP\ARMA osobne klasy. Każdą z tych rzeczy odejmujesz i dodajesz osobno (pomijając kod usuwający całość wyposażenia)

Kod: Zaznacz cały
removeallweapons this

kompletnie rozbroi (usunie całe uzbrojenie) jednostkę, której to wpisałeś

Kod: Zaznacz cały
this addweapon "M16"

tym damy żołnierzowi broń określoną klasą "M16"
Kod: Zaznacz cały
this addmagazine "M16_mag"

tym damy żołnierzowi magazynek określany klasą "M16_mag"

Kod: Zaznacz cały
this addweaponcargo ["M16",2]

doda do pojazdu lub skrzyni 2 m16
Kod: Zaznacz cały
this addmagazinecargo ["M16_mag",10]

doda do pojazdu lub skrzyni 10 magazynków do m16

Kod: Zaznacz cały
clearweaponcargo this
- usuwa z pojazdu\skrzyni całą dostępną broń
Kod: Zaznacz cały
clearmagazinecargo this
- usuwa z pojazdu\skrzyni całą dostępną amunicję i pirotechnikę

UWAGA - Po odebraniu całej broni żołnierzowi należy wpisać:
Kod: Zaznacz cały
this addweapon "PUT";this addweapon "THROW";

by mógł on podnosić\używać granatów, i innych rzucanych czy 'kładzionych' rzeczy.


Większość nazw klas broni i magazynków z ArmA 2 i dodatków znajdziesz u nas na stronie oraz forum. Gdy w grę wchodzą mody - należy sprawdzić pliki tekstowe dołączone do modu bądź addonu. Jeśli jednak z jakiegoś powodu chcesz dowiedzieć się jak nazywa się klasa broni i amunicji danej jednostki*:

Wyświetla nazwę klasy używanej broni (podczas wystrzału):
Kod: Zaznacz cały
this addeventhandler ["fired",{hint format ["Name of shot is: %1", (_this select 2)]}]


Wyświetla nazwę klas posiadanych przez "banan1" magazynków:
Kod: Zaznacz cały
hint format["%1",magazines banan1]


*Bo np. masz addon bez spisu klas - pozdrawiamy leniwych addonmakerów ;)


    NIEWIDZIALNY MARKER
Czasem chcemy, by dany marker nie był widoczny dla graczy (przydatne szczególnie przy korzystaniu ze skryptu UPS) - w tym celu należy użyć poniższej komendy.

Kod: Zaznacz cały
"nazwa_markera" setMarkerAlpha 0

Przykład:
Kod: Zaznacz cały
"oboz_wroga" setMarkerAlpha 0

Jeśli chcemy by markery nie wyświetlały się już w briefingu (np. ze względu na użycie wspomnianego skryptu), kod ów należy wpisać do naszego init.sqf - należy przy tym pamiętać o średnikach oddzielających komendy!


    ODPALANIE SKRYPTU SQS\SQF
Odpowiednio:
Kod: Zaznacz cały
nul=[this] exec "nazwa_skryptu.sqs"

dla pliku .sqs, bądź
Kod: Zaznacz cały
nul=[this] execVM "nazwa_skryptu.sqf"

dla pliku SQF.
http://www.pajacyk.pl

“Politics is supposed to be the second oldest profession. I have come to realize that it bears a very close resemblance to the first.”
~ Ronald Reagan
Offline
Avatar użytkownika

Jon

Generał

Generał

  • Posty: 10696
  • Dołączył(a): Wt 20 lip, 2004 00:43
  • Lokalizacja: Kraków

Re: [Poradnik] ArmA 2 - Podstawowe komendy

PostPn 03 cze, 2013 16:32

W niewyjaśnionych okolicznościach i z niewyjaśnionych przyczyn zaginął - no to wklejam ponownie.
http://www.pajacyk.pl

“Politics is supposed to be the second oldest profession. I have come to realize that it bears a very close resemblance to the first.”
~ Ronald Reagan

Powrót do [ArmA II] Edytor

Kto przegląda forum

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