Nastupovanie do vozidiel

Z Armed Assault nápověda

Přejít na: navigace, hledání

Obsah

Úvod

V tomto krátkom, ale určite zaujímavom tutoriále si ukážeme ako prikazovať a zároveň kontrolovať nastupovanie AI jednotiek do vozidiel a helikoptér.
Tieto úkony sa dajú samozrejme realizovať v hre poklepaním myšítka na dané vozidlo, ale to iba v prípade že je hráč veliteľom danej skupiny AI jednotiek.
Ak je ale iba členom nejakej skupiny, alebo potrebujete jednoducho v cutscéne zabezpečiť nastúpenie jednotiek do vozidiel, nezaobídete sa bez postupu ktorý si popíšeme ďalej.

Určenie pozícií vo vozidle a následný nástup

Na určenie pozícií vo vozidle do ktorého majú jednotky nastúpiť, použijeme niekoľko špecifických príkazov:
assignAsDriver, assignAsCommander, assignAsGunner, assignAsCargo

Pomocou týchto príkazov najskúr určíme konkrétnej jednotke na ktoré miesto má vo vozidle nastúpiť.
Nie každé vozidlo má ale napríklad určenú pozíciu pre veliteľa alebo strelca. Ak ste si neni istý danou pozíciou vo vybranom vozidle, jednoducho mrknite do tohto zoznamu, kde si nájdete druhy a obsaditeľné množstvá jednotlivých pozíci v jednotlivých vozidlách za všetky strany. Tento zoznam obsahuje iba oficiálne vozidlá z originálnej hry, takže ak máte neoficiálny addon, je lepšie mrknúť do jeho ReadMe súboru, kde by to pri kvalitných addonoch malo byť samozrejme uvedené.

My si teraz ukážeme príklad nastupovania skupiny AI jednotiek do pristaveného prázdneho Strykera. Niekde na skúšobnej mape si teda vytvorte prázdny Stryker s nastavením:

Nástup do Strykera
Zvětšit
Nástup do Strykera
  • Strana: Prázdný
  • Třída: Obrněnci
  • Jednotka: Stryker ICV (M2)
  • Název: stk

Teraz neďaleko vytvorte niekoľko vojakov (nie hotovú skupinu) s takýmto nastavením:

  • Strana: BLUFOR
  • Třída: Lidé
  • Jednotka: Posádka
  • Název: w1 (vytvorte ešte druhú jednotku Posádka a označte ju w2)

Týto dvaja nám budú predstavovať posádku Strykera, preto boli vybraný ako Jednotka: Posádka. Zbytok jednotiek AI skupiny nastavíme ako obyčajných vojakov:

  • Strana: BLUFOR
  • Třída: Lidé
  • Jednotka: Voják
  • Název: w3 (a potom ešte vytvorte vojakov s označením w4, w5 a w6)

Skupinu AI jednotiek aj so Strykerom máme vytvorenú, môžeme si vytvoriť vlastný skriptík pre nástup s tradičným názvom "nastup.sqs":

w1 assignAsDriver stk
w2 assignAsGunner stk
w3 assignAsCargo stk
w4 assignAsCargo stk
w5 assignAsCargo stk
w6 assignAsCargo stk

[w1, w2, w3, w4, w5, w6] orderGetIn TRUE

Poznámka:
Jednotlivými príkazmi sme priradili každej jednotke pozíciu vo vozidle a až potom sme použili príkaz orderGetIn, ktorým bol vydaný samotný príkaz na nástup do vozidla.

A to je všetko. Ak si odskúšate spustiť tento skript pomocou jednoduchého zadania [] exec "nastup.sqs" do inicializačného políčka ľubovoľnej jednotky, uvidíte iba všetky AI jednotky pribehnúť ku Strykerovi a naskákať do vnútra.

Zjednodušený nástup do prepravného priestoru a kontrola nastúpenia jednotiek do vozidla

Druhá možnosť ktorá sa vám môže vyskytnúť pri editácii je taká, že čakáte na evakuačnú helikoptéru. Keď priletí a sadne na zem, začnete so svojou jednotkou nastupovať, ale ako zabezpečiť kontrolu toho, že všetky jednotky vašej skupiny sú už v prepravnom priestore helikoptéry a tá môže odletieť.
Tu je riešenie ...

Nástup do UH-60
Zvětšit
Nástup do UH-60

