ArmA 2 - Podstawowe komendy

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:
 
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:
 
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:
 
This SetUnitPos "UP"

Kucająca:
 
This SetUnitPos "MIDDLE"

Leżąca:
 
This SetUnitPos "DOWN"

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


    TELEPORT
Przeniesienie jednostki "banan1" z aktualnej pozycji na miejsce "bananowe_pole":
 
banan1 setpos (getpos bananowe_pole)

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


    KOMUNIKATY
By stworzyć Combat Chatter:
 
banan1 sidechat "Baza Foxtrot, tu Alfa, brakuje nam alkoholu"

By komunikaty wysyłał lider grupy:
 
(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:
 
globalchat
wiadomość widoczna dla wszystkich
 
sidechat
komunikat widoczny jedynie dla jednostek tej samej strony
 
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:
 
group this allowfleeing 0


    NAZWANIE GRUPY
Potrzebne\widoczne jedynie w procesie tworzenia misji. W Inicjacji ("Uruchamianiu") dowódcy grupy:
 
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":
 
[przyszly_banan1,przyszly_banan2] Join banany

Jeśli nie deklarowaliśmy nazwy, a mamy nazwanego dowódcę danej grupy możemy zrobić to tak:
 
[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).
 
[przyszly_banan1,przyszly_banan2] JoinSilent banany


Aby odłączyć jednostki od grupy, wpisujemy następujące polecenie:
 
[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:
 
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ą.

 
banan1 MoveInDriver helikopter_bananów6
Jednostka "banan1" będzie kierować pojazdem "helikopter_bananów6"

 
banan1 MoveInGunner helikopter_bananów6
Jednostka "banan1" będzie strzelcem pojazdu "helikopter_bananów6"

 
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):
 
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:
 
banan1 action ["eject", helikopter_bananów6]

Warto też wpisać:
[banan1] OrderGetIn false[/code]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:
 
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:
 
((getmarkerpos "demolka1") nearestObject IDmostu) setdammage 1


    ZMIANA ILOŚCI PALIWA W POJEŹDZIE
By zmienić ilość dostępnego danej jednostce paliwa wpisujemy:
 
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:
 
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:
 
banan1 inflame true
Zapala ognisko, beczkę, itd.
 
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:
 
((getmarkerpos "latarnia") nearestObject nrIDlatarni) inflame false


    ZMIANA POGODY
By zmienić pogodę:
 
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:
 
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:
 
setviewdistance X
gdzie X jest liczbą między 500 a 9999

 
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:
 
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:
 
cutText ["","BLACK OUT",3]
~3
skipTime 5
cutText ["","BLACK IN",3]


    PRZYSPIESZENIE / SPOWOLNIENIE UPŁYWU CZASU
By spowolnić upływ czasu (efekt natychmiastowy):
 
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ąść):
 
banan1 lock true

Z kolei by z danego pojazdu można było skorzystać:
 
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.
 
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:
 
banan DisableAI "MOVE"

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

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

By uniemożliwić jednostce zmianę obecnej animacji:
 
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":
 
banan setBehaviour "STEALTH"

Bojowe:
 
banan setBehaviour "COMBAT"

Uważne:
 
banan setBehaviour "AWARE"

Spokojne:
 
banan setBehaviour "SAFE"

Beztroskie:
 
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)

 
removeallweapons this

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

 
this addweapon "M16"

tym damy żołnierzowi broń określoną klasą "M16"
 
this addmagazine "M16_mag"

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

 
this addweaponcargo ["M16",2]

doda do pojazdu lub skrzyni 2 m16
 
this addmagazinecargo ["M16_mag",10]

doda do pojazdu lub skrzyni 10 magazynków do m16

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

UWAGA - Po odebraniu całej broni żołnierzowi należy wpisać:
 
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):
 
this addeventhandler ["fired",{hint format ["Name of shot is: %1", (_this select 2)]}]


Wyświetla nazwę klas posiadanych przez "banan1" magazynków:
 
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:
"nazwa_markera" setMarkerAlpha 0

Przykład:
Kod:
"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:
 
nul=[this] exec "nazwa_skryptu.sqs"

dla pliku .sqs, bądź
 
nul=[this] execVM "nazwa_skryptu.sqf"

dla pliku SQF.