Vytvorte si na mape niekoľko jednotiek spolu s hráčom (nie hotovú skupinu):

  • Strana: BLUFOR
  • Třída: Lidé
  • Jednotka: Voják
  • Název: aP (a potom ešte vytvorte vojakov s označením w1,w2, w3, w4)

Teraz vytvorte helikoptéru v dostatočnej vzdialenosti s týmto nastavením:

  • Strana: BLUFOR
  • Třída: Letectvo
  • Jednotka: UH-60
  • Speciální: Ve vzduchu
  • Název: helina

A znova si skopírujte nasledovné riadky a vytvorte skript "nastup.sqs". Tento potom spustite cez inicializačné políčko ľubovoľnej jednotky a sledujte čo sa stane.

_list = [w1, w2, w3, w4, aP]

{_x assignAsCargo helina; [_x] orderGetIn TRUE} forEach _list

@{vehicle _x == helina} count _list == {alive _x} count _list
Hint "Hotovo !"

Poznámky:
V skripte sme si najskôr zadefinovali celú skupinu hráča (_list).
Následne na to je použitý príkaz forEach pre už určenú skupinu vojakov (_list) s príkazmi pre určenie miesta vo vozidle - helikoptére s názvom helina (assignAsCargo) a zároveň s príkazom orderGetIn pre nástup na tieto určené miesta.
Po týchto príkazoch nasleduje malá slučka ktorá kontroluje či sú všetci vojaci z určenej skupiny živý a v prepravnom priestore helikoptéry (vehicle).
Akonáhle sú teda všetci vojaci vo vnútri, v ľavom hornom rohu sa objaví hint - "Hotovo !".

Výhoda tejto kontroly spočíva v tom, že ak počas presunu k helikoptére zomrie niektorá z AI jednotiek skupiny, slučka bude kontrolovať iba počet (count) živých jednotiek pomocou príkazu alive.

Presun na určené pozície vo vozidle bez animácie nástupu

Iným druhom nastupovania do vozidiel je priamy presun jednotiek na určené pozície bez akejkoľvek animácie. Na toto slúžia príkazy : moveInDriver, moveInCommander, moveInGunner, moveInCargo

Pri použití týchto príkazov už nemusíme najskôr určovať každej jednotke kde bude jej miesto vo vozidle. Jednoducho iba určíme kam bude presunutá.
Táto metóda sa využíva hlavne pri zápisoch v inicializačných skriptoch ako je init.sqs, alebo počas cutscén, kde bol napríklad záber na skupinu AI vojakov bežiacich k helikoptére v diaľke. Po cutscéne sa tak môže hráč už so svojou jednotkou ocitnúť v štartujúcej helikoptére a nemusí sa starať o vydávanie príkazov svojim členom skupiny pre nástup. Využite je proste rozsiahle.

Ja tu teraz len uvediem malý príklad pre presunutie štvorice OPFOR vojakov (s názvami e1e4) do BMP2 (s názvom bvp):

e1 moveInDriver bvp
e2 moveInGunner bvp
e3 moveInCommander bvp
e4 moveInCargo bvp

Pokročilejšie rozmiestnenie jednotiek vo vozidle

Toto bola ukážka použitia štandardných príkazov. Ak ale potrebujete pre svoju misiu špeciálne riešenie, mrknite na týchto pár riadkov ...

Ak potrebujete umiestniť hráča napríklad v prepravnom priestore Blackhawka na presne určené miesto - sedačku, použite príkaz moveInCargo [pole] ...

aP moveInCargo [helina, 3]
Prepravný priestor UH-60
Zvětšit
Prepravný priestor UH-60

Týmto šikovným príkazom umiestnite hráča na pravú stranu hneď k oknu. Keď si predplatil miesto pri okienku tak nech ho aj dostane, nie ? :o)
Na priloženom obrázku je potom vidieť rozmiestnenie jednotlivých pozícií s ich konkrétnymi označeniami.

To nieje ale všetko. ArmA: Armed Assault ešte využíva iný špeciálny príkaz na presné určenie miesta vo vozidle. Jedná sa o príkaz moveInTurret a ako už jeho znenie napovedá, jedná sa o umiestnenie jednotky na konkrétny palebný post vozidla. Viac nájdete v popise tohto príkazu.
Tu je príklad kódu korešpondujúci s označením na obrázku:

aP moveInTurret [helina, [0]]
aP moveInTurret [helina, [1]]
Osobní nástroje